components:
  parameters:
    array-group-id-query-param:
      description: Liste der Gruppen-IDs, mit denen die Abo-Modelle verknüpft sind.
      in: query
      name: group_id[]
      schema:
        items:
          type: string
        type: array
    array-plan-id-query-param:
      description: Liste der Abo-Modell-IDs.
      in: query
      name: plan_id[]
      schema:
        items:
          type: integer
        type: array
    array-product-id-query-param:
      description: Liste der Produkt-IDs, mit denen die Abo-Modelle verknüpft sind.
      in: query
      name: product_id[]
      schema:
        items:
          type: integer
        type: array
    array-project-id-query-param:
      description: Liste der Projekt-IDs.
      in: query
      name: project_id[]
      schema:
        items:
          type: integer
        type: array
    campaign-id-path-param:
      description: Kampagnen-ID.
      in: path
      name: campaign_id
      required: true
      schema:
        type: integer
    code-path-param:
      description: Gutscheincode.
      in: path
      name: code
      required: true
      schema:
        type: string
    datetime-from-query-param:
      description: >-
        Abfragedatum. Damit findet man Abonnements, die nach dem angegebenen
        Datum erstellt wurden.
      in: query
      name: datetime_from
      schema:
        format: datetime
        type: string
    datetime-from-query-param2:
      description: Beginn des Zeitraums.
      in: query
      name: datetime_from
      schema:
        format: datetime
        type: string
    datetime-to-query-param:
      description: >-
        Abfragedatum. Damit findet man Abonnements, die nach dem angegebenen
        Datum erstellt wurden.
      in: query
      name: datetime_to
      schema:
        format: datetime
        type: string
    datetime-to-query-param2:
      description: Ende des Zeitraums.
      in: query
      name: datetime_to
      schema:
        format: datetime
        type: string
    external-id-query-param:
      description: Externe ID des Abo-Modells (32 Zeichen).
      in: query
      name: external_id
      schema:
        type: string
    group-id-query-param:
      description: Gruppen-ID, mit der die Abo-Modelle verknüpft sind.
      in: query
      name: group_id
      schema:
        type: string
    limit-query-param:
      description: Begrenzung der Elementanzahl auf der Seite.
      in: query
      name: limit
      required: true
      schema:
        type: integer
    merchant-id-path-param:
      description: Händler-ID.
      in: path
      name: merchant_id
      required: true
      schema:
        type: integer
    offset-query-param:
      description: >-
        Elementnummer, aus der die Liste generiert wird (die Zählung beginnt bei
        0).
      in: query
      name: offset
      schema:
        type: integer
    plan-id-path-param:
      description: ID des Abo-Modells.
      in: path
      name: plan_id
      required: true
      schema:
        type: integer
    plan-id-query-param:
      description: ID des Abo-Modells.
      in: query
      name: plan_id
      schema:
        type: integer
    product-id-path-param:
      description: Produkt-ID, mit der die Abo-Modelle verknüpft sind.
      in: path
      name: product_id
      required: true
      schema:
        type: integer
    product-id-query-param:
      description: Produkt-ID, mit der die Abo-Modelle verknüpft sind.
      in: query
      name: product_id
      schema:
        type: integer
    project-id-path-param:
      description: Projekt-ID.
      in: path
      name: project_id
      required: true
      schema:
        type: integer
    promotion-id-path-param:
      description: ID der Werbeaktion.
      in: path
      name: promotion_id
      required: true
      schema:
        type: integer
    query-query-param:
      description: Suchanfrage (Suche name.en (Standard-Gebietsschema)).
      in: query
      name: query
      schema:
        type: string
    status-id-query-param:
      description: Transaktionsstatus.
      in: query
      name: status
      schema:
        enum:
          - done
          - fail
        type: string
        x-enumDescriptions:
          done: Die Zahlung wurde erfolgreich verarbeitet.
          fail: >-
            Die Zahlung wurde nicht erfolgreich verarbeitet oder es wurde eine
            Erstattung veranlasst.
    status-query-param-array:
      description: Status.
      in: query
      name: status[]
      schema:
        items:
          enum:
            - active
            - canceled
            - non_renewing
          type: string
        type: array
    subscription-id-path-param:
      description: Abonnement-ID.
      in: path
      name: subscription_id
      required: true
      schema:
        type: integer
    subscription-id-query-param:
      description: Abonnement-ID.
      in: query
      name: subscription_id
      schema:
        type: integer
    user-id-path-param:
      description: Benutzer-ID.
      in: path
      name: user_id
      required: true
      schema:
        type: string
    user-id-query-param:
      description: Benutzer-ID.
      in: query
      name: user_id
      schema:
        type: string
  schemas:
    BillingAccountResponse:
      properties:
        id:
          example: '12345'
          type: integer
        name:
          example: PP_saved_account
          nullable: true
          type: string
        payment_system:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/PaymentSystemResponse'
        type:
          example: paypal
          nullable: true
          type: string
      required:
        - id
      type: object
    BillingAccountsListResponse:
      properties:
        items:
          default: []
          items:
            $ref: '#/components/schemas/BillingAccountResponse'
          type: array
      type: object
    Campaign:
      properties:
        campaign_code:
          description: Kampagnenname.
          type: string
        campaign_names:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Objekt, das lokalisierte Kampagnennamen enthält.
        campaign_redeems_count_for_user:
          description: >-
            Maximale Anzahl der Gutscheine, die ein Benutzer innerhalb einer
            Kampagne einlösen kann. Wenn `null` bestanden wurde, ist die Anzahl
            Gutscheine unbeschränkt.
          type: integer
        expiration_date:
          description: >-
            Das Ablaufdatum im `YYYY-MM-DD’T’HH:MM:SS`-Format laut [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          type: string
        project_id:
          description: Projekt-ID.
          type: integer
        redeems_count:
          description: >-
            Maximale Anzahl der Gutscheine zum Einlösen. Wenn `null` bestanden
            wurde, ist die Anzahl Gutscheine unbeschränkt.
          type: integer
        redeems_count_for_user:
          description: >-
            Maximale Anzahl der einlösbaren Gutscheine pro Nutzer. Wenn `null`
            übermittelt wurde, ist die Anzahl der einlösbaren Gutscheine
            unbeschränkt.
          type: integer
        subscription_coupon:
          description: Objekt, das die Abo-Parameter einer Belohnung enthält.
          properties:
            plan_id:
              description: ID des Abo-Modells.
              type: integer
            product_id:
              description: ID des abonnementbasierten Produkts.
              type: integer
            trial_period:
              description: Probezeitraum in Tagen.
              type: integer
          required:
            - plan_id
            - product_id
            - trial_period
          type: object
        virtual_currency_amount:
          description: Betrag der virtuellen Währung in einer Belohnung.
          format: float
          type: number
        virtual_items:
          description: Array von virtuellen Gegenständen in einer Belohnung.
          properties:
            quantity:
              description: Menge der virtuellen Gegenstände.
              type: integer
            sku:
              description: SKU des virtuellen Gegenstands
              type: string
          required:
            - sku
            - quantity
          type: object
      type: object
    ChangePlanPaymentDetailsResponse:
      properties:
        charge:
          $ref: '#/components/schemas/Charge2'
        payment_details:
          $ref: '#/components/schemas/PaymentDetails'
        period:
          $ref: '#/components/schemas/Period2'
        plan_description:
          example: Localized plan description
          type: string
        plan_end_date:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          nullable: true
          type: string
        plan_external_id:
          example: PlanExternalId
          type: string
        plan_group_id:
          example: TestGroupId
          nullable: true
          type: string
        plan_id:
          example: '54321'
          type: integer
        plan_name:
          example: Localized plan name
          type: string
        plan_start_date:
          example: '2021-04-11T13:51:02+03:00'
          format: date-time
          nullable: true
          type: string
        plan_type:
          example: all
          type: string
        promotion:
          $ref: '#/components/schemas/Promotion'
        trial_period:
          example: '7'
          nullable: true
          type: integer
      required:
        - plan_id
        - plan_external_id
        - plan_type
        - plan_name
        - plan_description
        - period
        - charge
        - promotion
        - payment_details
      type: object
    Charge:
      properties:
        amount:
          example: '4.99'
          format: float
          type: number
        amount_with_promotion:
          default: null
          example: '3.99'
          format: float
          nullable: true
          type: number
        currency:
          example: USD
          type: string
      required:
        - amount
        - currency
      type: object
    Charge2:
      properties:
        amount:
          example: '4.99'
          format: float
          type: number
        currency:
          example: USD
          type: string
        setup_fee:
          example: '0.99'
          format: float
          nullable: true
          type: number
      required:
        - amount
        - currency
      type: object
    Charge3:
      properties:
        amount:
          example: '4.99'
          format: float
          type: number
        amount_with_promotion:
          default: null
          example: '3.99'
          format: float
          nullable: true
          type: number
        currency:
          example: USD
          type: string
      required:
        - amount
        - currency
      type: object
    Charge4:
      properties:
        amount:
          example: '4.99'
          format: float
          type: number
        currency:
          example: USD
          type: string
        setup_fee:
          example: '0.99'
          format: float
          nullable: true
          type: number
      required:
        - amount
        - currency
      type: object
    Coupon:
      properties:
        campaign_code:
          type: string
        coupon_code:
          type: string
        coupon_id:
          type: integer
        expiration_date:
          type: string
        is_active:
          type: boolean
        project_id:
          type: integer
        redeems_count_for_user:
          type: integer
        redeems_count_remain:
          type: integer
        subscription_coupon:
          nullable: true
          type: string
        virtual_currency_amount:
          type: integer
        virtual_items:
          items:
            type: string
          type: array
      type: object
    CouponAttribute:
      properties:
        key:
          description: Schlüssel des Benutzerattributs.
          type: string
        list_of_values:
          description: Mögliche Werte für type=enum (Array).
          items:
            type: object
          type: array
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Lokalisierte Attributbezeichnungen.
        skip_condition_on_nonexistent_key:
          description: >-
            Legt fest, ob die Bedingung bei nicht vorhandenem Schlüssel
            übersprungen wird.
          type: boolean
        type:
          description: Schlüsseltyp.
          enum:
            - int
            - string
            - enum
            - date
          type: string
        visible:
          type: boolean
      type: object
    CreatePromotion:
      properties:
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Array der lokalisierten Werbeaktionsbeschreibungen.
        label:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Array der lokalisierten Kennzeichnungen, die im Zahlungsportal
                angezeigt werden.
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Array der lokalisierten Bezeichnungen der Werbeaktion.
        project_id:
          description: Projekt-ID.
          type: integer
        technical_name:
          description: Arbeitstitel der Werbeaktion.
          type: string
      type: object
    GetPromotion:
      allOf:
        - $ref: '#/components/schemas/CreatePromotion'
        - properties:
            enabled:
              type: boolean
            id:
              type: integer
            read_only:
              type: boolean
            show_banner:
              type: boolean
          type: object
    LastSuccessfulCharge:
      properties:
        amount:
          example: '3.99'
          format: float
          nullable: true
          type: number
        currency:
          example: USD
          nullable: true
          type: string
        date:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          type: string
      required:
        - date
      type: object
    ListManagementSubscriptionsResponse:
      properties:
        has_more:
          example: 'false'
          type: boolean
        items:
          default: []
          items:
            $ref: '#/components/schemas/ManagementSubscriptionResponse2'
          type: array
      required:
        - has_more
      type: object
    ListPlansResponse:
      properties:
        has_more:
          example: 'false'
          type: boolean
        items:
          default: []
          items:
            $ref: '#/components/schemas/PlanResponse'
          type: array
      required:
        - has_more
      type: object
    LocalizedStringPairs:
      properties:
        ar:
          description: Arabisch.
          type: string
        bg:
          description: Bulgarisch.
          type: string
        cn:
          description: Chinesisch (vereinfacht).
          type: string
        cs:
          description: Tschechisch.
          type: string
        de:
          description: Deutsch.
          type: string
        en:
          description: Englisch.
          type: string
        es:
          description: Spanisch.
          type: string
        fr:
          description: Französisch.
          type: string
        he:
          description: Hebräisch.
          type: string
        it:
          description: Italienisch.
          type: string
        ja:
          description: Japanisch.
          type: string
        ko:
          description: Koreanisch.
          type: string
        pl:
          description: Polnisch.
          type: string
        pt:
          description: Portugiesisch.
          type: string
        ro:
          description: Rumänisch.
          type: string
        ru:
          description: Russisch.
          type: string
        th:
          description: Thai.
          type: string
        tr:
          description: Türkisch.
          type: string
        tw:
          description: Chinesisch (traditionell).
          type: string
        vi:
          description: Vietnamesisch.
          type: string
      type: object
    ManagementSubscriptionResponse:
      properties:
        charge:
          $ref: '#/components/schemas/Charge'
        date_create:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          type: string
        date_end:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          nullable: true
          type: string
        date_last_charge:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          nullable: true
          type: string
        date_next_charge:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          nullable: true
          type: string
        id:
          example: '12345'
          type: integer
        is_change_plan_allowed:
          example: 'false'
          type: boolean
        is_change_to_non_renew_possible:
          example: 'true'
          type: boolean
        is_in_trial:
          example: 'false'
          type: boolean
        is_renew_possible:
          example: 'true'
          type: boolean
        last_successful_charge:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/LastSuccessfulCharge'
        payment_account:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/PaymentRecurrentAccountResponse2'
        period:
          $ref: '#/components/schemas/Period'
        plan_description:
          example: Localized plan description
          type: string
        plan_name:
          example: Localized plan name
          type: string
        product_description:
          example: Localized product description
          nullable: true
          type: string
        product_name:
          example: Product name
          nullable: true
          type: string
        status:
          example: active
          type: string
        trial_period:
          example: '0'
          nullable: true
          type: integer
      required:
        - id
        - plan_name
        - plan_description
        - status
        - is_in_trial
        - date_create
        - charge
        - period
        - is_renew_possible
        - is_change_to_non_renew_possible
        - is_change_plan_allowed
      type: object
    ManagementSubscriptionResponse2:
      properties:
        charge:
          $ref: '#/components/schemas/Charge3'
        date_create:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          type: string
        date_last_charge:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          nullable: true
          type: string
        date_next_charge:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          nullable: true
          type: string
        id:
          example: '12345'
          type: integer
        is_in_trial:
          example: 'false'
          type: boolean
        payment_account:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/PaymentRecurrentAccountResponse3'
        period:
          $ref: '#/components/schemas/Period3'
        plan_description:
          example: Localized plan description
          type: string
        plan_name:
          example: Localized plan name
          type: string
        product_description:
          example: Localized product description
          nullable: true
          type: string
        product_name:
          example: Product name
          nullable: true
          type: string
        status:
          example: active
          type: string
        trial_period:
          example: '0'
          nullable: true
          type: integer
      required:
        - id
        - plan_name
        - plan_description
        - status
        - is_in_trial
        - date_create
        - charge
        - period
      type: object
    PayStationLinkResponse:
      properties:
        link_to_ps:
          example: https://secure.xsolla.com/paystation2/?access_token=<access_token>
          type: string
      required:
        - link_to_ps
      type: object
    PaymentDetails:
      properties:
        surcharge:
          default: null
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Surcharge'
        unused:
          default: null
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Unused'
      type: object
    PaymentRecurrentAccountResponse:
      properties:
        card_expiry_date:
          nullable: true
          properties:
            month:
              example: '09'
              type: string
            year:
              example: '2023'
              type: string
          type: object
        id:
          example: '123'
          type: integer
        name:
          example: '** 7398'
          nullable: true
          type: string
        ps_name:
          example: Mastercard
          nullable: true
          type: string
        switch_icon_name:
          example: mastercard.svg
          nullable: true
          type: string
        type:
          example: card
          type: string
      required:
        - id
        - type
      type: object
    PaymentRecurrentAccountResponse2:
      properties:
        card_expiry_date:
          nullable: true
          properties:
            month:
              example: '09'
              type: string
            year:
              example: '2023'
              type: string
          type: object
        id:
          example: '123'
          type: integer
        name:
          example: '** 7398'
          nullable: true
          type: string
        ps_name:
          example: Mastercard
          nullable: true
          type: string
        switch_icon_name:
          example: mastercard.svg
          nullable: true
          type: string
        type:
          example: card
          type: string
      required:
        - id
        - type
      type: object
    PaymentRecurrentAccountResponse3:
      properties:
        card_expiry_date:
          nullable: true
          properties:
            month:
              example: '09'
              type: string
            year:
              example: '2023'
              type: string
          type: object
        id:
          example: '123'
          type: integer
        name:
          example: '** 7398'
          nullable: true
          type: string
        ps_name:
          example: Mastercard
          nullable: true
          type: string
        switch_icon_name:
          example: mastercard.svg
          nullable: true
          type: string
        type:
          example: card
          type: string
      required:
        - id
        - type
      type: object
    PaymentSystemResponse:
      properties:
        id:
          example: '12345'
          type: integer
        name:
          example: PayPal
          nullable: true
          type: string
      required:
        - id
      type: object
    Period:
      properties:
        unit:
          default: null
          example: month
          nullable: true
          type: string
        value:
          default: null
          example: '1'
          nullable: true
          type: integer
      type: object
    Period2:
      properties:
        unit:
          default: null
          example: month
          nullable: true
          type: string
        value:
          default: null
          example: '1'
          nullable: true
          type: integer
      type: object
    Period3:
      properties:
        unit:
          default: null
          example: month
          nullable: true
          type: string
        value:
          default: null
          example: '1'
          nullable: true
          type: integer
      type: object
    Period4:
      properties:
        unit:
          default: null
          example: month
          nullable: true
          type: string
        value:
          default: null
          example: '1'
          nullable: true
          type: integer
      type: object
    PlanResponse:
      properties:
        charge:
          $ref: '#/components/schemas/Charge4'
        period:
          $ref: '#/components/schemas/Period4'
        plan_description:
          example: Localized plan description
          type: string
        plan_end_date:
          example: '2031-04-11T13:51:02+03:00'
          format: date-time
          nullable: true
          type: string
        plan_external_id:
          example: PlanExternalId
          type: string
        plan_group_id:
          example: TestGroupId
          nullable: true
          type: string
        plan_id:
          example: '54321'
          type: integer
        plan_name:
          example: Localized plan name
          type: string
        plan_start_date:
          example: '2021-04-11T13:51:02+03:00'
          format: date-time
          nullable: true
          type: string
        plan_type:
          example: all
          type: string
        promotion:
          $ref: '#/components/schemas/Promotion2'
        trial_period:
          example: '7'
          nullable: true
          type: integer
      required:
        - plan_id
        - plan_external_id
        - plan_type
        - plan_name
        - plan_description
        - period
        - charge
        - promotion
      type: object
    ProjectManageSubscriptionSettingsResponse:
      properties:
        allow_change_package:
          example: 'true'
          type: boolean
        recurrent_cancel_possible:
          example: 'true'
          type: boolean
      required:
        - recurrent_cancel_possible
        - allow_change_package
      type: object
    Promotion:
      properties:
        promotion_charge_amount:
          default: null
          example: '3.99'
          format: float
          nullable: true
          type: number
        promotion_remaining_charges:
          default: null
          example: '3'
          nullable: true
          type: integer
      type: object
    Promotion2:
      properties:
        promotion_charge_amount:
          default: null
          example: '3.99'
          format: float
          nullable: true
          type: number
        promotion_remaining_charges:
          default: null
          example: '3'
          nullable: true
          type: integer
      type: object
    PromotionPaymentSystem:
      properties:
        payment_systems:
          description: Zahlungssysteme.
          items:
            properties:
              id:
                description: ID des Zahlungssystems.
                type: integer
              name:
                description: Name des Zahlungssystems.
                type: string
            type: object
          type: array
      type: object
    PromotionPeriod:
      properties:
        periods:
          description: Datumsbereiche/Zeiträume.
          items:
            properties:
              from:
                description: Beginn des Zeitraums.
                format: datetime
                type: string
              offset:
                description: >-
                  Elementnummer, aus der die Liste generiert wird (die Zählung
                  beginnt bei 0).
                type: string
              to:
                description: Ende des Zeitraums.
                format: datetime
                type: string
            type: object
          type: array
      type: object
    PromotionReward:
      properties:
        item:
          description: Legt die Belohnung für bestimmte virtuelle Gegenstände fest.
          properties:
            bonus:
              description: >-
                Zusätzliche virtuelle Gegenstände, die als Bonus verteilt
                werden.
              items:
                properties:
                  id:
                    type: integer
                  localized_name:
                    description: >-
                      Name des Abo-Modells in der Standardsprache (en),
                      repliziert den Wert name.en.
                    type: string
                  quantity:
                    description: >-
                      Anzahl der virtuellen Gegenstände, die als Bonus verteilt
                      werden.
                    type: integer
                  sku:
                    description: SKU des Gegenstands.
                    type: string
                type: object
              type: array
            discount:
              description: Rabatte für bestimmte virtuelle Gegenstände.
              items:
                properties:
                  discount_percent:
                    description: Prozentualer Rabatt.
                    format: float
                    type: number
                  localized_name:
                    description: >-
                      Name des Abo-Modells in der Standardsprache (en),
                      repliziert den Wert name.en.
                    type: string
                  max_amount:
                    description: >-
                      Maximale Anzahl an Gegenständen, die für die Werbeaktion
                      verwendet wird.
                    format: integer
                    type: number
                  sku:
                    description: SKU des Gegenstands.
                    type: string
                type: object
              type: array
          type: object
        package:
          description: Legt die Belohnung für ein virtuelles Währungspaket fest.
          properties:
            bonus_amount:
              description: Belohnung als absolute Menge der virtuellen Währung.
              format: float
              type: number
            bonus_percent:
              description: Belohnung als Prozentsatz der Paketmenge.
              format: float
              type: number
          type: object
        purchase:
          description: Legt die Belohnung für den gesamten Einkauf fest.
          properties:
            discount_percent:
              description: Prozentualer Rabatt.
              format: float
              type: number
          type: object
        subscription:
          description: Legt die Belohnung für ein Abonnement fest.
          properties:
            trial_days:
              description: Probezeitraum in Tagen.
              type: integer
          type: object
      type: object
    PromotionSubject:
      properties:
        digital_contents:
          nullable: true
          type: object
        items:
          description: >-
            Array der virtuellen Gegenstände, die bei der Werbeaktion zum
            Einsatz kommen.
          items:
            properties:
              id:
                type: integer
              localized_name:
                description: >-
                  Name des Abo-Modells in der Standardsprache (en), repliziert
                  den Wert name.en.
                type: string
              sku:
                description: SKU des Gegenstands.
                type: string
            type: object
          type: array
        packages:
          description: >-
            Array der Angebotspakete mit virtueller Währung, die bei der
            Werbeaktion zum Einsatz kommen.
          items:
            type: object
          nullable: true
          type: array
        purchase:
          description: Legt fest, ob die Werbeaktion auf den gesamten Einkauf zutrifft.
          type: boolean
        subscriptions:
          description: >-
            Abo-Modelle oder Produkte, die bei der Werbeaktion zum Einsatz
            kommen.
          nullable: true
          properties:
            max_charges_count:
              description: >-
                Maximale Anzahl an Abrechnungen, die bei der Werbeaktion möglich
                sein soll.
              type: integer
            plans:
              items:
                description: >-
                  Array der Abo-Modelle, die bei der Werbeaktion zum Einsatz
                  kommen.
                type: string
              type: array
            products:
              items:
                description: >-
                  Array der Produkte, die auf Abonnements basieren und bei der
                  Werbeaktion zum Einsatz kommen.
                type: string
              type: array
          type: object
      type: object
    Subscription:
      properties:
        cancel_subscription_payment:
          description: >-
            Ist `true` festgelegt, so wird die letzte, für dieses Abonnement
            getätigte Zahlung zurückerstattet. **Funktioniert nur dann, wenn
            zugleich der Status auf `canceled` gesetzt ist**.
          type: boolean
        status:
          description: Status.
          enum:
            - active
            - canceled
            - non_renewing
          type: string
        timeshift:
          description: Zeitliche Zurückstellung der Abrechnung.
          properties:
            type:
              description: >-
                Einheit für die Abrechnungszeit. Möglich sind `day` oder
                `month`.
              enum:
                - day
                - month
              type: string
            value:
              description: >-
                Anzahl der Zeiteinheiten, um die die Abrechnung verschoben
                werden soll. Der Wert hängt vom Parametertyp ab, möglich sind:
                <br>- von 1 bis 366, sofern für `type` `day` festgelegt ist
                <br>- von 1 bis 12, sofern für `type` `month` festgelegt ist
              type: string
          type: object
        xsolla_network:
          properties:
            collaborator_id:
              description: "Kooperationspartner-ID\_– [Influencer](https://developers.xsolla.com/de/doc/partner-network/#guides_network_glossary_influencer)- oder [Affiliate-Netzwerk](https://developers.xsolla.com/de/doc/partner-network/#guides_network_glossary_affiliate_network)-Kennung. Diese finden Sie im Kundenportal unter **Partner Network > Influencer**."
              type: string
          type: object
      type: object
    SubscriptionResponse:
      properties:
        charge_amount:
          description: Abrechnungsbetrag.
          format: float
          type: number
        comment:
          description: Grund für die Änderung des Abonnementstatus
          type: string
        currency:
          description: >-
            Kaufwährung. Währungscode, bestehend aus drei Buchstaben gemäß ISO
            4217.
          type: string
        date_create:
          description: >-
            Abschlussdatum des Abonnements im Format "JJJJ-MM-TT’T’HH:MM:SS"
            gemäß [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          type: string
        date_end:
          description: >-
            Enddatum de Abonnements im Format "JJJJ-MM-TT’T’HH:MM:SS" gemäß [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          type: string
        date_last_charge:
          description: >-
            Datum der letzten Abozahlung im Format "JJJJ-MM-TT’T’HH:MM:SS" gemäß
            [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          nullable: true
          type: string
        date_next_charge:
          description: >-
            Datum der nächsten Abozahlung im Format "JJJJ-MM-TT’T’HH:MM:SS"
            gemäß [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          nullable: true
          type: string
        id:
          description: Abonnement-ID
          type: integer
        plan:
          allOf:
            - $ref: '#/components/schemas/SubscriptionsPlan'
        product:
          allOf:
            - $ref: '#/components/schemas/SubscriptionsProductWithId'
        status:
          description: Status
          enum:
            - new
            - active
            - canceled
            - non_renewing
            - freeze
          type: string
        user:
          allOf:
            - $ref: '#/components/schemas/User'
      type: object
    SubscriptionsPlan:
      properties:
        billing_retry:
          description: Details zu erneuten Abrechnungsversuchen.
          properties:
            value:
              description: Anzahl der erneuten Abrechnungsversuche.
              type: integer
          required:
            - value
          type: object
        charge:
          description: Details zur Abrechnung.
          properties:
            amount:
              description: Abrechnungsbetrag.
              format: float
              type: number
            currency:
              description: >-
                Kaufwährung. Währungscode, bestehend aus drei Buchstaben gemäß
                [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
              type: string
            period:
              description: Abrechnungszeitraum.
              properties:
                type:
                  description: Zeiteinheit. Möglich sind `day`, `month` oder `lifetime`.
                  enum:
                    - day
                    - month
                    - lifetime
                  type: string
                value:
                  description: >-
                    Anzahl der Zeiteinheiten. Der Wert hängt vom Parametertyp
                    ab, möglich sind: <br>- von 1 bis 366, sofern für `type`
                    `day` festgelegt ist <br>- von 1 bis 12, sofern für `type`
                    `month` festgelegt ist <br>-0, sofern für `type` `lifetime`
                    festgelegt ist
                  type: integer
              required:
                - value
                - type
              type: object
            prices:
              description: Liste der Preise in verschiedenen Währungen.
              items:
                properties:
                  amount:
                    description: Abrechnungsbetrag.
                    format: float
                    type: number
                  currency:
                    description: >-
                      Kaufwährung. Währungscode, bestehend aus drei Buchstaben
                      gemäß [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
                    type: string
                  setup_fee:
                    description: >-
                      Einmalige Einrichtungsgebühr, die als Teil der ersten
                      Rechnung berechnet wird.
                    format: float
                    type: number
                required:
                  - amount
                  - currency
                type: object
              type: array
          required:
            - period
          type: object
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Beschreibung zum Abo-Modell. Besteht aus Paaren vom Typ
                "localization":"plan description" (Sprache:Beschreibung zum
                Abo-Modell).
        expiration:
          description: Details zum Auslaufen des Abonnements.
          properties:
            type:
              description: Zeiteinheit. Möglich sind `day` oder `month`.
              enum:
                - day
                - month
              type: string
            value:
              description: Zeitliche Gültigkeit.
              nullable: true
              type: integer
          required:
            - value
            - type
          type: object
        external_id:
          description: Externe ID des Abo-Modells (32 Zeichen).
          type: string
        grace_period:
          description: Angaben zur Übergangsfrist.
          properties:
            type:
              description: Zeiteinheit. Möglich sind `day`.
              enum:
                - day
              type: string
            value:
              description: Anzahl der Zeiteinheiten.
              type: integer
          required:
            - value
            - type
          type: object
        group_id:
          description: Gruppen-ID, mit der das Abo-Modell verknüpft ist.
          nullable: true
          type: string
        id:
          description: ID des Abo-Modells.
          type: integer
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Bezeichnung des Abo-Modells. Besteht aus Paaren vom Typ
                "localization":"plan name" (Sprache:Bezeichnung des
                Abo-Modells).
        project_id:
          description: Projekt-ID.
          type: integer
        refund_period:
          description: >-
            Zeitraum, in dem der Nutzer die Zahlung für ein Abo-Modell erstattet
            bekommen kann (in Tagen).
          nullable: true
          type: integer
        status:
          properties:
            value:
              description: Status des Abo-Modells.
              enum:
                - active
                - disabled
              type: string
          type: object
        tags:
          description: Abo-Modell-Markierungen.
          items:
            type: string
          type: array
        trial:
          description: Details zum Probezeitraum.
          properties:
            type:
              description: Zeiteinheit. Möglich sind `day`.
              enum:
                - day
              type: string
            value:
              description: Anzahl der Zeiteinheiten.
              type: integer
          required:
            - value
            - type
          type: object
      type: object
    SubscriptionsPlanRequest:
      properties:
        billing_retry:
          description: Details zu erneuten Abrechnungsversuchen.
          properties:
            value:
              description: Anzahl der erneuten Abrechnungsversuche.
              type: integer
          required:
            - value
          type: object
        charge:
          description: Details zur Abrechnung.
          properties:
            amount:
              description: Abrechnungsbetrag.
              format: float
              type: number
            currency:
              description: >-
                Kaufwährung. Währungscode, bestehend aus drei Buchstaben gemäß
                [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
              type: string
            period:
              description: Abrechnungszeitraum.
              properties:
                type:
                  description: Zeiteinheit. Möglich sind `day`, `month` oder `lifetime`.
                  enum:
                    - day
                    - month
                    - lifetime
                  type: string
                value:
                  description: >-
                    Anzahl der Zeiteinheiten. Der Wert hängt vom Parametertyp
                    ab, möglich sind: <br>- von 1 bis 366, sofern für `type`
                    `day` festgelegt ist <br>- von 1 bis 12, sofern für `type`
                    `month` festgelegt ist <br>-0, sofern für `type` `lifetime`
                    festgelegt ist
                  type: integer
              required:
                - value
                - type
              type: object
            prices:
              description: Liste der Preise in verschiedenen Währungen.
              items:
                properties:
                  amount:
                    description: Abrechnungsbetrag.
                    format: float
                    type: number
                  currency:
                    description: >-
                      Kaufwährung. Währungscode, bestehend aus drei Buchstaben
                      gemäß [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
                    type: string
                  setup_fee:
                    description: >-
                      Einmalige Einrichtungsgebühr, die als Teil der ersten
                      Rechnung berechnet wird.
                    format: float
                    type: number
                required:
                  - amount
                  - currency
                type: object
              type: array
          required:
            - period
          type: object
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Beschreibung zum Abo-Modell. Besteht aus Paaren vom Typ
                "localization":"plan description" (Sprache:Beschreibung zum
                Abo-Modell).
        expiration:
          description: Details zum Auslaufen des Abonnements.
          properties:
            type:
              description: Zeiteinheit. Möglich sind `day` oder `month`.
              enum:
                - day
                - month
              type: string
            value:
              description: Zeitliche Gültigkeit.
              nullable: true
              type: integer
          required:
            - value
            - type
          type: object
        external_id:
          description: Externe ID des Abo-Modells (32 Zeichen).
          type: string
        grace_period:
          description: Angaben zur Übergangsfrist.
          properties:
            type:
              description: Zeiteinheit. Möglich sind `day`.
              enum:
                - day
              type: string
            value:
              description: Anzahl der Zeiteinheiten.
              type: integer
          required:
            - value
            - type
          type: object
        group_id:
          description: Gruppen-ID, mit der das Abo-Modell verknüpft ist.
          type: string
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Bezeichnung des Abo-Modells. Besteht aus Paaren vom Typ
                "localization":"plan name" (Sprache:Bezeichnung des
                Abo-Modells).
        refund_period:
          description: >-
            Zeitraum, in dem der Nutzer die Zahlung für ein Abo-Modell erstattet
            bekommen kann (in Tagen).
          nullable: true
          type: integer
        status:
          properties:
            value:
              description: Status des Abo-Modells.
              enum:
                - active
                - disabled
              type: string
          type: object
        tags:
          description: Abo-Modell-Markierungen.
          items:
            type: string
          type: array
        trial:
          description: "Details zum Probezeitraum. Wird dieser Parameter nicht übermittelt, wird der Standardwert (0\_Tage) verwendet."
          properties:
            type:
              description: Zeiteinheit. Möglich sind `day`.
              enum:
                - day
              type: string
            value:
              description: Anzahl der Zeiteinheiten.
              type: integer
          required:
            - value
            - type
          type: object
      type: object
    SubscriptionsProduct:
      nullable: true
      properties:
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Lokalisierte Beschreibungen des Gegenstands.
        group_id:
          description: Gruppen-ID, mit der das Produkt verknüpft ist.
          type: string
        name:
          description: Produktbezeichnung.
          type: string
      type: object
    SubscriptionsProductWithId:
      allOf:
        - properties:
            id:
              description: Produkt-ID, mit der die Abo-Modelle verknüpft sind.
              nullable: true
              type: integer
          type: object
        - $ref: '#/components/schemas/SubscriptionsProduct'
    Surcharge:
      properties:
        surcharge_amount:
          default: null
          example: '1.99'
          format: float
          nullable: true
          type: number
        surcharge_currency:
          default: null
          example: USD
          nullable: true
          type: string
      type: object
    Unused:
      properties:
        unused_amount:
          default: null
          example: '1.99'
          format: float
          nullable: true
          type: number
        unused_currency:
          default: null
          example: USD
          nullable: true
          type: string
      type: object
    User:
      properties:
        id:
          description: Benutzer-ID
          type: string
        name:
          description: Benutzername
          type: string
      type: object
    token:
      example:
        purchase:
          checkout:
            amount: 10
            currency: USD
          subscription:
            gift:
              email: recipient_email@email.com
              recipient: test_recipient_v1
        settings:
          currency: USD
          language: en
          project_id: 16184
          ui:
            components:
              virtual_currency:
                custom_amount: true
            desktop:
              virtual_item_list:
                button_with_price: true
                layout: list
            size: medium
        user:
          age: 19
          country:
            allow_modify: true
            value: US
          email:
            value: john.smith@mail.com
          id:
            value: user_2
          name:
            value: John Smith
      properties:
        custom_parameters:
          description: >-
            Sie können zusätzliche Parameter im Token im
            `custom_parameters`-Objekt übermitteln, um Betrugsschutzfilter zu
            konfigurieren. Die empfohlenen Parameter werden in der
            Drop-down-Liste angezeigt. [Siehe Pay-Station-Dokumentation
            ](https://developers.xsolla.com/de/doc/pay-station/features/antifraud/).
          properties:
            active_date:
              description: >-
                Letztmalig online; Datum gemäß [ISO
                8601](https://en.wikipedia.org/wiki/ISO_8601).
              type: string
            additional_verification:
              description: >-
                Filtert danach, ob der Spieler Konto-Verifikationsverfahren
                verwendet.
              type: boolean
            character_customized:
              description: >-
                Filtert danach, ob der Spieler seinen Charakter individuell
                angepasst hat.
              type: boolean
            chat_activity:
              description: Filtert danach, ob der Spieler die Chatfunktion verwendet.
              type: boolean
            completed_tasks:
              description: Anzahl der erledigten Aufgaben bzw. erreichten Ziele.
              type: integer
            forum_activity:
              description: Filtert danach, ob der Spieler die Chatfunktion verwendet.
              type: boolean
            items_used:
              description: >-
                Filtert danach, ob der Spieler im Spiel gekaufte Gegenstände
                verwendet.
              type: boolean
            karma_points:
              description: Karma des Spielers.
              type: integer
            last_change_password_date:
              description: >-
                Datum der letzten Kennwortänderung; Datumsangabe gemäß [ISO
                8601](https://en.wikipedia.org/wiki/ISO_8601).
              type: string
            non_premium_currency:
              description: Betrag der gewöhnlichen ("non-premium") Währung.
              format: float
              type: integer
            notifications_enabled:
              description: >-
                Filtert danach, ob der Spieler den Erhalt von Benachrichtigungen
                aktiviert hat.
              type: boolean
            profile_completed:
              description: >-
                Filtert danach, ob der Spieler auf seinem Profil zusätzliche
                Informationen hinzugefügt hat.
              type: boolean
            profile_image_added:
              description: Filtert danach, ob der Spieler ein Profilbild hochgeladen hat.
              type: boolean
            pvp_activity:
              description: Filtert danach, ob der Spieler an PvP-Schlachten teilnimmt.
              type: boolean
            registration_date:
              description: >-
                Datum der Kontoerstellung gemäß [ISO
                8601](https://en.wikipedia.org/wiki/ISO_8601).
              type: string
            session_time:
              description: >-
                Durchschnittliche Sitzungsdauer, Angabe gemäß [ISO
                8601](https://en.wikipedia.org/wiki/ISO_8601).
              type: string
            social_networks_added:
              description: >-
                Filtert danach, ob der Spieler Profile von sozialen Netzwerken
                verknüpft hat.
              type: boolean
            total_bans:
              description: >-
                Filtert danach, wie oft der Spieler im Chat/Forum gesperrt
                wurde.
              type: integer
            total_characters:
              description: Anzahl der Charaktere im Spiel.
              type: integer
            total_clans:
              description: Anzahl der Clans, bei denen der Spieler Mitglied ist.
              type: integer
            total_friends:
              description: Anzahl der Freunde.
              type: integer
            total_game_events:
              description: Anzahl der Ingame-Events, an denen der Spieler teilgenommen hat.
              type: integer
            total_gifts:
              description: >-
                Anzahl der Geschenke im Spiel, die der Spieler
                verschickt/erhalten hat.
              type: integer
            total_hours:
              description: Gesamtzahl der Spielstunden.
              type: integer
            total_inventory_value:
              description: Gesamtwert des Inventars (in Ingame-Währung).
              format: float
              type: integer
            total_sum:
              description: Gesamtbetrag der Zahlungen.
              format: float
              type: integer
            tutorial_completed:
              description: >-
                Filtert danach, ob der Spieler das Tutorial des Spiels
                absolviert hat.
              type: boolean
            unlocked_achievements:
              description: Anzahl an freigeschalteten Errungenschaften.
              type: integer
            user_level:
              description: Level, Ansehen oder Rang des Spielers.
              type: integer
            win_rate:
              description: Gewinnquote.
              type: integer
          type: object
        purchase:
          description: Objekt, welches Angaben zum Kauf enthält.
          properties:
            checkout:
              description: Objekt, welches Angaben zur Bezahlung enthält.
              properties:
                amount:
                  description: Kaufbetrag.
                  format: float
                  type: integer
                currency:
                  description: >-
                    Kaufwährung. Währungscode, bestehend aus drei Buchstaben
                    gemäß [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
                  type: string
              type: object
            subscription:
              description: Daten zum Abonnement (Objekt).
              properties:
                available_plans:
                  description: >-
                    Abonnement-Modelle (Array), die im Zahlungsportal angezeigt
                    werden sollen.
                  items:
                    type: string
                  type: array
                currency:
                  description: >-
                    Währung des Abo-Modells, die bei allen Kalkulationen
                    verwendet werden soll.
                  type: string
                gift:
                  description: Details des Geschenkabonnements.
                  properties:
                    anonymous:
                      description: >-
                        Ob der Name des Geschenkgebers verborgen werden soll.
                        Wenn `true`, ist der Name des Geschenkgebers in der
                        E-Mail-Benachrichtigung nicht sichtbar. Standardwert ist
                        `false`.
                      type: boolean
                    email:
                      description: E-Mail-Adresse des Empfängers.
                      type: string
                    message:
                      description: Nachricht für den Empfänger.
                      type: string
                    recipient:
                      description: ID des Empfängers.
                      type: string
                    redirect_url:
                      description: >-
                        Geben Sie hier einen Link zu einer Seite mit
                        zusätzlichen Informationen über das Geschenkabonnement
                        oder zur Seite für die Kontoerstellung an. Der
                        Geschenkempfänger kann von der E-Mail-Benachrichtigung
                        aus zu dieser Seite navigieren.
                      type: string
                  required:
                    - recipient
                    - email
                  type: object
                operation:
                  description: >-
                    Diese Operationsart kommt beim Abo-Modell des Nutzers zur
                    Anwendung. Zur Änderung des Abo-Modells muss der
                    `change_plan`-Wert übermittelt werden. Sie müssen die ID des
                    neuen Abo-Modells im
                    `purchase.subscription.plan_id`-Parameter festlegen.
                  type: string
                plan_id:
                  description: >-
                    Externe ID des Abo-Modells. Diese finden Sie im Kundenportal
                    unter **Subscriptions > Abo-Modelle**.
                  type: string
                product_id:
                  description: Produkt-ID.
                  type: string
                trial_days:
                  description: Probezeitraum in Tagen.
                  type: integer
              type: object
          type: object
        settings:
          description: Benutzerdefinierte Projekteinstellungen (Objekt).
          properties:
            currency:
              description: >-
                Bevorzugte Zahlungswährung. Währungscode, bestehend aus drei
                Buchstaben gemäß [ISO
                4217](https://en.wikipedia.org/wiki/ISO_4217).
              type: string
            external_id:
              description: >-
                Transaktions-ID im Spiel. Eine individuelle ID pro
                Benutzerzahlung erforderlich.
              type: string
            language:
              description: >-
                Sprache der Benutzeroberfläche.
                [Sprachencode](https://developers.xsolla.com/de/doc/pay-station/features/localization/),
                bestehend aus 2 Kleinbuchstaben.
              type: string
            mode:
              description: >-
                Legen Sie als Wert `sandbox` fest, um den Zahlungsvorgang
                auszutesten. Für einen solchen Fall nutzen Sie
                *https://sandbox-secure.xsolla.com*, um das Zahlungsportal
                auszutesten.
              type: string
            payment_method:
              description: ID der Zahlungsart.
              type: integer
            payment_widget:
              description: >-
                Zahlungs-Widget. Kann `paybycash` oder `giftcard` sein. Wenn der
                Parameter festgelegt ist, wird der Benutzer entsprechend zum
                Widget "Pay by Cash" oder zum Widget "Gift Cards"
                weitergeleitet.
              enum:
                - paybycash
                - giftcard
              type: string
            project_id:
              description: Xsolla-ID des Spiels. Kann im Kundenportal eingesehen werden.
              type: integer
            redirect_policy:
              description: Weiterleitungsrichtlinien-Einstellungen (Objekt).
              properties:
                autoredirect_from_status_page:
                  description: >-
                    Legt fest, ob die Weiterleitung von der Statusseite
                    automatisch erfolgt.
                  type: boolean
                delay:
                  description: >-
                    Verzögerung (in Sekunden), nach der ein Benutzer automatisch
                    zur Rückgabe-URL weitergeleitet wird.
                  type: integer
                manual_redirection_action:
                  description: >-
                    Das Verhalten der Pay Station wird ausgelöst, wenn der
                    Benutzer auf die Schaltfläche Schließen oder die
                    Schaltfläche **Zurück zum Spiel** klickt. Kann `redirect`
                    (standardmäßig) und `postmessage` sein. Wenn auf `redirect`
                    gesetzt, wird ein Benutzer zu der im Token übergebenen oder
                    im Kundenportal angegebenen URL umgeleitet. Wenn er auf
                    `postmessage` gesetzt ist, wird ein Benutzer nicht auf
                    andere Seiten umgeleitet. Durch Klicken auf das
                    Schließen-Symbol wird das `close` Ereignis gesendet, und
                    durch Klicken auf die Schaltfläche **Zurück zum Spiel** -
                    das `return` Ereignis.
                  enum:
                    - redirect
                    - postmessage
                  type: string
                redirect_button_caption:
                  description: Text auf der Schaltfläche für die manuelle Weiterleitung.
                  type: string
                redirect_conditions:
                  description: >-
                    Zahlungsstatus, bei dem ein Benutzer zur Rückgabe-URL
                    weitergeleitet wird. Möglich sind: `none`, `successful`,
                    `successful_or_canсeled` oder `any`.
                  enum:
                    - none
                    - successful
                    - successful_or_canceled
                    - any
                  type: string
                status_for_manual_redirection:
                  description: >-
                    Zahlungsstatus, bei dem eine Schaltfläche angezeigt wird,
                    die einen Benutzer zur Rückgabe-URL weiterleitet. Möglich
                    sind: `none`, `successful`, `successful_or_canсeled` oder
                    `any`.
                  enum:
                    - none
                    - successful
                    - successful_or_canceled
                    - any
                  type: string
              type: object
            return_url:
              description: >-
                Seite, zu welcher der Benutzer nach der Zahlung weitergeleitet
                wird. Die folgenden Parameter werden dem Link automatisch
                hinzugefügt: `user_id`, `foreigninvoice`, `invoice_id`,
                `status`.
              type: string
            ui:
              description: Schnittstellen-Einstellungen (Objekt).
              properties:
                components:
                  description: Menü-Einstellungen (Objekt).
                  properties:
                    subscriptions:
                      description: Untermenü "Abo-Modelle" (Objekt).
                      properties:
                        hidden:
                          description: Legt fest, ob das Untermenü angezeigt wird.
                          type: boolean
                        order:
                          description: Position des Untermenüs im Hauptmenü.
                          type: integer
                      type: object
                    virtual_currency:
                      description: Untermenü "Virtuelle Währung".
                      properties:
                        custom_amount:
                          description: >-
                            Legt fest, ob der Benutzer eine willkürliche Menge
                            der virtuellen Währung im Zahlungsportal eingeben
                            kann.
                          type: boolean
                        hidden:
                          description: Legt fest, ob das Untermenü angezeigt wird.
                          type: boolean
                        order:
                          description: Position des Untermenüs im Hauptmenü.
                          type: integer
                      type: object
                    virtual_items:
                      description: Untermenü "Virtuelle Gegenstände".
                      properties:
                        hidden:
                          description: Legt fest, ob das Untermenü angezeigt wird.
                          type: boolean
                        order:
                          description: Position des Untermenüs im Hauptmenü.
                          type: integer
                        selected_group:
                          description: >-
                            Gruppe, die nach dem Öffnen der Registerkarte
                            "Virtuelle Gegenstände" angezeigt wird.
                          type: string
                        selected_item:
                          description: >-
                            Gegenstand, der nach dem Öffnen der Registerkarte
                            "Virtuelle Gegenstände" angezeigt wird (SKU des
                            Gegenstands).
                          type: string
                      type: object
                  type: object
                desktop:
                  description: >-
                    Schnittstellen-Einstellungen für die Desktop-Version
                    (Objekt).
                  properties:
                    header:
                      description: Einstellungen für den Header (Objekt).
                      properties:
                        close_button:
                          description: >-
                            Legt fest, ob eine Schließen-Schaltfläche in der
                            Desktop-Version der Pay Station angezeigt wird. Die
                            Schaltfläche schließt die Pay Station und leitet den
                            Benutzer an die im `settings.return_url`-Parameter
                            angegebene URL weiter. Standardmäßig ist `false`
                            voreingestellt.
                          type: boolean
                        is_visible:
                          description: >-
                            Legt fest, ob der Header im Zahlungsportal angezeigt
                            wird.
                          type: boolean
                        type:
                          description: >-
                            Erscheinungsbild des Headers. Als Wert lässt sich
                            entweder `compact` (Projektname und Benutzer-ID sind
                            ausgeblendet) oder `normal` (voreingestellt)
                            festlegen.
                          enum:
                            - compact
                            - normal
                          type: string
                        visible_logo:
                          description: >-
                            Wenn `true` festgelegt ist, wird im Header Ihr Logo
                            angezeigt (dafür müssen Sie das Bild zuerst Ihrem
                            Customer Success Manager übermitteln).
                          type: boolean
                        visible_name:
                          description: >-
                            Legt fest, ob der Projektname im Header angezeigt
                            wird.
                          type: boolean
                        visible_purchase:
                          description: >-
                            Legt fest, ob die Kaufbeschreibung
                            (`purchase.description.value`) im Header angezeigt
                            wird. `true` ist voreingestellt.
                          type: boolean
                      type: object
                    subscription_list:
                      description: Einstellungen zur Liste der Abo-Modelle (Objekt).
                      properties:
                        description:
                          description: >-
                            Jeglicher Text, der im Zahlungsportal oberhalb der
                            Liste der verfügbaren Abo-Modelle angezeigt werden
                            soll.
                          type: string
                        display_local_price:
                          description: >-
                            Falls als Wert `true` festgelegt ist und falls die
                            Landeswährung des Benutzers sich von der für das
                            Abo-Modell festgelegten Währung unterscheidet,
                            werden dem Benutzer beide Preise angezeigt: Einer in
                            der Landes- und der andere in der Basiswährung.
                          type: boolean
                        layout:
                          description: >-
                            Listenvorlage. Als Wert lässt sich entweder `list`
                            (voreingestellt) oder `grid` festlegen.
                          enum:
                            - list
                            - grid
                          type: string
                      type: object
                    virtual_currency_list:
                      description: >-
                        Einstellungen zur Liste der virtuellen Währungen
                        (Objekt).
                      properties:
                        button_with_price:
                          description: >-
                            Falls als Wert `true` festgelegt ist, wird der Preis
                            auf der Schaltfläche angezeigt. Falls `false`
                            festgelegt ist, wird der Preis links neben der
                            Schaltfläche angezeigt. Standardwert ist `false`.
                          type: boolean
                        description:
                          description: >-
                            Jeglicher Text, zur Anzeige oberhalb der Liste der
                            virtuellen Währungen.
                          type: string
                      type: object
                    virtual_item_list:
                      description: >-
                        Einstellungen zur Liste der virtuellen Gegenstände
                        (Objekt).
                      properties:
                        button_with_price:
                          description: >-
                            Falls als Wert `true` festgelegt ist, wird der Preis
                            auf der Schaltfläche angezeigt. Falls `false`
                            festgelegt ist, wird der Preis links neben der
                            Schaltfläche angezeigt. Standardwert ist `false`.
                          type: boolean
                        layout:
                          description: >-
                            Listenvorlage. Als Wert lässt sich entweder `list`
                            (voreingestellt) oder `grid` festlegen.
                          enum:
                            - list
                            - grid
                          type: string
                        view:
                          description: >-
                            Virtuelle Gruppe an Elementen in
                            vertikalem/horizontalem Menü anzeigen. Es kann
                            `horizontal_navigation` oder `vertical_navigation`
                            (Standard) sein.
                          enum:
                            - horizontal_navigation
                            - vertical_navigation
                          type: string
                      type: object
                  type: object
                header:
                  properties:
                    visible_virtual_currency_balance:
                      description: >-
                        Legt fest, ob dieses Element im Zahlungsportal
                        ausgeblendet werden kann. `true` voreingestellt.
                      type: boolean
                  type: object
                is_prevent_external_link_open:
                  description: >-
                    Ob die Umleitung von Links auf eine externe Ressource
                    deaktiviert ist oder nicht. `true` standardmäßig. Wenn Sie
                    auf einen externen Link klicken, wird das
                    `external-link-open` Ereignis über den `postMessage`
                    Mechanismus gesendet. Die Adresse für den umgeleiteten Link
                    wird im `url` Parameter übergeben.
                  type: boolean
                license_url:
                  description: Link zur EULA.
                  type: string
                mobile:
                  properties:
                    footer:
                      properties:
                        is_visible:
                          description: >-
                            Legt fest, ob der Footer in der mobilen Version des
                            Zahlungsportals ausgeblendet ist.
                          type: boolean
                      type: object
                    header:
                      properties:
                        close_button:
                          description: >-
                            Legt fest, ob eine Schließen-Schaltfläche in der
                            Mobil-Version der Pay Station angezeigt wird. Die
                            Schaltfläche schließt die Pay Station und leitet den
                            Benutzer an die im `settings.return_url`-Parameter
                            angegebene URL weiter. Standardmäßig ist `false`
                            voreingestellt.
                          type: boolean
                      type: object
                    mode:
                      description: >-
                        Ein Benutzer kann nur mit seinen gespeicherten
                        Zahlungsarten bezahlen. Als Wert lässt sich lediglich
                        `saved_accounts` festlegen.
                      enum:
                        - saved_accounts
                      type: string
                  type: object
                mode:
                  description: >-
                    Schnittstellenmodus in der Pay Station. Als Wert lässt sich
                    lediglich `user_account` festlegen: Der Header enthält
                    ausschließlich die Navigationsleiste des Benutzerkontos und
                    der Benutzer kann kein Produkt auswählen oder eine Zahlung
                    tätigen. Dieser Modus ist nur in der Desktop-Version
                    verfügbar.
                  type: string
                size:
                  description: |-
                    Größe des Zahlungsportals. Folgende Größen sind möglich:
                      - [small](https://livedemo.xsolla.com/developers/small/): die kleinstmögliche Größe des Zahlungsportals. Verwenden Sie diese, wenn die Fenstergröße begrenzt ist (Abmessungen: 620 x 630)
                      - [medium](https://livedemo.xsolla.com/developers/medium/): empfohlene Größe. Verwenden Sie diese, um das Zahlungsportal in einer Lightbox darzustellen (Abmessungen: 820 x 840)
                      - [large](https://livedemo.xsolla.com/developers/large/): optimal für die Anzeige des Zahlungsportals in einem neuen Fenster/Registerkarte (Abmessungen: 820 x 840)
                  enum:
                    - small
                    - medium
                    - large
                  type: string
                theme:
                  description: >-
                    Theme des Zahlungsportals. Als Wert lässt sich entweder
                    `default` (voreingestellt) oder `default_dark` festlegen.
                  enum:
                    - default
                    - default_dark
                  type: string
                user_account:
                  description: Details zum Benutzerkonto (Objekt).
                  properties:
                    history:
                      allOf:
                        - description: Untermenü **Historie**.
                        - properties:
                            enable:
                              description: >-
                                Legt fest, ob das Untermenü angezeigt wird.
                                Standardwert ist `false`.
                              type: boolean
                            order:
                              description: Position des Untermenüs im Hauptmenü.
                              type: integer
                          type: object
                    info:
                      allOf:
                        - description: Seite **Mein Konto**.
                        - properties:
                            enable:
                              description: >-
                                Legt fest, ob das Untermenü angezeigt wird.
                                Standardwert ist `false`.
                              type: boolean
                            order:
                              description: Position des Untermenüs im Hauptmenü.
                              type: integer
                          type: object
                    payment_accounts:
                      allOf:
                        - description: Untermenü **Meine Zahlungsarten**.
                        - properties:
                            enable:
                              description: >-
                                Legt fest, ob das Untermenü angezeigt wird.
                                Standardwert ist `false`.
                              type: boolean
                            order:
                              description: Position des Untermenüs im Hauptmenü.
                              type: integer
                          type: object
                    subscriptions:
                      allOf:
                        - description: Untermenü **Abonnements verwalten**.
                        - properties:
                            enable:
                              description: >-
                                Legt fest, ob das Untermenü angezeigt wird.
                                Standardwert ist `false`.
                              type: boolean
                            order:
                              description: Position des Untermenüs im Hauptmenü.
                              type: integer
                          type: object
                  type: object
                version:
                  description: >-
                    Gerätetyp. Als Wert lässt sich entweder `desktop`
                    (voreingestellt) oder `mobile` festlegen.
                  enum:
                    - desktop
                    - mobile
                  type: string
              type: object
          required:
            - project_id
          type: object
        user:
          description: Benutzerdaten (Objekt).
          properties:
            age:
              description: Alter des Benutzers.
              type: integer
            attributes:
              description: >-
                Benutzerattribute zum Filtern der Liste der Gegenstände;
                repräsentiert durch eine gültige Reihe von JSON-Objekten
                bestehend aus Schlüssel-Wert-Paaren.
              type: object
            country:
              properties:
                allow_modify:
                  description: >-
                    Legt fest, ob ein Benutzer das Land im Zahlungsportal ändern
                    darf. Wenn `country.value` im Token übermittelt wird, ist
                    der Wert standardmäßig auf `false` gestellt.
                  type: boolean
                value:
                  description: >-
                    Ländercode, bestehend aus 2 Großbuchstaben gemäß [ISO 3166-1
                    ALPHA-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
                  type: string
              type: object
            email:
              description: >-
                Das `user.email` Objekt ist ein integraler Bestandteil beim
                Aufbau von Anti-Betrugsmodellen und hilft, die Akzeptanzraten zu
                erhöhen. Es ist sowohl für Xsolla als auch für Zahlungssysteme
                erforderlich. Wenn der Parameter nicht übergeben wird, erscheint
                auf der Bezahlseite das Pflichtfeld zur Eingabe der E-Mail. Ein
                Benutzer erhält eine Kaufbestätigung an die im Parameter
                übergebene oder auf der Bezahlseite eingegebene E-Mail.
              properties:
                value:
                  description: >-
                    E-Mail-Adresse des Benutzers. Muss gemäß [RFC
                    822](https://www.w3.org/Protocols/rfc822/#z8)-Protokoll
                    gültig sein.
                  type: string
              required:
                - value
              type: object
            id:
              properties:
                value:
                  description: Benutzer-ID.
                  type: string
              required:
                - value
              type: object
            is_legal:
              description: Legt fest, ob der Benutzer eine juristische Person ist.
              type: boolean
            legal:
              allOf:
                - description: >-
                    Objekt mit Angaben zur juristischen Person. Objekt und alle
                    seine Parameter sind erforderlich, falls für `user.is_legal`
                    `true` festgelegt ist.
                - description: Objekt mit Angaben zur juristischen Person.
                  properties:
                    address:
                      description: Vollständige Unternehmensanschrift.
                      type: string
                    country:
                      description: >-
                        Land des Unternehmenssitzes. Ländercode, bestehend aus 2
                        Großbuchstaben gemäß [ISO 3166-1
                        ALPHA-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
                      type: string
                    name:
                      description: Vollständiger Name des Unternehmens.
                      type: string
                    vat_id:
                      description: Steuerliche Identifikationsnummer.
                      type: string
                  type: object
            name:
              properties:
                value:
                  description: Benutzername.
                  type: string
              type: object
            phone:
              properties:
                value:
                  description: Telefonnummer des Benutzers.
                  type: string
              type: object
            public_id:
              properties:
                value:
                  description: >-
                    Parameter, durch den der Benutzer eindeutig identifizierbar
                    ist und der dem Benutzer bekannt ist (E-Mail, Benutzername,
                    usw.). Gestattet dem Benutzer, Käufe außerhalb des
                    Game-Stores zu tätigen (z. B. via Verkaufsterminals).
                  type: string
              type: object
            steam_id:
              properties:
                value:
                  description: Steam-ID.
                  type: string
              type: object
            tracking_id:
              properties:
                value:
                  description: >-
                    Eindeutige Tracking-ID (wird bei Marketingkampagnen
                    verwendet).
                  type: string
              type: object
            utm:
              description: Datenverkehrsattribute (Objekt).
              properties:
                utm_campaign:
                  description: >-
                    Kampagnenbezeichnung, ins Englische transliteriert oder
                    übersetzt.
                  type: string
                utm_content:
                  description: Kampagneninhalt.
                  type: string
                utm_medium:
                  description: >-
                    Datenverkehrskanal (kontextbezogene Anzeigen, mediale
                    Anzeigen, E-Mail-Listen, usw.).
                  type: string
                utm_source:
                  description: Ursprung des Datenverkehrs.
                  type: string
                utm_term:
                  description: >-
                    Kampagnen-Keyword. Falls festgelegt, basieren die
                    Statistiken auf den Keywords, die für die Zielgruppenwerbung
                    verwendet werden, anstatt auf spezifischen Suchanfragen. In
                    Google Analytics ist der angegebene `utm_term` Teil des
                    allgemeinen Berichts zu Suchbegriffen.
                  type: string
              type: object
          required:
            - id
          type: object
      type: object
  securitySchemes:
    basicAuth:
      description: >-
        Die Xsolla-API verwendet die Basisauthentifizierung. Alle Anfragen an
        die API müssen den Header `Authorization: Basic
        <your_authorization_basic_key>` enthalten, wobei
        `<your_authorization_basic_key>` das `merchant_id:api_key`-Paar ist, das
        gemäß dem Base64-Standard kodiert ist.

         Diese Parameter finden Sie im [Kundenportal](https://publisher.xsolla.com/):<ul><li>Die `merchant_id` finden Sie:<ul><li>unter unter <b>Firmeneinstellungen > Firma</b>;</li><li>in der URL in der Adresszeile des Browsers auf einer beliebigen Seite im Kundenportal. Die URL weist das folgende Format auf: `https://publisher.xsolla.com/<merchant_id>`.</li></ul></li><li>Der `api_key` wird im Kundenportal nur einmal angezeigt, nämlich dann, wenn er erstellt wird. Sie sind selbst dafür verantwortlich, den Schlüssel zu speichern. Einen neuen Schlüssel können Sie in den folgenden Abschnitten erstellen:<ul><li><b>Firmeneinstellungen > API-Schlüssel</b></li><li><b>Projekteinstellungen > API-Schlüssel</b></li></ul></li></ul><br>
        Weitere Informationen über die Arbeit mit API-Schlüsseln finden Sie in
        der
        [API-Referenz](https://developers.xsolla.com/de/api/getting-started/#api_keys_overview).
      scheme: basic
      type: http
    subscriptionsManagementJwtAuth:
      scheme: bearer
      type: http
info:
  description: >-
    # Überblick


    * **Version:** 2.0

    * **Servers**: `https://api.xsolla.com/merchant/v2/`


    Diese API-Referenz beschreibt Endpunkte für die Verwaltung von Abonnements,
    Gutscheinen und Werbeaktionen. 

    Weitere Informationen über Subscriptions finden Sie in der
    [Produktanleitung](https://developers.xsolla.com/de/doc/subscriptions) und
    in der
    [Begriffserläuterung](https://developers.xsolla.com/de/doc/subscriptions/integration-guide/get-started/#general_glossary).
  title: Subscriptions API
  version: '2.0'
openapi: 3.0.0
paths:
  /api/user/v1/management/projects/{project_id}/subscriptions:
    get:
      operationId: list-subscriptions
      parameters:
        - in: query
          name: limit
          required: false
          schema:
            type: integer
        - in: query
          name: offset
          required: false
          schema:
            type: integer
        - in: query
          name: locale
          required: false
          schema:
            type: string
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListManagementSubscriptionsResponse'
          description: Get subscriptions info
        '400':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.bad_request
                  description: Incorrect limit value, maximum allowed is 100
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Bad request
      security:
        - subscriptionsManagementJwtAuth: []
      summary: List subscriptions
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/settings:
    get:
      operationId: get-management-settings
      parameters:
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectManageSubscriptionSettingsResponse'
          description: Returns project settings for managing subscription
        '403':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.access_denied
                  description: You don't have access to requested project or resource.
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Forbidden
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Project not found
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
        '500':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Retrieving data from cache has failed.
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Internal server error
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Get management settings
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}:
    get:
      operationId: get-management-subscription
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: query
          name: locale
          required: false
          schema:
            type: string
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagementSubscriptionResponse'
          description: Get subscription info
        '400':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Project with id = 123 was not found
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Bad request
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Subscription not found
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Get subscription
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/activate:
    put:
      operationId: activate-subscription
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              example:
                status: successful
          description: Move subscription from non-renew to active
        '400':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.bad_request
                  description: Subscription is not allowed to change to active
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Bad request
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Subscription not found
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Activate subscription
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/cancel:
    put:
      operationId: cancel-subscription
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json: {}
          description: Make subscription non-renewable
        '400':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_active
                  description: Subscription is not active
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Bad request
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Subscription not found
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Cancel subscription
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/change_plan:
    post:
      operationId: get-change-plan-link
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: query
          name: plan_external_id
          required: true
          schema:
            type: string
        - in: query
          name: sandbox
          required: false
          schema:
            type: boolean
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayStationLinkResponse'
          description: Returns link to change subscription plan
        '400':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Change plan is not possible
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Bad request
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: ubscription with id = 123 not found or not belongs to user
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
        '500':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Publisher API request failed
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Internal server error
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Get change plan link
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/payment_account:
    get:
      operationId: get-payment-account
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentRecurrentAccountResponse'
          description: Get payment account info
        '404':
          content:
            application/json:
              example:
                error:
                  code: data.not_found
                  description: Data not found
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Get payment account
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/payment_account/manage:
    post:
      operationId: manage-payment-account
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: query
          name: sandbox
          required: false
          schema:
            type: boolean
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayStationLinkResponse'
          description: Returns link for managing payment accounts
        '400':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Token retrieve error
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Bad request
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Subscription with id = 123 not found or not belongs to user
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
        '500':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Publisher API request failed
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Internal server error
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Manage payment account
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/payment_accounts:
    get:
      operationId: list-payment-accounts
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillingAccountsListResponse'
          description: Returns the user's billing accounts
        '403':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.access_denied
                  description: You don't have access to requested project or resource.
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Forbidden
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Subscription with id = 123 not found or not belongs to user
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
        '500':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Publisher API request failed.
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Internal server error
      security:
        - subscriptionsManagementJwtAuth: []
      summary: List payment accounts
      tags:
        - subscription-management
    post:
      operationId: link-payment-account
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: query
          name: payment_account_id
          required: true
          schema:
            type: integer
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              example:
                status: successful
          description: Links a payment account to a subscription
        '400':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: This account is already linked
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Bad request
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Subscription with id = 123 not found or not belongs to user
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
        '500':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Publisher API request failed
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Internal server error
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Link payment account
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/payment_accounts/{payment_account_id}:
    delete:
      operationId: unlink-payment-account
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: path
          name: payment_account_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              example:
                status: successful
          description: Unlink payment accounts
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Subscription with id = 123 not found or not belongs to user
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
        '500':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Error saving data
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Internal server error
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Unlink payment account
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/plans_for_change:
    get:
      operationId: list-plans-for-change
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: query
          name: limit
          required: false
          schema:
            type: integer
        - in: query
          name: offset
          required: false
          schema:
            type: integer
        - in: query
          name: locale
          required: false
          schema:
            type: string
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPlansResponse'
          description: List of available plans for change
        '400':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Incorrect limit value, maximum allowed is 100
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Bad request
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Subscription with id = 123 not found or not belongs to user
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
      security:
        - subscriptionsManagementJwtAuth: []
      summary: List plans for change
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/plans_for_change/{plan_id}:
    get:
      operationId: get-plan-for-change
      parameters:
        - in: path
          name: subscription_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: path
          name: plan_id
          required: true
          schema:
            pattern: \d+
            type: integer
        - in: query
          name: locale
          required: false
          schema:
            type: string
        - in: path
          name: project_id
          required: true
          schema:
            pattern: \d+
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangePlanPaymentDetailsResponse'
          description: Available plans for change with payment details
        '400':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.exception
                  description: Change plan is not possible
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Bad request
        '404':
          content:
            application/json:
              example:
                error:
                  code: subscriptions.not_found
                  description: Subscription with id = 123 not found or not belongs to user
                request_id: e54d2081-33cc-4682-b65c-b22d98686d0a
          description: Not found
      security:
        - subscriptionsManagementJwtAuth: []
      summary: Get plan for change
      tags:
        - subscription-management
    servers:
      - url: https://subscriptions.xsolla.com
  /merchants/{merchant_id}/coupon_promotions:
    post:
      description: |-
        Ruft die Liste der Projekte des Händlers ab.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: create-campaign
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              campaign_code: sample_campaign
              campaign_names:
                en: Campaign Name
                ru: Название кампании
              campaign_redeems_count_for_user: 1
              expiration_date: '2019-12-31'
              project_id: 12345
              redeems_count: 10
              redeems_count_for_user: 1
              subscription_coupon:
                plan_id: 123
                product_id: 456
                trial_period: 30
              virtual_currency_amount: 200
            schema:
              allOf:
                - required:
                    - campaign_code
                    - project_id
                    - campaign_names
                - $ref: '#/components/schemas/Campaign'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  id:
                    example: 9134
                    type: integer
                type: object
          description: Created.
      security:
        - basicAuth: []
      summary: Kampagne erstellen
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/coupon_promotions/{campaign_id}/coupons:
    post:
      description: |-
        Ruft die Liste der Projekte des Händlers ab.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: add-coupon-to-campaign
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/campaign-id-path-param'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                coupon_code:
                  description: Gutscheincode.
                  example: 34bryrb3
                  type: string
              required:
                - coupon_code
              type: object
        required: true
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Gutschein zur Kampagne hinzufügen
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions:
    get:
      description: |-
        Ruft die Liste der Projekte des Händlers ab.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: get-promotions-list
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - datetime:
                    from: '2020-02-01T00:00:00+04:00'
                    to: '2020-11-30T01:28:42+04:00'
                  enabled: true
                  id: 17840
                  is_active: true
                  is_infinite: false
                  project:
                    id: 12345
                    localized_name: Christmas sale
                  read_only: false
                  technical_name: christmas
                - datetime: null
                  enabled: false
                  id: 17891
                  is_active: false
                  is_infinite: true
                  project:
                    id: 12345
                    localized_name: 30% discount
                  read_only: false
                  technical_name: Sale promotion
          description: OK.
      security:
        - basicAuth: []
      summary: Liste der Werbeaktionen abrufen
      tags:
        - promotions
      x-admin: true
      x-server: true
    post:
      description: |-
        Ruft die Liste der Projekte des Händlers ab.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: create-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              description:
                en: Promotion with 30% discount
                ru: Акция со скидкой 30%
              label:
                en: 30%
                ru: 30%
              name:
                en: 30% discount
                ru: скидка 30%
              project_id: 12345
              technical_name: Sale promotion
            schema:
              allOf:
                - required:
                    - project_id
                    - technical_name
                - $ref: '#/components/schemas/GetPromotion'
        required: true
      responses:
        '201':
          content:
            application/json:
              example:
                id: 17890
              schema:
                properties:
                  id:
                    description: ID der Werbeaktion.
                    type: integer
                type: object
          description: Created.
      security:
        - basicAuth: []
      summary: Werbeaktion anlegen
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}:
    delete:
      description: |-
        Ruft die Liste der Projekte des Händlers ab `enabled` =`false`.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: delete-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Werbeaktion löschen
      tags:
        - promotions
      x-admin: true
      x-server: true
    get:
      description: |-
        Ruft die Liste der Projekte des Händlers ab.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: get-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                description:
                  en: Promotion with 30% discount
                  ru: Акция со скидкой 30%
                enabled: false
                id: 17890
                label:
                  en: 30%
                  ru: 30%
                name:
                  en: 30% discount
                  ru: Скидка 30%
                project_id: 40544
                read_only: false
                show_banner: true
                technical_name: Sale promotion
              schema:
                $ref: '#/components/schemas/GetPromotion'
          description: OK.
      security:
        - basicAuth: []
      summary: Werbeaktion anfordern
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        Ruft die Liste der Projekte des Händlers ab. Wenn die Aktion
        schreibgeschützt ist(`read_only` = `true`), können Sie dürfen den
        Parameter `project_id` nicht ändern.

        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: update-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              description:
                en: Promotion with 5% discount
                ru: Акция со скидкой 5%
              label:
                en: 5%
                ru: 5%
              name:
                en: 5% discount
                ru: скидка 5%
              project_id: 40544
              technical_name: Sale promotion
            schema:
              allOf:
                - required:
                    - project_id
                    - technical_name
                - $ref: '#/components/schemas/GetPromotion'
        required: true
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Werbeaktion aktualisieren
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}/coupons:
    put:
      description: |-
        Ruft die Liste der Projekte des Händlers ab.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: attach-campaign-to-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                campaigns:
                  description: Array von Kampagnen-IDs.
                  example:
                    - 9135
                  items:
                    type: integer
                  type: array
              required:
                - campaigns
              type: object
        required: true
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Kampagne mit einer Werbeaktion verbinden
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}/payment_systems:
    get:
      description: >-
        Ruft die für eine Aktion unterstützten Zahlungssysteme ab. Wenn die
        Liste leer ist, gilt die Aktion für alle Zahlungssysteme.

        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: get-payment-systems
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                id: 17840
                payment_systems:
                  - id: 27
                    name: Yandex.Money
              schema:
                allOf:
                  - properties:
                      id:
                        type: integer
                    type: object
                  - $ref: '#/components/schemas/PromotionPaymentSystem'
          description: OK.
      security:
        - basicAuth: []
      summary: Zahlungssysteme auflisten
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        Legt die für eine Aktion unterstützten Zahlungssysteme fest. Wenn die
        Liste leer ist, gilt die Aktion für alle Zahlungssysteme. Wenn die
        Aktion schreibgeschützt ist (`read_only` = `true`), können Sie diese
        Methode nicht aufrufen.

        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: set-payment-systems
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              payment_systems:
                - id: 24
                  name: PayPal
            schema:
              $ref: '#/components/schemas/PromotionPaymentSystem'
        required: true
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Zahlungssysteme festlegen
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}/periods:
    get:
      description: |-
        Ruft die Liste der Projekte des Händlers ab.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: get-validity-periods
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                id: 17840
                periods:
                  - from: '2020-02-01T00:00:00+04:00'
                    offset: '+04:00'
                    to: '2020-11-30T01:28:42+04:00'
              schema:
                allOf:
                  - properties:
                      id:
                        type: integer
                    type: object
                  - $ref: '#/components/schemas/PromotionPeriod'
          description: OK.
      security:
        - basicAuth: []
      summary: Geltungszeiträume auflisten
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        Ruft die Liste der Projekte des Händlers ab. Wenn die Aktion
        schreibgeschützt ist(`read_only` = `true`), können Sie die Prämien nicht
        aktualisieren.

        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: set-validity-periods
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              periods:
                - from: '2019-03-02T00:00:00+04:00'
                  to: '2019-04-02T00:00:00+04:00'
            schema:
              $ref: '#/components/schemas/PromotionPeriod'
        required: true
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Geltungszeiträume festlegen
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}/review:
    get:
      description: >-
        Ruft die Liste der Projekte des Händlers ab. Diese Methode gibt die
        Liste der Fehler zurück, sofern welche vorhanden sind.

        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: review-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - component: rewards
                  message: Please select a reward
              schema:
                items:
                  properties:
                    component:
                      type: string
                    message:
                      type: string
                  type: object
                type: array
          description: OK.
      security:
        - basicAuth: []
      summary: Werbeaktion überprüfen
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}/rewards:
    get:
      description: |-
        Ruft die Liste der Projekte des Händlers ab.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: get-rewards
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                id: 17840
                item:
                  bonus:
                    - id: 123456
                      localized_name: T-34-3
                      quantity: 2
                      sku: '1234'
                  discount:
                    - discount_percent: 5
                      localized_name: T-34-3
                      max_amount: 10
                      sku: '1234'
                package:
                  bonus_amount: 5
                  bonus_percent: 5
                purchase:
                  discount_percent: 10
                subscription:
                  trial_days: 30
              schema:
                allOf:
                  - properties:
                      id:
                        type: integer
                    type: object
                  - $ref: '#/components/schemas/PromotionReward'
          description: OK.
      security:
        - basicAuth: []
      summary: Belohnungen abrufen
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        Ruft die Liste der Projekte des Händlers ab. Wenn die Aktion
        schreibgeschützt ist(`read_only` = `true`), können Sie die Prämien nicht
        aktualisieren.

        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: set-rewards
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              item:
                bonus:
                  - quantity: 2
                    sku: '1234'
                discount:
                  - discount_percent: 5
                    max_amount: 10
                    sku: '1234'
              package:
                bonus_amount: 5
                bonus_percent: 5
              purchase:
                discount_percent: 10
              subscription:
                trial_days: 30
            schema:
              $ref: '#/components/schemas/PromotionReward'
        required: true
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Belohnungen festlegen
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}/subject:
    get:
      description: |-
        Ruft die Liste der Projekte des Händlers ab.
        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: get-subject
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                digital_contents: null
                id: 178
                items:
                  - id: 1234
                    localized_name: T-34-3
                    sku: '1234'
                packages: null
                purchase: false
                subscriptions: null
              schema:
                allOf:
                  - $ref: '#/components/schemas/PromotionSubject'
                  - properties:
                      id:
                        type: integer
                    type: object
          description: OK.
      security:
        - basicAuth: []
      summary: Thema anfordern
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        Ruft die Liste der Projekte des Händlers ab. Wenn die Aktion
        schreibgeschützt ist(`read_only` = `true`), können Sie die Prämien nicht
        aktualisieren. Das Subjekt kann folgende Werte annehmen:`purchase`, oder
        `items`, oder`packages`.

        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: set-subject
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              digital_contents: null
              items:
                - sku: '1234'
              packages: null
              purchase: false
              subscriptions: null
            schema:
              $ref: '#/components/schemas/PromotionSubject'
        required: true
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Thema festlegen
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}/toggle:
    put:
      description: >-
        Schaltet den Status einer Aktion von `enabled` auf `disabled` um und
        umgekehrt.

        <div class="notice">
          <p><strong>Bemerkung</strong></p><p> Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, Sie müssen also den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist, um die Autorisierung einzurichten.</p>
        </div>
      operationId: toggle-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Werbeaktion zu-/abschalten
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/subscriptions:
    get:
      description: >-
        Listet alle wiederkehrenden Abonnements auf.<div
        class="notice"><strong>Bemerkung</strong><br><br>Diese API-Methode kann
        bei hoher Belastung nicht verwendet werden. Die maximale Belastung
        beträgt 20 Anfragen pro Minute.</div>

        <div class="notice">

        <p><strong>Bemerkung</strong></p><p>Dieser API-Aufruf enthält nicht den
        Pfadparameter <code>project_id</code>, daher müssen Sie zum Einrichten
        der Autorisierung den API-Schlüssel verwenden, der in allen Projekten
        des Unternehmens gültig ist.</p>

        </div>
      operationId: get-subscriptions
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/user-id-query-param'
        - $ref: '#/components/parameters/array-project-id-query-param'
        - $ref: '#/components/parameters/array-plan-id-query-param'
        - $ref: '#/components/parameters/array-product-id-query-param'
        - $ref: '#/components/parameters/array-group-id-query-param'
        - $ref: '#/components/parameters/status-query-param-array'
        - $ref: '#/components/parameters/datetime-from-query-param'
        - $ref: '#/components/parameters/datetime-to-query-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - charge_amount: 0.03
                  currency: USD
                  date_create: '2013-09-05T15:27:47+04:00'
                  date_end: '2014-02-06T11:32:48+04:00'
                  date_last_charge: null
                  date_next_charge: null
                  id: 45
                  plan:
                    id: 12345
                    project_id: 12345
                  product:
                    id: null
                  status: canceled
                  user:
                    id: User1
                    name: John Smith
              schema:
                items:
                  $ref: '#/components/schemas/SubscriptionResponse'
                type: array
          description: OK.
      security:
        - basicAuth: []
      summary: Abonnements abrufen
      tags:
        - subscriptions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/token:
    post:
      description: >-
        Sie können einen Token mit beliebigen Benutzerparametern erstellen.
        Diese Parameter senden Sie beim Erhalt des Tokens und erhalten sie nach
        einer erfolgreichen Zahlung zurück. Ein Token kann nur Parameter
        enthalten, die entweder in diesem Dokument beschrieben oder von Ihnen
        vordefiniert sind.


        Wenn ein Parameter im falschen Format gesendet wird oder den falschen
        Typ hat, wird kein Token ausgestellt. Sie erhalten einen 422-HTTP-Code
        mit der Fehlerbeschreibung im JSON-Body. In `extended_message` erhalten
        Sie eine Information, welche genauen Parameter falsch gesendet wurden.

        <div class="notice">
          <p><strong>Bemerkung</strong></p><p>Dieser API-Aufruf enthält nicht den Pfadparameter <code>project_id</code>, daher müssen Sie zum Einrichten der Autorisierung den API-Schlüssel verwenden, der in allen Projekten des Unternehmens gültig ist.</p>
        </div>
      operationId: create-token
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/token'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                token: eop57k1boA7nnYPtewZ6KEXJyJADEwRT
              schema:
                properties:
                  token:
                    type: string
                type: object
          description: Created.
        '422':
          content:
            application/json:
              example:
                extended_message:
                  global_errors: []
                  property_errors:
                    purchase.checkout.amount:
                      - String value found, but a number is required
                http_status_code: 422
                message: >-
                  JSON is not valid against json schema, please check
                  documentation
                  https://developers.xsolla.com/de/api/v2/getting-started/#api_token_ui
                request_id: cd72633
              schema:
                properties:
                  extended_message:
                    properties:
                      global_errors:
                        items:
                          type: string
                        type: array
                      property_errors:
                        description: >-
                          Objekt enthält Parameternamen mit
                          Fehlerbeschreibungen.
                        type: object
                    type: object
                  http_status_code:
                    type: integer
                  message:
                    type: string
                  request_id:
                    type: string
                type: object
          description: Unprocessable Entity.
      security:
        - basicAuth: []
      summary: Token erstellen
      tags:
        - token
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/coupons/{code}/details:
    get:
      description: Fordert nähere Informationen zum Gutschein mit Hilfe seines Codes an.
      operationId: get-coupon
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/code-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                key: '12'
                list_of_values: []
                name:
                  en: Level
                  ru: Уровень
                skip_condition_on_nonexistent_key: true
                type: int
                visible: false
              schema:
                $ref: '#/components/schemas/CouponAttribute'
          description: OK.
      security:
        - basicAuth: []
      summary: Gutschein anfordern
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/coupons/{code}/redeem:
    post:
      description: Einen Gutschein mittels seines Codes einlösen.
      operationId: redeem-coupon
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/code-path-param'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                user_id:
                  description: Benutzer-ID.
                  example: '1234'
                  type: string
              required:
                - user_id
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                campaign_code: new_campaign
                coupon_code: ddgf5bn4
                coupon_id: 89613996
                expiration_date: '2019-12-31T00:00:00+00:00'
                is_active: true
                project_id: 12345
                redeems_count_for_user: 10
                redeems_count_remain: 20
                subscription_coupon: null
                virtual_currency_amount: 200
                virtual_items: []
              schema:
                $ref: '#/components/schemas/Coupon'
          description: OK.
      security:
        - basicAuth: []
      summary: Einen Gutschein einlösen
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/currencies:
    get:
      description: Listet alle unterstützten Abonnement-Währungen auf.
      operationId: get-currencies
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - AED
                - ALL
                - AMD
                - ARS
                - AUD
                - AZN
                - BAM
                - BBD
                - BGN
                - BHD
                - BND
                - BRL
                - BYN
                - BZD
                - CAD
                - CHF
                - CLP
                - CNY
                - COP
                - CRC
                - CZK
                - DKK
                - DZD
                - EGP
                - EUR
                - GBP
                - GEL
                - GHS
                - GIP
                - GTQ
                - HKD
                - HRK
                - HUF
                - IDR
                - ILS
                - INR
                - IQD
                - IRR
                - ISK
                - JMD
                - JOD
                - JPY
                - KES
                - KGS
                - KRW
                - KWD
                - KZT
                - LAK
                - LBP
                - LKR
                - MAD
                - MDL
                - MKD
                - MMK
                - MNT
                - MUR
                - MXN
                - MYR
                - NGN
                - NIO
                - NOK
                - NPR
                - NZD
                - OMR
                - PAB
                - PEN
                - PHP
                - PKR
                - PLN
                - PYG
                - QAR
                - RON
                - RSD
                - RUB
                - SAR
                - SEK
                - SGD
                - SVC
                - THB
                - TND
                - TRY
                - TWD
                - UAH
                - USD
                - UYU
                - UZS
                - VEF
                - VND
                - XOF
                - YER
                - ZAR
          description: OK.
      security:
        - basicAuth: []
      summary: Währungen abrufen
      tags:
        - payments
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/payments:
    get:
      description: Listet alle Abonnement-Zahlungen auf.
      operationId: get-payments
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/user-id-query-param'
        - $ref: '#/components/parameters/status-id-query-param'
        - $ref: '#/components/parameters/datetime-from-query-param2'
        - $ref: '#/components/parameters/datetime-to-query-param2'
        - $ref: '#/components/parameters/subscription-id-query-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - date_payment: '2016-04-05T10:02:01+03:00'
                  id: 67683
                  id_payment: 203960
                  status: fail
                  subscription:
                    charge_amount: 1
                    comment: null
                    currency: RUB
                    date_create: '2015-05-28T14:33:54+03:00'
                    date_end: '2016-04-05T10:02:07+03:00'
                    date_last_charge: '2015-06-03T16:07:29+03:00'
                    date_next_charge: '2015-06-04T00:00:00+03:00'
                    id: 3646
                    plan:
                      billing_retry:
                        value: 1
                      charge:
                        amount: 1
                        currency: RUB
                        period:
                          type: day
                          value: 1
                      description: null
                      expiration:
                        type: day
                        value: 0
                      external_id: E8nJ79
                      grace_period:
                        type: day
                        value: 0
                      group_id: charge
                      id: 24
                      localized_name: null
                      name: null
                      project_id: 12345
                      refund_period: null
                      status:
                        value: deleted
                      tags: null
                      trial:
                        type: day
                        value: 0
                      type: charge
                    product:
                      description: null
                      group_id: charge
                      id: 1
                      name: charge
                    status: freeze
                    user:
                      id: '10'
                      name: user2
                - date_payment: '2015-09-21T17:06:47+03:00'
                  id: 1531
                  id_payment: 168866
                  status: done
                  subscription:
                    charge_amount: 1
                    comment: "  \r\n"
                    currency: RUB
                    date_create: '2015-09-21T17:06:47+03:00'
                    date_end: null
                    date_last_charge: '2015-09-21T18:10:09+03:00'
                    date_next_charge: '2015-09-22T18:10:09+03:00'
                    id: 2004846
                    plan:
                      billing_retry:
                        value: 1
                      charge:
                        amount: 1
                        currency: RUB
                        period:
                          type: day
                          value: 1
                      description: null
                      expiration:
                        type: day
                        value: 0
                      external_id: E8nX9
                      grace_period:
                        type: day
                        value: 0
                      group_id: charge
                      id: 200
                      localized_name: null
                      name: null
                      project_id: 70
                      refund_period: null
                      status:
                        value: deleted
                      tags: null
                      trial:
                        type: day
                        value: 0
                      type: charge
                    product: null
                    status: new
                    user:
                      id: '12'
                      name: user1
          description: OK.
      security:
        - basicAuth: []
      summary: Zahlungen abrufen
      tags:
        - payments
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/plans:
    get:
      description: Listet alle Abo-Modelle auf.
      operationId: get-plans
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-query-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/external-id-query-param'
        - $ref: '#/components/parameters/group-id-query-param'
        - $ref: '#/components/parameters/product-id-query-param'
        - $ref: '#/components/parameters/query-query-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - billing_retry:
                    value: 1
                  charge:
                    amount: 19.99
                    currency: USD
                    period:
                      type: month
                      value: 1
                    prices:
                      - amount: 17.99
                        currency: EUR
                        setup_fee: 1.5
                      - amount: 2000
                        currency: JPY
                        setup_fee: 2.5
                  description:
                    en: 10x more experience!
                  expiration:
                    type: day
                    value: 0
                  external_id: 3b355320
                  grace_period:
                    type: day
                    value: 0
                  group_id: null
                  id: 241037
                  localized_name: Platinum VIP
                  name:
                    en: Platinum VIP
                    fr: Le VIP-statut platinum
                  project_id: 40797
                  refund_period: null
                  status:
                    value: active
                  tags: []
                  trial:
                    type: day
                    value: 0
                - billing_retry:
                    value: 1
                  charge:
                    amount: 9.99
                    currency: USD
                    period:
                      type: month
                      value: 1
                    prices:
                      - amount: 8
                        currency: EUR
                        setup_fee: 1.5
                      - amount: 1000
                        currency: JPY
                        setup_fee: 2.5
                  description:
                    en: 3x more experience!
                  expiration:
                    type: day
                    value: 0
                  external_id: 0fe1b6fc
                  grace_period:
                    type: day
                    value: 0
                  group_id: null
                  id: 241038
                  localized_name: Gold Status
                  name:
                    en: Gold Status
                    fr: Le statut d’or
                  project_id: 40797
                  refund_period: null
                  status:
                    value: active
                  tags: []
                  trial:
                    type: day
                    value: 0
              schema:
                items:
                  allOf:
                    - $ref: '#/components/schemas/SubscriptionsPlan'
                    - properties:
                        localized_name:
                          description: >-
                            Name des Abo-Modells in der Standardsprache (en),
                            repliziert den Wert name.en.
                          type: string
                      type: object
                type: array
          description: OK.
      security:
        - basicAuth: []
      summary: Abo-Modelle abrufen
      tags:
        - plans
      x-admin: true
      x-server: true
    post:
      description: Legt ein Abo-Modell an.
      operationId: create-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              billing_retry:
                value: 1
              charge:
                amount: 10
                currency: USD
                period:
                  type: month
                  value: 1
                prices:
                  - amount: 8
                    currency: EUR
                    setup_fee: 1.5
                  - amount: 1000
                    currency: JPY
                    setup_fee: 2.5
              description:
                en: 2x more experience!
              expiration:
                type: day
                value: null
              external_id: exp
              grace_period:
                type: day
                value: 2
              name:
                en: Experience boost
              refund_period: null
              status:
                value: active
              trial:
                type: day
                value: 7
            schema:
              allOf:
                - required:
                    - name
                    - charge
                - $ref: '#/components/schemas/SubscriptionsPlan'
        required: true
      responses:
        '201':
          content:
            application/json:
              example:
                external_id: exp
                plan_id: 241082
              schema:
                properties:
                  external_id:
                    type: string
                  plan_id:
                    type: integer
                type: object
          description: Erstellt.
      security:
        - basicAuth: []
      summary: Create Plan
      tags:
        - plans
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/plans/{plan_id}:
    delete:
      description: Deaktiviert ein Abo-Modell.
      operationId: disable-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Abo-Modell deaktivieren
      tags:
        - plans
      x-admin: true
      x-server: true
    patch:
      description: Schaltet ein Abo-Modell aktiv.
      operationId: enable-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Abo-Modell aktivieren
      tags:
        - plans
      x-admin: true
      x-server: true
    put:
      description: Aktualisiert die Abo-Modell-Parameter.
      operationId: update-plan-parameters
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              billing_retry:
                value: 1
              charge:
                amount: 20
                currency: USD
                period:
                  type: month
                  value: 1
                prices:
                  - amount: 17
                    currency: EUR
                    setup_fee: 1.5
                  - amount: 2000
                    currency: JPY
                    setup_fee: 2.5
              description:
                en: 3x more experience!
              expiration:
                type: day
                value: null
              external_id: exp
              grace_period:
                type: day
                value: 2
              name:
                en: Experience boost
              refund_period: null
              tags: []
              trial:
                type: day
                value: 7
            schema:
              $ref: '#/components/schemas/SubscriptionsPlanRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                billing_retry:
                  value: 1
                charge:
                  amount: 20
                  currency: USD
                  period:
                    type: month
                    value: 1
                  prices:
                    - amount: 17
                      currency: EUR
                      setup_fee: 1.5
                    - amount: 2000
                      currency: JPY
                      setup_fee: 2.5
                description:
                  en: 3x more experience!
                expiration:
                  type: day
                  value: 0
                external_id: exp
                grace_period:
                  type: day
                  value: 2
                group_id: null
                id: 241082
                localized_name: Experience boost
                name:
                  en: Experience boost
                project_id: 40797
                refund_period: null
                status:
                  value: active
                tags: []
                trial:
                  type: day
                  value: 7
                type: all
          description: OK.
      security:
        - basicAuth: []
      summary: Abo-Modell aktualisieren
      tags:
        - plans
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/plans/{plan_id}/delete:
    delete:
      description: Löscht ein Abo-Modell.
      operationId: delete-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Abo-Modell löschen
      tags:
        - plans
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/products:
    get:
      description: Listet alle abonnement-basierten Produkte auf.
      operationId: get-products
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/group-id-query-param'
        - $ref: '#/components/parameters/product-id-query-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - description:
                    en: Description in English.
                  group_id: charge
                  id: 714
                  name: Channel
                - description:
                    en: Description in English.
                  group_id: notify
                  id: 715
                  name: notify
                - description:
                    en: Description in English.
                  group_id: charge
                  id: 716
                  name: charge2
                - description:
                    en: Description in English.
                  group_id: charge
                  id: 486
                  name: Channel2
              schema:
                items:
                  $ref: '#/components/schemas/SubscriptionsProductWithId'
                type: array
          description: OK.
      security:
        - basicAuth: []
      summary: Get Products
      tags:
        - products
      x-admin: true
      x-server: true
    post:
      description: Legt ein abonnement-basiertes Produkt an.
      operationId: create-product
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              description:
                en: Kids TV
              group_id: charge
              name: Channel2
            schema:
              allOf:
                - required:
                    - name
                    - group_id
                - $ref: '#/components/schemas/SubscriptionsProduct'
        required: true
      responses:
        '201':
          content:
            application/json:
              example:
                product_id: 172003
              schema:
                properties:
                  product_id:
                    type: integer
                type: object
          description: Created.
      security:
        - basicAuth: []
      summary: Create Product
      tags:
        - products
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/products/{product_id}:
    delete:
      description: Löscht ein abonnement-basiertes Produkt.
      operationId: delete-product
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/product-id-path-param'
      responses:
        '204':
          description: No Content (Kein Inhalt).
      security:
        - basicAuth: []
      summary: Produkt löschen
      tags:
        - products
      x-admin: true
      x-server: true
    put:
      description: Aktualisiert ein abonnement-basiertes Produkt.
      operationId: update-product
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/product-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              description:
                en: Description in English.
              group_id: charge13
              name: Channel23
            schema:
              allOf:
                - required:
                    - name
                    - group_id
                - $ref: '#/components/schemas/SubscriptionsProduct'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                description:
                  en: Description in English.
                group_id: charge13
                id: 1713603
                name: Channel23
              schema:
                $ref: '#/components/schemas/SubscriptionsProductWithId'
          description: OK.
      security:
        - basicAuth: []
      summary: Produkt aktualisieren
      tags:
        - products
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/{subscription_id}:
    get:
      description: Ruft bestimmte Abonnementangaben mithilfe einer ID ab.
      operationId: get-subscription
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/subscription-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                charge_amount: 0.03
                comment: The subscription was not extended in due time
                currency: USD
                date_create: '2018-09-21T16:54:59+03:00'
                date_end: '2019-02-06T12:43:04+03:00'
                date_last_charge: '2018-09-21T16:55:05+03:00'
                date_next_charge: '2018-09-21T16:55:05+03:00'
                id: 249579
                plan:
                  external_id: lowcost
                  id: 601
                product:
                  id: 123456
                status: canceled
                user:
                  id: user1
                  name: John Smith
              schema:
                $ref: '#/components/schemas/SubscriptionResponse'
          description: OK.
      security:
        - basicAuth: []
      summary: Abonnement abrufen
      tags:
        - subscriptions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/users/{user_id}/subscriptions/payments:
    get:
      description: Listet alle getätigten Zahlungen eines bestimmten Benutzers auf.
      operationId: get-user-payments
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/user-id-path-param'
        - $ref: '#/components/parameters/status-id-query-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/datetime-from-query-param'
        - $ref: '#/components/parameters/datetime-to-query-param'
        - $ref: '#/components/parameters/subscription-id-query-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - date_payment: '2016-04-05T10:02:01+03:00'
                  id: 6746083
                  id_payment: 202789960
                  status: fail
                  subscription:
                    charge_amount: 200
                    comment: null
                    currency: RUB
                    date_create: '2015-05-28T14:33:54+03:00'
                    date_end: '2016-04-05T10:02:07+03:00'
                    date_last_charge: '2015-06-03T16:07:29+03:00'
                    date_next_charge: '2015-06-04T00:00:00+03:00'
                    id: 36946
                    plan:
                      charge:
                        amount: 200
                        currency: RUB
                        period:
                          type: day
                          value: 1
                      description: null
                      expiration:
                        type: day
                        value: 0
                      external_id: E8n34J79
                      grace_period:
                        type: day
                        value: 0
                      group_id: charge
                      id: 24
                      localized_name: null
                      name: null
                      project_id: 1234
                      refund_period: null
                      status:
                        value: deleted
                      tags: null
                      trial:
                        type: day
                        value: 0
                      type: charge
                    product:
                      description: null
                      group_id: charge
                      id: 1
                      name: charge
                    status: freeze
                    user:
                      id: '12'
                      name: John
          description: OK.
      security:
        - basicAuth: []
      summary: Benutzerdaten anfordern
      tags:
        - payments
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/users/{user_id}/subscriptions/{subscription_id}:
    put:
      description: >-
        Aktualisiert ein Abonnement, indem entweder dessen Status (`active`,
        `canceled` oder `non_renewing`) geändert oder das nächste
        Abrechnungsdatum zeitlich verschoben wird.
      operationId: update-subscription
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/user-id-path-param'
        - $ref: '#/components/parameters/subscription-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              status: active
            schema:
              $ref: '#/components/schemas/Subscription'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                charge_amount: 0.03
                currency: USD
                date_create: '2018-09-21T16:54:59+03:00'
                date_end: null
                date_last_charge: '2018-09-21T16:55:05+03:00'
                date_next_charge: '2018-09-21T16:55:05+03:00'
                id: 24953579
                plan:
                  billing_retry:
                    value: 1
                  charge:
                    amount: 0.03
                    currency: USD
                    period:
                      type: day
                      value: 1
                  description: null
                  expiration:
                    type: day
                    value: 0
                  external_id: lowcost
                  grace_period:
                    type: day
                    value: 2
                  group_id: newPlans
                  id: 66001
                  localized_name: null
                  name: null
                  project_id: 18404
                  refund_period: null
                  status:
                    value: active
                  tags: null
                  trial:
                    type: day
                    value: 0
                  type: all
                product: null
                status: active
                user:
                  id: jb1
                  name: J.Black
          description: OK.
      security:
        - basicAuth: []
      summary: Abonnement aktualisieren
      tags:
        - subscriptions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
tags:
  - name: token
    x-displayName: Token
  - name: plans
    x-displayName: Abo-Modelle
  - name: products
    x-displayName: Produkte
  - name: subscriptions
    x-displayName: Subscription management
  - name: payments
    x-displayName: Zahlungen
  - name: promotions
    x-displayName: Werbeaktionen
  - name: coupons
    x-displayName: Gutscheine
  - name: subscription-management
    x-displayName: Subscription management
x-tagGroups:
  - name: Admin subscription management
    tags:
      - token
      - plans
      - products
      - subscriptions
      - payments
      - promotions
      - coupons
  - name: User subscription management
    tags:
      - subscription-management
