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.


      <div class="note">
        <p><b>Hinweis</b></p>
        <p>Weitere Informationen zu Gutscheinen finden Sie in unserer <a href="https://developers.xsolla.com/de/liveops/promotion-tools/coupons/">Dokumentation</a>.</p>
      </div>
  - name: promotions-promo-codes
    x-displayName: Promocodes
    description: >-
      Mit den API-Methoden aus diesem Unterabschnitt können Sie
      Promocode-Aktionen konfigurieren und verwalten.


      <div class="note">
        <p><b>Hinweis</b></p>
        <p>Weitere Informationen zu Promocodes finden Sie in unserer <a href="https://developers.xsolla.com/de/liveops/promotion-tools/promo-codes/">Dokumentation</a>.</p>
      </div>
  - name: promotions-unique-catalog-offers
    x-displayName: Katalogsonderangebote
    description: >-
      Mit den API-Methoden aus diesem Unterabschnitt können Sie
      Katalogsonderangebote konfigurieren und verwalten.


      <div class="note">
        <p><b>Hinweis</b></p>
        <p>Weitere Informationen zu Sonderangeboten finden Sie in unserer <a href="https://developers.xsolla.com/de/liveops/promotion-tools/unique-offer/">Dokumentation</a>.</p>
      </div>
  - name: promotions-discounts
    x-displayName: Rabatte
    description: >-
      Mit den API-Methoden aus diesem Unterabschnitt können Sie Rabattaktionen
      konfigurieren und verwalten.


      <div class="note">
        <p><b>Hinweis</b></p>
        <p>Weitere Informationen zu Rabatten finden Sie in unserer <a href="https://developers.xsolla.com/de/liveops/promotion-tools/discounts/">Dokumentation</a>.</p>
      </div>
  - name: promotions-bonuses
    x-displayName: Boni
    description: >-
      Mit den API-Methoden aus diesem Unterabschnitt können Sie Bonusaktionen
      konfigurieren und verwalten.


      <div class="note">
        <p><b>Hinweis</b></p>
        <p>Weitere Informationen zu Boni finden Sie in unserer <a href="https://developers.xsolla.com/de/liveops/promotion-tools/bonuses/">Dokumentation</a>.</p>
      </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.


      Die folgenden Personalisierungstypen sind verfügbar:


      * [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.

      * [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.


      <div class="note">
        <b>Hinweis</b><br><br>
        Sie können nur einen Personalisierungstyp verwenden. Wie Sie den Personalisierungstyp ändern, erfahren Sie in der
        <a href="/de/liveops/promotion-tools/personalization/#guides_personalization_change">Anleitung</a>.
      </div>


      So konfigurieren Sie die Personalisierung aufseiten von Xsolla mithilfe
      der Xsolla-API:


      1. 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).

      2. [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.

      3. Konfigurieren Sie die Personalisierung für Artikel oder Werbeaktionen:
          * Um den Artikelkatalog zu personalisieren, müssen Sie Kataloganzeigeregeln mit dem API-Aufruf [Katalogfilterregel erstellen](/de/api/liveops/personalized-catalog/create-filter-rule) definieren:
              * 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.
              * 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
          * 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.

      4. Ü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.


      **Konfiguration und Anwendung der Xsolla-seitigen Personalisierung für den
      Artikelkatalog (Ablauf):**


      ![Personalisierung für den
      Artikelkatalog](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-catalog.png)


      **Konfiguration und Anwendung der Xsolla-seitigen Personalisierung für
      Werbeaktionen (Ablauf):**


      ![Personalisierung für
      Werbeaktionen](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-liveops.png)


      <div class="note">

      <b>Hinweis</b><br><br>

      Detaillierte Informationen finden Sie:

      <ul>
        <li>im <a href="/de/liveops/promotion-tools/personalization/">Leitfaden zur Konfiguration der Personalisierung aufseiten von Xsolla und aufseiten des Partners</a></li>
        <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>
      </ul>

      </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/).


      Ketten werden mithilfe von API-Aufrufen aus dem Unterabschnitt
      **Verwaltung** konfiguriert. Um Belohnungen zu vergeben, verwenden Sie die
      API-Aufrufe aus dem Unterabschnitt **Client**.


      Konfigurationsszenario für tägliche Ketten:


      1.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).

      2. Erstellen Sie eine Kette mithilfe des API-Aufrufs [Tägliche Belohnung
      erstellen](/de/api/liveops/daily-chain-admin/admin-create-daily-chain).

      3. 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.

      4. 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.

      5. Richten Sie die Gewährleistung der Artikel über
      [webhooks](/de/webhooks/section/osnovnye-polozheniya) ein.

      6. 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`.


      ![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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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.

        Dadurch können Nutzer aus mehreren Bonusartikeln wählen.

        In der Regel wird ein DRM-System ausgewählt, wenn der Gutschein ein
        Spiel als Bonus gewährt (`type=unit`). <br>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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:
         * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.
         * wird nicht mehr auf den Artikelkatalog angewendet. Nutzer können im Rahmen dieser Werbeaktion keine Bonusartikel erhalten.

        Nach der Löschung kann die Werbeaktion nicht wiederhergestellt werden.
         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.

        Die erstellte Gutscheinaktion ist standardmäßig deaktiviert.

        Gutscheine lassen sich erst einlösen, wenn Sie die zugehörige
        Werbeaktion aktivieren.

        Verwenden 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.

        Die erstellte Gutscheinaktion ist standardmäßig deaktiviert.

        Gutscheine lassen sich erst einlösen, wenn Sie die zugehörige
        Werbeaktion aktivieren.

        Verwenden 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.

        Nach 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.

        Nachdem 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.

        Dadurch können Nutzer aus mehreren Bonusartikeln wählen.

        In der Regel wird ein DRM-System ausgewählt, wenn der Promocode ein
        Spiel als Bonus gewährt (`type=unit`). <br>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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:
         * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.
         * wird nicht mehr auf den Artikelkatalog und den Warenkorb angewendet. Nutzer können im Rahmen dieser Werbeaktion keine Bonusartikel erhalten oder Artikel kaufen.

        Nach der Löschung kann die Werbeaktion nicht wiederhergestellt werden.
         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.


        Die erstellte Promocode-Aktion ist standardmäßig deaktiviert.

        Promocodes lassen sich erst einlösen, wenn Sie die zugehörige
        Werbeaktion aktivieren.

        Verwenden 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.


        Die erstellte Promocode-Aktion ist standardmäßig deaktiviert.

        Promocodes lassen sich erst einlösen, wenn Sie die zugehörige
        Werbeaktion aktivieren.

        Verwenden 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.

        Werbeaktionen gewähren einen Rabatt (in %) auf Artikel.
        Der 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.

        Werbeaktionen gewähren einen Rabatt (in %) auf Artikel.
        Der 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.


        <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>


        Werbeaktionen gewähren einen Rabatt (in %) auf Artikel.

        Der 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.

        Werbeaktionen gewähren einen Rabatt (in %) auf Artikel.
        Der 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,

                      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.

                          Der 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:
         * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.
         * wird nicht mehr auf den Artikelkatalog und den Warenkorb angewendet. Nutzer können im Rahmen dieser Werbeaktion keine Artikel kaufen.

        Nach 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.


        Die Werbeaktion gewährt dem Nutzer beim Kauf zusätzlich kostenlose
        Bonusartikel.

        Die 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.


        Die Werbeaktion gewährt dem Nutzer beim Kauf zusätzlich kostenlose
        Bonusartikel.

        Die 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.


        <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>


        Die Werbeaktion gewährt dem Nutzer beim Kauf zusätzlich kostenlose
        Bonusartikel.

        Die 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.


        Die Werbeaktion gewährt dem Nutzer beim Kauf zusätzlich kostenlose
        Bonusartikel.

        Die 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:
         * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.
         * wird nicht mehr auf den Artikelkatalog und den Warenkorb angewendet. Nutzer können im Rahmen dieser Werbeaktion keine Bonusartikel erhalten.

        Nach 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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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:
         * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.
         * wird nicht mehr auf den Artikelkatalog und den Warenkorb angewendet. Der Nutzer können im Rahmen dieser Werbeaktion keine Artikel kaufen.

        Nach 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.
         Das erstellte Katalogsonderangebot ist standardmäßig deaktiviert.
        Das Angebot kann erst eingelöst werden, nachdem Sie es aktiviert haben.

        Verwenden 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.
         Das erstellte Katalogsonderangebot ist standardmäßig deaktiviert.
        Das Angebot kann erst eingelöst werden, nachdem Sie es aktiviert haben.
        Verwenden 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.


        Mit 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":

        *
        [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.


        Mit 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:

        *
        [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`.


        Im Abschnitt "Verwaltung" können Sie das Code-Limit selbst festlegen:

        *
        [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`.


        Im Abschnitt "Verwaltung" können Sie das Code-Limit selbst festlegen:

        *
        [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.


        <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.


        Mit 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:

        *
        [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)

        *
        [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.


        Mit 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:

        *
        [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)

        *
        [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.


        Mit 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:

        *
        [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)

        *
        [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.


        Mit 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:

        *
        [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)

        *
        [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.


        Mit 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:

        *
        [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)

        *
        [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.


        Mit 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:

        *
        [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)

        *
        [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.


        Beachten Sie, dass diese PUT-Anfrage alle zuvor festgelegten Wertpunkte
        für Artikel im Projekt überschreibt.


        Um ein unbeabsichtigtes Löschen von Wertpunkten zu vermeiden, müssen
        alle Artikel und ihre jeweiligen Wertpunkte in jeder PUT-Anfrage
        angegeben sein.


        Wenn 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.


        Grundregeln für die Aktualisierung von Wertpunkten:
          * Wenn einem Artikel noch keine Wertpunkte zugewiesen sind, werden diese durch das Senden eines Wertes ungleich Null in das Feld `amount` eingetragen.
          * Wenn einem Artikel bereits Wertpunkte zugewiesen sind, werden die im Feld `amount` angegebenen Wertpunkte durch das Senden eines Wertes ungleich Null überschrieben.
          * Wenn`amount` auf 0 festgelgt wird, werden die vorhandenen Wertpunkte für diesen Artikel gelöscht.

        Im 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.


        Mit 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.


        <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>50
        Artikel pro Antwort.</strong> Um pro Seite mehr Daten zu erhalten,
        verwenden Sie die Felder <b>limit</b> und <b>offset</b>.

        </div>


        <br>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </div>
  /v3/project/{project_id}/admin/reward_chain:
    get:
      summary: Liste der Belohnungsketten abrufen
      description: >-
        Ruft die Liste der Belohnungsketten ab.


        <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.


        <div class="notice"><strong>Hinweis</strong>

        <br><br>
         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.
        </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.


        <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.


        <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>


        <br>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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.


        <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>


        <br>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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.


        <div class="notice">
          <strong>Hinweis</strong><br><br>
            Verwenden Sie diesen Aufruf nur bei kostenlosen Schritten in der Angebotskette.
            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.
        </div>


        <br>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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.


        <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.


        Nach 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>


        Im 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.


        Wenn die Angebotskette deaktiviert ist, verlieren Nutzer vorübergehend
        den Zugriff darauf, ihr Fortschritt bleibt jedoch erhalten.


        Nachdem 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>

        <div class="notice">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>

        <div class="notice">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>


        <div class="notice">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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>


        <div class="note">
          <strong>Hinweis</strong><br><br>
            Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>
            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.
        </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.


        Sie können bei Bedarf `merchant_id` anstelle von `project_id` verwenden.
        Dies hat keine Auswirkungen auf die Funktionalität.


        Wechseln Sie ins [Kundenportal](https://publisher.xsolla.com/), um die
        Werte der Parameter zu erhalten:


        * `merchant_id` wird angezeigt:
          * unter **Firmeneinstellungen > Firma**.
          * 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>`.
        * `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:
          * unter [Firmeneinstellungen > API-Schlüssel](https://publisher.xsolla.com/0/settings/api_key)
          * unter [Projekteinstellungen > API-Schlüssel](https://publisher.xsolla.com/0/projects/0/edit/api_key)

        {% html name="div" attrs={"class": "notice"} %}

        **Hinweis**


        Falls 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.


        * `project_id` wird angezeigt:
          * neben dem Projektnamen im Kundenportal.
          * 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>`.

        Weitere 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).


        Alternativ 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:


        1. 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.


        Alternativ können Sie einen [Token zum Öffnen des Zahlungsportals
        verwenden](/de/api/pay-station/token/create-token).


        2. 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:

        * `x-unauthorized-id` samt Anfrage-ID

        * `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.


        Wechseln Sie ins [Kundenportal](https://publisher.xsolla.com/), um die
        Werte der Parameter zu erhalten:


        * `merchant_id` wird angezeigt:
          * unter **Firmeneinstellungen > Firma**
          * 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>`
        * `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.


        Weitere 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,

        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: 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,

        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: 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.

        Der 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.

        Der Preis des Artikels im Warenkorb wird um einen Wert verringert,
        der anhand dieses Prozentsatzes berechnet und dann
        auf 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.

                Der 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.

        Der 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.

            Steuert 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.

            Steuert 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:


        * Für einen bestimmten Artikel ist eine Rabattaktion konfiguriert.


        * Ein Promocode mit der Einstellung **Rabatt auf ausgewählte Artikel**
        ist angewandt.


        Werden 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>

        Der 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>

        Wenn 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>

        Der 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>

        Wenn 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,

            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
        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.

            Steuert 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.

            Steuert 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.


            Wenn `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.

            Steuert 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.


        Um die Personalisierung konfigurieren zu können, müssen Sie `false`
        übermitteln. Die Logik der Kettenanzeige ist wie folgt:
           * 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.
          * 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:

        * Wenn `true` festgelegt ist, wird die Belohnungskette nach dem Enddatum
        zurückgesetzt.

        * Wenn `false` festgelegt ist, wird die Belohnungskette nach dem
        Enddatum nicht zurückgesetzt.


        <br>


        <div class="notice"><strong>Hinweis</strong><br><br>

        <code>true</code> ist nicht möglich, wenn: <br>

        <ul>
          <li>in <code>recurrent_schedule</code> ein Zeitraum für das Zurücksetzen angegeben ist.</li>
          <li>der Wert <code>null</code> im Parameter <code>periods.date_until</code> übermittelt wird.</li>
        </ul>

        </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.

            Steuert 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.

            Steuert 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.

            Steuert 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,

              wobei 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.


        This 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.

                            Der 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,

                  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: Акция
              promotion_periods:
                $ref: '#/components/schemas/promotion_periods'
              discount:
                type: object
                properties:
                  percent:
                    type: string
                    description: >-
                      Prozentualer Rabatt.

                      Der 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
