components:
  parameters:
    array-group-id-query-param:
      description: プランがリンクされているグループIDのリスト。
      in: query
      name: group_id[]
      schema:
        items:
          type: string
        type: array
    array-plan-id-query-param:
      description: サブスクリプションプランIDのリスト。
      in: query
      name: plan_id[]
      schema:
        items:
          type: integer
        type: array
    array-product-id-query-param:
      description: プランがリンクされている製品IDのリスト。
      in: query
      name: product_id[]
      schema:
        items:
          type: integer
        type: array
    array-project-id-query-param:
      description: プロジェクトIDのリスト。
      in: query
      name: project_id[]
      schema:
        items:
          type: integer
        type: array
    campaign-id-path-param:
      description: キャンペーンID。
      in: path
      name: campaign_id
      required: true
      schema:
        type: integer
    code-path-param:
      description: クーポンコード。
      in: path
      name: code
      required: true
      schema:
        type: string
    datetime-from-query-param:
      description: サンプル日付。リクエストよりも後に作成されたサブスクリプションを見つけるのに役立ちます。
      in: query
      name: datetime_from
      schema:
        format: datetime
        type: string
    datetime-from-query-param2:
      description: 期間開始日。
      in: query
      name: datetime_from
      schema:
        format: datetime
        type: string
    datetime-to-query-param:
      description: サンプル日付。リクエストよりも後に作成されたサブスクリプションを見つけるのに役立ちます。
      in: query
      name: datetime_to
      schema:
        format: datetime
        type: string
    datetime-to-query-param2:
      description: 期間終了日。
      in: query
      name: datetime_to
      schema:
        format: datetime
        type: string
    external-id-query-param:
      description: プラン外部ID（32文字）。
      in: query
      name: external_id
      schema:
        type: string
    group-id-query-param:
      description: プランがリンクされているグループのID。
      in: query
      name: group_id
      schema:
        type: string
    limit-query-param:
      description: ページにあるエレメント数の制限。
      in: query
      name: limit
      required: true
      schema:
        type: integer
    merchant-id-path-param:
      description: マーチャントID。
      in: path
      name: merchant_id
      required: true
      schema:
        type: integer
    offset-query-param:
      description: リスト生成元のエレメントの番号です（カウントは0から始まります）。
      in: query
      name: offset
      schema:
        type: integer
    plan-id-path-param:
      description: プランID。
      in: path
      name: plan_id
      required: true
      schema:
        type: integer
    plan-id-query-param:
      description: サブスクリプションプラン ID。
      in: query
      name: plan_id
      schema:
        type: integer
    product-id-path-param:
      description: プランがリンクされている製品のID。
      in: path
      name: product_id
      required: true
      schema:
        type: integer
    product-id-query-param:
      description: プランがリンクされている製品のID。
      in: query
      name: product_id
      schema:
        type: integer
    project-id-path-param:
      description: プロジェクトID。
      in: path
      name: project_id
      required: true
      schema:
        type: integer
    promotion-id-path-param:
      description: プロモーションID。
      in: path
      name: promotion_id
      required: true
      schema:
        type: integer
    query-query-param:
      description: 検索クエリ（name.en（デフォルトのロケール）を検索する）。
      in: query
      name: query
      schema:
        type: string
    status-id-query-param:
      description: トランザクションステータス。
      in: query
      name: status
      schema:
        enum:
          - done
          - fail
        type: string
        x-enumDescriptions:
          done: 支払いが正常に処理されました。
          fail: 支払いが正常に処理されなかったか、または返金が行われました。
    status-query-param-array:
      description: ステータス。
      in: query
      name: status[]
      schema:
        items:
          enum:
            - active
            - canceled
            - non_renewing
          type: string
        type: array
    subscription-id-path-param:
      description: サブスクリプションID。
      in: path
      name: subscription_id
      required: true
      schema:
        type: integer
    subscription-id-query-param:
      description: サブスクリプションID。
      in: query
      name: subscription_id
      schema:
        type: integer
    user-id-path-param:
      description: ユーザーID。
      in: path
      name: user_id
      required: true
      schema:
        type: string
    user-id-query-param:
      description: ユーザー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: キャンペーンの名前。
          type: string
        campaign_names:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: ローカライズしたキャンペーン名を含むオブジェクト。
        campaign_redeems_count_for_user:
          description: キャンペーン内で、ユーザーごとに交換できるクーポンの最大数。`null`が渡されたら、交換数に制限はありません。
          type: integer
        expiration_date:
          description: >-
            [ISO8601](https://en.wikipedia.org/wiki/ISO_8601)に準拠した「YYYY-MM-DD’T’HH:MM:SS」形式のキャンペーンの有効期限。
          format: datetime
          type: string
        project_id:
          description: プロジェクトID。
          type: integer
        redeems_count:
          description: クーポンの最大交換数。`null`が渡されると、交換数に制限はありません。
          type: integer
        redeems_count_for_user:
          description: ユーザーごとに交換できるクーポンの最大数。`null`が渡されたら、交換数に制限はありません。
          type: integer
        subscription_coupon:
          description: Object containing subscription parameters in a reward.
          properties:
            plan_id:
              description: サブスクリプションプラン ID。
              type: integer
            product_id:
              description: サブスクリプション製品 ID。
              type: integer
            trial_period:
              description: 試用期間（日数）。
              type: integer
          required:
            - plan_id
            - product_id
            - trial_period
          type: object
        virtual_currency_amount:
          description: 報酬の仮想通貨額。
          format: float
          type: number
        virtual_items:
          description: 報酬の仮想アイテムパラメーターの配列。
          properties:
            quantity:
              description: 仮想アイテム数量。
              type: integer
            sku:
              description: 仮想アイテムSKU。
              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: ユーザー属性のキー。
          type: string
        list_of_values:
          description: type=enumの可能な値（配列）。
          items:
            type: object
          type: array
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: ローカライズされた属性名。
        skip_condition_on_nonexistent_key:
          description: キーが存在しない場合は条件をスキップするかどうかを示します。
          type: boolean
        type:
          description: キータイプ。
          enum:
            - int
            - string
            - enum
            - date
          type: string
        visible:
          type: boolean
      type: object
    CreatePromotion:
      properties:
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: ローカライズされたプロモーション記述の配列。
        label:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: 決済インターフェースに表示するローカライズされたラベルの配列。
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: ローカライズされたプロモーション名の配列。
        project_id:
          description: プロジェクトID。
          type: integer
        technical_name:
          description: プロモーションの名称。
          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: アラビア語。
          type: string
        bg:
          description: ブルガリア語。
          type: string
        cn:
          description: 中国語（簡体字）。
          type: string
        cs:
          description: チェコ語。
          type: string
        de:
          description: ドイツ語。
          type: string
        en:
          description: 英語。
          type: string
        es:
          description: スペイン語。
          type: string
        fr:
          description: フランス語。
          type: string
        he:
          description: ヘブライ語。
          type: string
        it:
          description: イタリア語。
          type: string
        ja:
          description: 日本語。
          type: string
        ko:
          description: 韓国語。
          type: string
        pl:
          description: ポーランド語。
          type: string
        pt:
          description: ポルトガル語。
          type: string
        ro:
          description: ルーマニア語。
          type: string
        ru:
          description: ロシア語。
          type: string
        th:
          description: タイ語。
          type: string
        tr:
          description: トルコ語。
          type: string
        tw:
          description: 中国語（繁体字）。
          type: string
        vi:
          description: ベトナム語。
          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: 決済システム。
          items:
            properties:
              id:
                description: 決済システムID。
                type: integer
              name:
                description: 決済システム名。
                type: string
            type: object
          type: array
      type: object
    PromotionPeriod:
      properties:
        periods:
          description: 日時範囲。
          items:
            properties:
              from:
                description: 期間開始日。
                format: datetime
                type: string
              offset:
                description: リスト生成元のエレメントの番号です（カウントは0から始まります）。
                type: string
              to:
                description: 期間終了日。
                format: datetime
                type: string
            type: object
          type: array
      type: object
    PromotionReward:
      properties:
        item:
          description: 特定の仮想アイテムの報酬を設定します。
          properties:
            bonus:
              description: ボーナスとして仮想アイテムが与えられます。
              items:
                properties:
                  id:
                    type: integer
                  localized_name:
                    description: 既定の言語（英語）でプラン名を表示し、name.en値を複製します。
                    type: string
                  quantity:
                    description: ボーナスとして与えられた仮想アイテムの数。
                    type: integer
                  sku:
                    description: アイテムSKU。
                    type: string
                type: object
              type: array
            discount:
              description: 特定の仮想アイテムの割引。
              items:
                properties:
                  discount_percent:
                    description: 割引率。
                    format: float
                    type: number
                  localized_name:
                    description: 既定の言語（英語）でプラン名を表示し、name.en値を複製します。
                    type: string
                  max_amount:
                    description: プロモーションを適用するアイテムの最大数。
                    format: integer
                    type: number
                  sku:
                    description: アイテムSKU。
                    type: string
                type: object
              type: array
          type: object
        package:
          description: 仮想通貨パッケージの報酬を設定します。
          properties:
            bonus_amount:
              description: 仮想通貨の絶対量として報酬を与える。
              format: float
              type: number
            bonus_percent:
              description: パッケージ金額のパーセンテージとして報酬を与える。
              format: float
              type: number
          type: object
        purchase:
          description: 購入全体の報酬を設定します。
          properties:
            discount_percent:
              description: 割引率。
              format: float
              type: number
          type: object
        subscription:
          description: サブスクリプションの報酬を設定します。
          properties:
            trial_days:
              description: 試用期間（日）。
              type: integer
          type: object
      type: object
    PromotionSubject:
      properties:
        digital_contents:
          nullable: true
          type: object
        items:
          description: プロモーションに適用される仮想アイテムの配列。
          items:
            properties:
              id:
                type: integer
              localized_name:
                description: 既定の言語（英語）でプラン名を表示し、name.en値を複製します。
                type: string
              sku:
                description: アイテムSKU。
                type: string
            type: object
          type: array
        packages:
          description: プロモーションに適用される仮想通貨パッケージの配列。
          items:
            type: object
          nullable: true
          type: array
        purchase:
          description: プロモーションが購入全体に適用されるかどうかを示します。
          type: boolean
        subscriptions:
          description: プロモーションに適用されるサブスクリプションプランまたは製品。
          nullable: true
          properties:
            max_charges_count:
              description: プロモーションに適用される請求の最大数。
              type: integer
            plans:
              items:
                description: プロモーションが適用されるサブスクリプションプランの配列。
                type: string
              type: array
            products:
              items:
                description: プロモーションに適用されるサブスクリプションベースの製品の配列。
                type: string
              type: array
          type: object
      type: object
    Subscription:
      properties:
        cancel_subscription_payment:
          description: >-
            `true`に設定すると、このサブスクリプションで最後に支払った決済分が払い戻されます。**`canceled`に設定したステータスと共にのみ実行できます**。
          type: boolean
        status:
          description: ステータス。
          enum:
            - active
            - canceled
            - non_renewing
          type: string
        timeshift:
          description: 請求の延期。
          properties:
            type:
              description: 請求時間の単位。`day`または`month`にすることができます。
              enum:
                - day
                - month
              type: string
            value:
              description: >-
                課金を延期する時間単位の数。値はタイプパラメータに依存し、次のようになります：<br>-`type`は`day`の場合
                、1から366まで<br>-`type`は`month`の場合、1から12までです
              type: string
          type: object
        xsolla_network:
          properties:
            collaborator_id:
              description: >-
                コラボレーター ID —
                [インフルエンサー](https://developers.xsolla.com/ja/doc/partner-network/#guides_network_glossary_influencer)または[アフィリエイトネットワーク](https://developers.xsolla.com/ja/doc/partner-network/#guides_network_glossary_affiliate_network)識別子。あなたの**アドミンページ>パートナーネットワーク>インフルエンサー**セクションで見つけることができます。
              type: string
          type: object
      type: object
    SubscriptionResponse:
      properties:
        charge_amount:
          description: 請求額。
          format: float
          type: number
        comment:
          description: サブスクリプション状態を変更する理由
          type: string
        currency:
          description: 購入通貨。ISO 4217に基づく3文字の通貨コード。
          type: string
        date_create:
          description: >-
            [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601)に基づく`YYYY-MM-DD’T’HH:MM:SS`フォーマットのサブスクリプション作成日。
          format: datetime
          type: string
        date_end:
          description: >-
            [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601)に基づく`YYYY-MM-DD’T’HH:MM:SS`フォーマットのサブスクリプション終了日。
          format: datetime
          type: string
        date_last_charge:
          description: >-
            [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601)に基づく`YYYY-MM-DD’T’HH:MM:SS`フォーマットのサブスクリプション最終請求日。
          format: datetime
          nullable: true
          type: string
        date_next_charge:
          description: >-
            [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601)に基づく`YYYY-MM-DD’T’HH:MM:SS`フォーマットの次回のサブスクリプション請求日。
          format: datetime
          nullable: true
          type: string
        id:
          description: サブスクリプションID
          type: integer
        plan:
          allOf:
            - $ref: '#/components/schemas/SubscriptionsPlan'
        product:
          allOf:
            - $ref: '#/components/schemas/SubscriptionsProductWithId'
        status:
          description: 状態
          enum:
            - new
            - active
            - canceled
            - non_renewing
            - freeze
          type: string
        user:
          allOf:
            - $ref: '#/components/schemas/User'
      type: object
    SubscriptionsPlan:
      properties:
        billing_retry:
          description: 請求再試行の詳細。
          properties:
            value:
              description: 請求の再試行回数。
              type: integer
          required:
            - value
          type: object
        charge:
          description: 請求の詳細。
          properties:
            amount:
              description: 請求額。
              format: float
              type: number
            currency:
              description: >-
                購入通貨。[ISO
                4217](https://en.wikipedia.org/wiki/ISO_4217)に準拠した3文字の通貨コード。
              type: string
            period:
              description: 請求期間。
              properties:
                type:
                  description: 時間の単位。`day`、`month`または`lifetime`にすることができます。
                  enum:
                    - day
                    - month
                    - lifetime
                  type: string
                value:
                  description: >-
                    時間単位の数。値はタイプパラメータに依存し、次のようになります：<br>-`type`は`day`の場合
                    、1から366まで<br>-`type`は`month`の場合、1から12まで、<br>-`type`は`lifetime`の場合、０です
                  type: integer
              required:
                - value
                - type
              type: object
            prices:
              description: 異なる通貨での価格を一覧表示します。
              items:
                properties:
                  amount:
                    description: 請求額。
                    format: float
                    type: number
                  currency:
                    description: >-
                      購入通貨。[ISO
                      4217](https://en.wikipedia.org/wiki/ISO_4217)に準拠した3文字の通貨コード。
                    type: string
                  setup_fee:
                    description: 最初の請求書の一部として請求される1回のセットアップ費用。
                    format: float
                    type: number
                required:
                  - amount
                  - currency
                type: object
              type: array
          required:
            - period
          type: object
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: プランの説明文。"localization":"plan description"のペアで構成されます。
        expiration:
          description: サブスクリプションの有効期限の詳細。
          properties:
            type:
              description: 時間の単位。`day`または`month`にすることができます。
              enum:
                - day
                - month
              type: string
            value:
              description: 有効期間。
              nullable: true
              type: integer
          required:
            - value
            - type
          type: object
        external_id:
          description: プラン外部ID（32文字）。
          type: string
        grace_period:
          description: 猶予期間の詳細。
          properties:
            type:
              description: 時間の単位。`day`にすることができます。
              enum:
                - day
              type: string
            value:
              description: 時間単位の数。
              type: integer
          required:
            - value
            - type
          type: object
        group_id:
          description: プランがリンクされているグループID。
          nullable: true
          type: string
        id:
          description: サブスクリプションプラン ID。
          type: integer
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: プラン名。"localization":"plan name"のペアで構成されます。
        project_id:
          description: プロジェクトID。
          type: integer
        refund_period:
          description: ユーザーがサブスクリプションプランの支払いを返金できる期間（日単位）。
          nullable: true
          type: integer
        status:
          properties:
            value:
              description: サブスクリプションプランのステータス
              enum:
                - active
                - disabled
              type: string
          type: object
        tags:
          description: プランのタグ。
          items:
            type: string
          type: array
        trial:
          description: 試用期間の詳細。
          properties:
            type:
              description: 時間の単位。`day`にすることができます。
              enum:
                - day
              type: string
            value:
              description: 時間単位の数。
              type: integer
          required:
            - value
            - type
          type: object
      type: object
    SubscriptionsPlanRequest:
      properties:
        billing_retry:
          description: 請求再試行の詳細。
          properties:
            value:
              description: 請求の再試行回数。
              type: integer
          required:
            - value
          type: object
        charge:
          description: 請求の詳細。
          properties:
            amount:
              description: 請求額。
              format: float
              type: number
            currency:
              description: >-
                購入通貨。[ISO
                4217](https://en.wikipedia.org/wiki/ISO_4217)に準拠した3文字の通貨コード。
              type: string
            period:
              description: 請求期間。
              properties:
                type:
                  description: 時間の単位。`day`、`month`または`lifetime`にすることができます。
                  enum:
                    - day
                    - month
                    - lifetime
                  type: string
                value:
                  description: >-
                    時間単位の数。値はタイプパラメータに依存し、次のようになります：<br>-`type`は`day`の場合
                    、1から366まで<br>-`type`は`month`の場合、1から12まで、<br>-`type`は`lifetime`の場合、０です
                  type: integer
              required:
                - value
                - type
              type: object
            prices:
              description: 異なる通貨での価格を一覧表示します。
              items:
                properties:
                  amount:
                    description: 請求額。
                    format: float
                    type: number
                  currency:
                    description: >-
                      購入通貨。[ISO
                      4217](https://en.wikipedia.org/wiki/ISO_4217)に準拠した3文字の通貨コード。
                    type: string
                  setup_fee:
                    description: 最初の請求書の一部として請求される1回のセットアップ費用。
                    format: float
                    type: number
                required:
                  - amount
                  - currency
                type: object
              type: array
          required:
            - period
          type: object
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: プランの説明文。"localization":"plan description"のペアで構成されます。
        expiration:
          description: サブスクリプションの有効期限の詳細。
          properties:
            type:
              description: 時間の単位。`day`または`month`にすることができます。
              enum:
                - day
                - month
              type: string
            value:
              description: 有効期間。
              nullable: true
              type: integer
          required:
            - value
            - type
          type: object
        external_id:
          description: プラン外部ID（32文字）。
          type: string
        grace_period:
          description: 猶予期間の詳細。
          properties:
            type:
              description: 時間の単位。`day`にすることができます。
              enum:
                - day
              type: string
            value:
              description: 時間単位の数。
              type: integer
          required:
            - value
            - type
          type: object
        group_id:
          description: プランがリンクされているグループID。
          type: string
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: プラン名。"localization":"plan name"のペアで構成されます。
        refund_period:
          description: ユーザーがサブスクリプションプランの支払いを返金できる期間（日単位）。
          nullable: true
          type: integer
        status:
          properties:
            value:
              description: サブスクリプションプランのステータス
              enum:
                - active
                - disabled
              type: string
          type: object
        tags:
          description: プランのタグ。
          items:
            type: string
          type: array
        trial:
          description: 試用期間の詳細。このパラメータが渡されない場合、デフォルト値（0日）が使用されます。
          properties:
            type:
              description: 時間の単位。`day`にすることができます。
              enum:
                - day
              type: string
            value:
              description: 時間単位の数。
              type: integer
          required:
            - value
            - type
          type: object
      type: object
    SubscriptionsProduct:
      nullable: true
      properties:
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: ローカライズされたアイテムの説明。
        group_id:
          description: 製品がリンクされているグループID。
          type: string
        name:
          description: 製品名。
          type: string
      type: object
    SubscriptionsProductWithId:
      allOf:
        - properties:
            id:
              description: プランがリンクされている製品のID。
              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: ユーザーID
          type: string
        name:
          description: ユーザー名
          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: >-
            `custom_parameters`オブジェクトのトークンに追加のパラメーターを渡して、不正防止フィルターを設定することができます。ドロップダウンリストには推奨パラメータが表示されます。[決済ステーション説明書](https://developers.xsolla.com/ja/doc/pay-station/features/antifraud/)を参照してください。
          properties:
            active_date:
              description: '[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式の最終閲覧日。'
              type: string
            additional_verification:
              description: プレイヤーがアカウント承認手続きを使用するかどうかを示します。
              type: boolean
            character_customized:
              description: プレイヤーがキャラクターをカスタマイズしたかどうかを示します。
              type: boolean
            chat_activity:
              description: プレイヤーがチャット機能を使用するかどうかを示します。
              type: boolean
            completed_tasks:
              description: 完了したタスクや目標の数。
              type: integer
            forum_activity:
              description: プレイヤーがフォーラム機能を使用するかどうかを示す。
              type: boolean
            items_used:
              description: プレイヤーが購入したゲームアイテムを使用するかどうかを示します。
              type: boolean
            karma_points:
              description: プレイヤーのカルマ値。
              type: integer
            last_change_password_date:
              description: >-
                [ISO
                8601](https://en.wikipedia.org/wiki/ISO_8601)に沿ったパスワード最終更新日。
              type: string
            non_premium_currency:
              description: 非プレミアム通貨の金額。
              format: float
              type: integer
            notifications_enabled:
              description: プレイヤーが通知を有効化したかどうかを示します。
              type: boolean
            profile_completed:
              description: プレイヤーがプロフィールに追加情報を入力したかどうかを示します。
              type: boolean
            profile_image_added:
              description: プレイヤーがプロフィール画像をアップロードしたかどうかを示します。
              type: boolean
            pvp_activity:
              description: プレイヤーが対人戦に参加するかどうかを示します。
              type: boolean
            registration_date:
              description: '[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式のアカウント作成日。'
              type: string
            session_time:
              description: '[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)に沿った平均セッション時間。'
              type: string
            social_networks_added:
              description: プレイヤーがソーシャルメディアプロファイルを接続しているかを示します。
              type: boolean
            total_bans:
              description: チャットやフォーラムでプレイヤーが禁止された回数。
              type: integer
            total_characters:
              description: ゲーム内のキャラクターの数。
              type: integer
            total_clans:
              description: プレイヤーがメンバーになっているクランの数。
              type: integer
            total_friends:
              description: 友達の数。
              type: integer
            total_game_events:
              description: プレイヤーが参加したゲーム内イベントの数。
              type: integer
            total_gifts:
              description: プレイヤーが送受信したゲーム内の贈り物の数。
              type: integer
            total_hours:
              description: 合計ゲーム時間数。
              type: integer
            total_inventory_value:
              description: インベントリ総額（ゲーム内通貨）。
              format: float
              type: integer
            total_sum:
              description: 総支払額。
              format: float
              type: integer
            tutorial_completed:
              description: プレイヤーがゲームのチュートリアルを完了したかどうかを示します。
              type: boolean
            unlocked_achievements:
              description: 達成した実績の数。
              type: integer
            user_level:
              description: プレイヤーのレベル、評判、またはランク。
              type: integer
            win_rate:
              description: 勝率。
              type: integer
          type: object
        purchase:
          description: 購入の詳細を含むオブジェクト。
          properties:
            checkout:
              description: チェックアウトの詳細（オブジェクト）。
              properties:
                amount:
                  description: 購入金額。
                  format: float
                  type: integer
                currency:
                  description: >-
                    購入通貨。[ISO
                    4217](https://en.wikipedia.org/wiki/ISO_4217)に準拠した3文字の通貨コード。
                  type: string
              type: object
            subscription:
              description: サブスクリプションデータ（オブジェクト）。
              properties:
                available_plans:
                  description: 決済インターフェイスに表示するサブスクリプションプラン（配列）。
                  items:
                    type: string
                  type: array
                currency:
                  description: すべての計算で使用するサブスクリプションプランの通貨。
                  type: string
                gift:
                  description: 贈られたサブスクリプションの詳細。
                  properties:
                    anonymous:
                      description: >-
                        贈り主の名前を非表示にするかどうか。`true`の場合、電子メール通知で送り主の名前は非表示にされます。デフォルトは`false`です。
                      type: boolean
                    email:
                      description: 受取人のメールアドレス。
                      type: string
                    message:
                      description: 受取人へのメッセージ。
                      type: string
                    recipient:
                      description: 受取人のID。
                      type: string
                    redirect_url:
                      description: >-
                        ここに、贈られたサブスクリプションに関する追加情報が掲載されたページ、またはアカウント作成ページへのリンクを設定してください。ギフトの受取人は、サブスクリプションギフトの通知メールからこのページに移動することができます。
                      type: string
                  required:
                    - recipient
                    - email
                  type: object
                operation:
                  description: >-
                    ユーザーのサブスクリプションプランに適用される操作の種類。サブスクリプションプランを変更する場合は、値`change_plan`を渡します。`purchase.subscription.plan_id`パラメーターに新しいプランIDを指定してください。
                  type: string
                plan_id:
                  description: >-
                    サブスクリプションプランの外部ID。これは、アドミンページの**サブスクリプション >
                    サブスクリプションプラン**セクションで確認できます。
                  type: string
                product_id:
                  description: 製品ID。
                  type: string
                trial_days:
                  description: 試用期間（日）。
                  type: integer
              type: object
          type: object
        settings:
          description: カスタムプロジェクト設定（オブジェクト）。
          properties:
            currency:
              description: >-
                標準の決済通貨。[ISO
                4217](https://en.wikipedia.org/wiki/ISO_4217)3文字通貨コード。
              type: string
            external_id:
              description: ゲーム内のトランザクションID。各ユーザーの支払いに対して一意でなければならなりません。
              type: string
            language:
              description: >-
                インターフェース言語。2文字の小文字[言語コード](https://developers.xsolla.com/ja/doc/pay-station/features/localization/)。
              type: string
            mode:
              description: >-
                決済処理をテストするには、`sandbox`に設定します。この場合、*https://sandbox-secure.xsolla.com*を使用してテスト決済インターフェースにアクセスしてください。
              type: string
            payment_method:
              description: 決済方法のID。
              type: integer
            payment_widget:
              description: >-
                支払いウィジェットです。`paybycash`または`giftcard`が選択できます。このパラメータが設定されている場合、ユーザーはPay
                by CashまたはGift Cardsウィジェットにそれぞれリダイレクトされます。
              enum:
                - paybycash
                - giftcard
              type: string
            project_id:
              description: Game’s Xsolla ID. Can be found in Publisher Account.
              type: integer
            redirect_policy:
              description: リダイレクトポリシーの設定（オブジェクト）。
              properties:
                autoredirect_from_status_page:
                  description: ステータスページから自動的にリダイレクトするかどうか。
                  type: boolean
                delay:
                  description: ユーザーがリターンURLに自動的にリダイレクトされるまでの遅延時間（秒）。
                  type: integer
                manual_redirection_action:
                  description: >-
                    決済ステーション動作はユーザーが「閉じる」ボタンや「**ゲームに戻る**」ボタンをクリックすること​によって引き起こされます。`redirect`（デフォルト）と`postmessage`にすることができます。`redirect`に設定すると、ユーザーはトークンで渡された、またはアドミンページで指定されたURLにリダイレクトされます。`postmessage`に設定すると、ユーザーは他のページにリダイレクトされません。「閉じる」アイコンをクリックすると、`close`イベントが開始され、「**ゲームに戻る**」をクリックすると、`return`イベントが開始されます。
                  enum:
                    - redirect
                    - postmessage
                  type: string
                redirect_button_caption:
                  description: 手動リダイレクト用のボタンのテキスト。
                  type: string
                redirect_conditions:
                  description: >-
                    ユーザーがリターンURLにリダイレクトされる決済状態。`none`、`successful`、`successful_or_canсeled`、または`any`のいずれかとなります。
                  enum:
                    - none
                    - successful
                    - successful_or_canceled
                    - any
                  type: string
                status_for_manual_redirection:
                  description: >-
                    リターンURLへのリダイレクトボタンが表示される決済状態。`none`、`successful`、`successful_or_canсeled`、または`any`のいずれかとなります。
                  enum:
                    - none
                    - successful
                    - successful_or_canceled
                    - any
                  type: string
              type: object
            return_url:
              description: >-
                ページを使用して決済後にユーザーをリダイレクトします。パラメーター`user_id`、`foreigninvoice`、`invoice_id`と`status`は、自動的にリンクに追加されます。
              type: string
            ui:
              description: インタフェース設定（オブジェクト）。
              properties:
                components:
                  description: メニュー設定（オブジェクト）。
                  properties:
                    subscriptions:
                      description: サブスクリプションプランのサブメニュー（オブジェクト）。
                      properties:
                        hidden:
                          description: サブメニューを表示するかどうかを示します。
                          type: boolean
                        order:
                          description: メニュー内のサブメニューの位置。
                          type: integer
                      type: object
                    virtual_currency:
                      description: 仮想通貨サブメニュー。
                      properties:
                        custom_amount:
                          description: ユーザーが任意の数の仮想通貨を決済インターフェースに入力できるかどうかを示します。
                          type: boolean
                        hidden:
                          description: サブメニューを表示するかどうかを示します。
                          type: boolean
                        order:
                          description: メニュー内のサブメニューの位置。
                          type: integer
                      type: object
                    virtual_items:
                      description: 仮想アイテムサブメニュー。
                      properties:
                        hidden:
                          description: サブメニューを表示するかどうかを示します。
                          type: boolean
                        order:
                          description: メニュー内のサブメニューの位置。
                          type: integer
                        selected_group:
                          description: 仮想アイテムタブを開いた後に表示するグループ。
                          type: string
                        selected_item:
                          description: 仮想アイテムタブを開いた後に表示されるアイテム（アイテムSKU）。
                          type: string
                      type: object
                  type: object
                desktop:
                  description: デスクトップバージョン（オブジェクト）のインターフェース設定。
                  properties:
                    header:
                      description: ヘッダー設定（オブジェクト）。
                      properties:
                        close_button:
                          description: >-
                            デスクトップ版決済ステーションに閉じるボタンを表示する設定。このボタンは決済ステーションを閉じて、`settings.return_url`パラメーターで指定されたURLにユーザーをリダイレクトします。デフォルトは`false`です。
                          type: boolean
                        is_visible:
                          description: 決済インターフェースにヘッダーを表示するかどうかを示します。
                          type: boolean
                        type:
                          description: >-
                            ヘッダーを表示する方法。`compact`（プロジェクト名とユーザーIDを隠す）または`normal`（既定）に指定できます。
                          enum:
                            - compact
                            - normal
                          type: string
                        visible_logo:
                          description: >-
                            `true`の場合、ヘッダーにはあなたのロゴが表示されます（最初にあなたのカスタマーサクセスマネージャーに画像を提供してください）。
                          type: boolean
                        visible_name:
                          description: ヘッダーにプロジェクト名を表示するかどうかを示します。
                          type: boolean
                        visible_purchase:
                          description: >-
                            ヘッダーに購入説明（`purchase.description.value`）を表示するか示します。デフォルトは`true`です。
                          type: boolean
                      type: object
                    subscription_list:
                      description: サブスクリプションプラン（オブジェクト）の一覧の設定。
                      properties:
                        description:
                          description: 決済インターフェースの利用可能なサブスクリプションプランの一覧上に表示されるテキスト。
                          type: string
                        display_local_price:
                          description: >-
                            `true`の場合、ユーザーの現地通貨が購読プランに設定されている通貨と異なる場合、ユーザーは両方の価格を見ることができます。1つは現地通貨で、もう1つは基本通貨で表示されます。
                          type: boolean
                        layout:
                          description: テンプレートの一覧。`list`（既定）または`grid`に指定できます。
                          enum:
                            - list
                            - grid
                          type: string
                      type: object
                    virtual_currency_list:
                      description: 仮想通貨（オブジェクト）の一覧の設定。
                      properties:
                        button_with_price:
                          description: >-
                            `true`の場合は、価格がボタンに表示されます。`false`の場合は、価格はボタンの左側に表示されます。既定では`false`です。
                          type: boolean
                        description:
                          description: 決済インターフェースの一覧の上に表示するテキスト。
                          type: string
                      type: object
                    virtual_item_list:
                      description: 仮想アイテム（オブジェクト）の一覧の設定。
                      properties:
                        button_with_price:
                          description: >-
                            `true`の場合は、価格がボタンに表示されます。`false`の場合は、価格はボタンの左側に表示されます。既定では`false`です。
                          type: boolean
                        layout:
                          description: テンプレートの一覧。`list`（既定）または`grid`に指定できます。
                          enum:
                            - list
                            - grid
                          type: string
                        view:
                          description: >-
                            縦方向または横方向のメニューに仮想アイテムのグループを表示しましょう。`horizontal_navigation`あるいは`vertical_navigation`（既定）にできます。
                          enum:
                            - horizontal_navigation
                            - vertical_navigation
                          type: string
                      type: object
                  type: object
                header:
                  properties:
                    visible_virtual_currency_balance:
                      description: この要素を決済インターフェースで非示にできるかどうかを示します。既定では`true`です。
                      type: boolean
                  type: object
                is_prevent_external_link_open:
                  description: >-
                    リンクを外部リソースにリダイレクトするかどうかを無効にします。デフォルトは`true`です。外部リンクをクリックすると、`external-link-open`イベントが`postMessage`メカニズムを介して送信されます。`url`パラメータには、リダイレクト先のリンクのアドレスが渡されます。
                  type: boolean
                license_url:
                  description: EULAへのリンク。
                  type: string
                mobile:
                  properties:
                    footer:
                      properties:
                        is_visible:
                          description: モバイル版の決済インターフェースでフッターを非表示にするかどうかを示します。
                          type: boolean
                      type: object
                    header:
                      properties:
                        close_button:
                          description: >-
                            モバイル版決済ステーションに閉じるボタンを表示する設定。このボタンは決済ステーションを閉じて、`settings.return_url`パラメーターで指定されたURLにユーザーをリダイレクトします。デフォルトは`false`です。
                          type: boolean
                      type: object
                    mode:
                      description: >-
                        ユーザーは、保存された決済方法を使用してのみ決済を行うことができます。`saved_accounts`に指定できます。
                      enum:
                        - saved_accounts
                      type: string
                  type: object
                mode:
                  description: >-
                    ユーザーアカウントの決済インターフェース。`user_account`のみに指定できます：ヘッダーにはユーザーアカウントのナビゲーションメニューのみが含まれています。ユーザーは商品を選択したり、決済を行うことはできません。このモードは、デスクトップ上でのみ使用できます。
                  type: string
                size:
                  description: |-
                    決済インターフェースのサイズ。に指定できます：
                      - [small](https://livedemo.xsolla.com/developers/small/)：決済インターフェースの最小サイズです。ウィンドウサイズが厳密に制限されている場合は、この値を使用します（寸法：620 x 630）
                      - [medium](https://livedemo.xsolla.com/developers/medium/)：推奨サイズ。この値を使用して、ライトボックスに決済インターフェイスを表示します（寸法：740 x 760）
                      - [large](https://livedemo.xsolla.com/developers/large/)：決済インターフェイスを新しいウィンドウまたはタブに表示するのに最適なサイズ（寸法：820 x 840）
                  enum:
                    - small
                    - medium
                    - large
                  type: string
                theme:
                  description: 決済インターフェースのテーマ。`default`（既定）または`default_dark`に指定できます。
                  enum:
                    - default
                    - default_dark
                  type: string
                user_account:
                  description: ユーザーアカウントの詳細（オブジェクト）。
                  properties:
                    history:
                      allOf:
                        - description: '**履歴** サブメニュー。'
                        - properties:
                            enable:
                              description: サブメニューを表示するかどうかを示します。既定では`false`です。
                              type: boolean
                            order:
                              description: メニュー内のサブメニューの位置。
                              type: integer
                          type: object
                    info:
                      allOf:
                        - description: '**私のアカウント** ページ。'
                        - properties:
                            enable:
                              description: サブメニューを表示するかどうかを示します。既定では`false`です。
                              type: boolean
                            order:
                              description: メニュー内のサブメニューの位置。
                              type: integer
                          type: object
                    payment_accounts:
                      allOf:
                        - description: '**お客様の決済アカウント** サブメニュー。'
                        - properties:
                            enable:
                              description: サブメニューを表示するかどうかを示します。既定では`false`です。
                              type: boolean
                            order:
                              description: メニュー内のサブメニューの位置。
                              type: integer
                          type: object
                    subscriptions:
                      allOf:
                        - description: '**サブスクリプションの管理** サブメニュー。'
                        - properties:
                            enable:
                              description: サブメニューを表示するかどうかを示します。既定では`false`です。
                              type: boolean
                            order:
                              description: メニュー内のサブメニューの位置。
                              type: integer
                          type: object
                  type: object
                version:
                  description: デバイスの種類。`desktop`（既定）または`mobile`に指定できます。
                  enum:
                    - desktop
                    - mobile
                  type: string
              type: object
          required:
            - project_id
          type: object
        user:
          description: ユーザーの詳細（オブジェクト）。
          properties:
            age:
              description: ユーザーの年齢。
              type: integer
            attributes:
              description: キー値ペアの有効なJSONセットとして表される、アイテムリストをフィルタリングするためのユーザー属性。
              type: object
            country:
              properties:
                allow_modify:
                  description: >-
                    ユーザーが決済UIで国を変更できるかどうか。トークンに`country.value`が渡された場合、デフォルトでは`false`となります。
                  type: boolean
                value:
                  description: >-
                    ユーザーの国。2文字の国コード（大文字）は、[ISO 3166-1 alpha-2
                    standard](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)に従って使用されます。
                  type: string
              type: object
            email:
              description: >-
                `user.email`オブジェクトは、不正対策モデルの構築に不可欠な要素であり、受け入れ率の向上に貢献します。それは、エクソーラと決済システムの両方の要件です。パラメータが渡されない場合は、決済ページにメール入力の必須項目が表示されます。ユーザーは、パラメータに渡された、または決済ページで入力された電子メールに購入領収書を受け取ります。
              properties:
                value:
                  description: >-
                    ユーザーのメールアドレス。[RFC
                    822](https://www.w3.org/Protocols/rfc822/#z8)で規定された書式を厳密に守らなければなりません。
                  type: string
              required:
                - value
              type: object
            id:
              properties:
                value:
                  description: ユーザーID。
                  type: string
              required:
                - value
              type: object
            is_legal:
              description: ユーザーが法人かを示します。
              type: boolean
            legal:
              allOf:
                - description: >-
                    法人情報を含むオブジェクトです。`user.is_legal`が`true`の場合は、オブジェクトとその全パラメーターが必要です。
                - description: 法人情報を含むオブジェクトです。
                  properties:
                    address:
                      description: 最後まで記載した法的住所です。
                      type: string
                    country:
                      description: >-
                        設立国。[ISO 3166-1
                        alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)に従って大文字2文字の国コードを使用します。
                      type: string
                    name:
                      description: 法人のフルネームです。
                      type: string
                    vat_id:
                      description: 納税者個別のID。
                      type: string
                  type: object
            name:
              properties:
                value:
                  description: ユーザーのスクリーン名。
                  type: string
              type: object
            phone:
              properties:
                value:
                  description: ユーザーの電話番号。
                  type: string
              type: object
            public_id:
              properties:
                value:
                  description: >-
                    ユーザーを一意に識別し、ユーザーに知られているパラメーター（電子メール、スクリーン名など）。ユーザーがゲームストア外で購入することを可能にします（例えば、電子キオスクを介して）。
                  type: string
              type: object
            steam_id:
              properties:
                value:
                  description: Steam ID。
                  type: string
              type: object
            tracking_id:
              properties:
                value:
                  description: 固有の追跡ID（マーケティングキャンペーンで使用）。
                  type: string
              type: object
            utm:
              description: トラフィック属性（オブジェクト）。
              properties:
                utm_campaign:
                  description: カタカナ表記、または英語に翻訳されたキャンペーンのタイトル。
                  type: string
                utm_content:
                  description: キャンペーンのコンテンツ。
                  type: string
                utm_medium:
                  description: トラフィックチャネル（コンテンツ広告、メディア広告、Eメールリストなど）。
                  type: string
                utm_source:
                  description: トラフィックソース。
                  type: string
                utm_term:
                  description: >-
                    キャンペーンキーワード。設定すると、統計は特定の検索クエリではなく広告ターゲティングに使用されるキーワードに基づきます。Googleアナリティクスでは、指定された`utm_term`は一般検索語句レポートの一部です。
                  type: string
              type: object
          required:
            - id
          type: object
      type: object
  securitySchemes:
    basicAuth:
      description: >-
        Xsolla API は、基本アクセス認証を使用します。API へのすべてのリクエストには、`Authorization: Basic
        <your_authorization_basic_key>`
        ヘッダーが含まれている必要があります。ここで、`<your_authorization_basic_key>` は、Base64
        標準に従ってエンコードされた `merchant_id:api_key` ペアです。

         これらのパラメーターを見つけるには、[パブリッシャー アカウント](https://publisher.xsolla.com/) にアクセスしてください。<ul><li>`merchant_id` は次の場所に表示されます。<ul><li><b>会社設定 > 会社</b> セクション。</li><li>任意のパブリッシャー アカウント ページのブラウザー アドレス バーの URL。URL の形式は次のとおりです: `https://publisher.xsolla.com/<merchant_id>`。</li></ul></li><li>`api_key` は、作成時に 1 回だけパブリッシャー アカウントに表示され、お客様側で保存する必要があります。次のセクションで新しいキーを作成できます:<ul><li><b>会社設定 > API キー</b>。</li><li><b>プロジェクト設定 > API キー</b>。</li></ul></li></ul><br>
         API キーの操作の詳細については、[API リファレンス](https://developers.xsolla.com/ja/api/getting-started/#api_keys_overview) を参照してください。
      scheme: basic
      type: http
    subscriptionsManagementJwtAuth:
      scheme: bearer
      type: http
info:
  description: >-
    # 概要


    * **Version:** 2.0

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


    このAPIリファレンスでは、サブスクリプション、クーポン、およびプロモーションを管理するためのエンドポイントについて説明します。

    サブスクリプションの詳細については、[製品ガイド](https://developers.xsolla.com/ja/doc/subscriptions)および[用語集](https://developers.xsolla.com/ja/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: >-
        新しいクーポンキャンペーンを作成します。

        <div class="notice">

        <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: キャンペーンを作成
      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: >-
        クーポン キャンペーンにクーポン コードを追加します。

        <div class="notice">

        <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: クーポンコード。
                  example: 34bryrb3
                  type: string
              required:
                - coupon_code
              type: object
        required: true
      responses:
        '204':
          description: No Content (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: キャンペーンにクーポンを追加
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions:
    get:
      description: |-
        すべてのプロモーションのリスト。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: プロモーションの一覧
      tags:
        - promotions
      x-admin: true
      x-server: true
    post:
      description: |-
        新しいプロモーションを作成します。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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。
                    type: integer
                type: object
          description: Created (作成済み)。
      security:
        - basicAuth: []
      summary: プロモーションの作成
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}:
    delete:
      description: |-
        プロモーションを削除します。`enabled` = `false` のプロモーションのみ削除できます。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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 (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: プロモーションの削除
      tags:
        - promotions
      x-admin: true
      x-server: true
    get:
      description: |-
        プロモーションを取得します。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: プロモーションの取得
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        プロモーションを更新します。プロモーションが読み取り専用 (`read_only` = `true`) の場合、`project_id`
        パラメータを変更することはできません。

        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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 (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: プロモーションの更新
      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: |-
        特定のプロモーションにクーポン キャンペーンを添付します。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: キャンペーンIDの配列。
                  example:
                    - 9135
                  items:
                    type: integer
                  type: array
              required:
                - campaigns
              type: object
        required: true
      responses:
        '204':
          description: No Content (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: プロモーションにキャンペーンを追加
      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: |-
        プロモーションでサポートされている支払いシステムを取得します。リストが空の場合、プロモーションはすべての支払いシステムに適用されます。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: 決済システムの一覧
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        プロモーションでサポートされる支払いシステムを設定します。リストが空の場合、プロモーションはすべての支払いシステムに適用されます。プロモーションが読み取り専用
        (`read_only` = `true`) の場合、このメソッドを呼び出すことはできません。

        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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 (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: 決済システムの設定
      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: |-
        プロモーションが有効な日付/時刻の範囲を取得します。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: 有効期間の一覧
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        プロモーションが有効な日付/時刻の範囲を設定します。プロモーションが読み取り専用 (`read_only` = `true`)
        の場合、既存の期間を編集することはできませんが、新しい期間を追加することはできます。

        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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 (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: 有効期間の設定
      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: |-
        プロモーションを有効にする前に確認する必要があります。このメソッドは、エラーがある場合はそのリストを返します。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: プロモーションの見直し
      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: |-
        プロモーションに関連付けられた報酬のリストを取得します。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: 報酬の一覧
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        プロモーションの報酬を設定します。プロモーションが読み取り専用 (`read_only` = `true`)
        の場合、報酬を更新することはできません。

        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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 (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: 報酬の設定
      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: |-
        プロモーションの主題に関する情報を取得します。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: 件名の取得
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        プロモーションの件名を設定します。プロモーションが読み取り専用 (`read_only` = `true`)
        の場合、件名を更新することはできません。件名には、`purchase`、`items`、または `packages`
        のいずれかの値を指定できます。

        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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 (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: 件名の設定
      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: |-
        プロモーションのステータスを `enabled` から `disabled` に、またはその逆に切り替えます。
        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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 (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: プロモーションの切り替え
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/subscriptions:
    get:
      description: >-
        すべての定期サブスクリプションを一覧表示します。<div
        class="notice"><strong>通知</strong><br><br>この API
        メソッドは高負荷時には使用できません。最大負荷は 1 分あたり 20 リクエストです。</div>

        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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: サブスクリプションの一覧
      tags:
        - subscriptions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/token:
    post:
      description: >-
        任意のユーザー
        パラメータを使用してトークンを作成できます。トークンを取得するときにこれらのパラメータを送信し、支払いが成功した後にそれらを受け取ります。トークンには、このドキュメントで説明されているか、またはユーザーが事前に定義したパラメータのみを含めることができます。


        パラメータが間違った形式で送信されたり、間違ったタイプである場合、トークンは発行されません。JSON 本文にエラーの説明を含む 422 HTTP
        コードが返されます。`extended_message` には、正確にどのパラメータが間違って送信されたかに関する情報が返されます。

        <div class="notice">
          <p><strong>通知</strong></p><p>APIコールに<code>project_id</code>パスパラメータが含まれていないため、会社の全プロジェクトで有効なAPIキーを使用して認可を設定する必要があります。</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/ja/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: オブジェクトには、パラメータ名とエラー説明が含まれています。
                        type: object
                    type: object
                  http_status_code:
                    type: integer
                  message:
                    type: string
                  request_id:
                    type: string
                type: object
          description: Unprocessable Entity（処理不可能なエンティティー）。
      security:
        - basicAuth: []
      summary: トークンを作成する
      tags:
        - token
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/coupons/{code}/details:
    get:
      description: クーポンの詳細をコードで入手してください。
      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: クーポンの取得
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/coupons/{code}/redeem:
    post:
      description: クーポンをコードで償還してください。
      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: ユーザー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: クーポンの償還
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/currencies:
    get:
      description: サポートされているすべてのサブスクリプション通貨を一覧表示します。
      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: 通貨の一覧
      tags:
        - payments
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/payments:
    get:
      description: すべてのサブスクリプションの決済を一覧表示します。
      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: 決済の一覧
      tags:
        - payments
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/plans:
    get:
      description: すべてのサブスクリプションプランを一覧表示します。
      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.en値を複製します。
                          type: string
                      type: object
                type: array
          description: OK。
      security:
        - basicAuth: []
      summary: プランの一覧
      tags:
        - plans
      x-admin: true
      x-server: true
    post:
      description: サブスクリプションプランを作成します。
      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: 作成されました。
      security:
        - basicAuth: []
      summary: プランの作成
      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: サブスクリプションプランを無効化します。
      operationId: disable-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      responses:
        '204':
          description: No Content (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: プランの無効化
      tags:
        - plans
      x-admin: true
      x-server: true
    patch:
      description: サブスクリプションプランを有効化します。
      operationId: enable-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      responses:
        '204':
          description: No Content (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: プランの有効化
      tags:
        - plans
      x-admin: true
      x-server: true
    put:
      description: サブスクリプションプランパラメータを更新します。
      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: 更新のプラン
      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: サブスクリプションプランを削除します。
      operationId: delete-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      responses:
        '204':
          description: No Content (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: プランの削除
      tags:
        - plans
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/products:
    get:
      description: すべてのサブスクリプション型の製品を一覧表示します。
      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: 製品の取得
      tags:
        - products
      x-admin: true
      x-server: true
    post:
      description: サブスクリプション型の製品を作成します。
      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: 製品の作成
      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: サブスクリプション型の製品を削除します。
      operationId: delete-product
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/product-id-path-param'
      responses:
        '204':
          description: No Content (コンテンツなし) 。
      security:
        - basicAuth: []
      summary: 製品の削除
      tags:
        - products
      x-admin: true
      x-server: true
    put:
      description: サブスクリプション型の製品を更新します。
      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: 製品の更新
      tags:
        - products
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/{subscription_id}:
    get:
      description: IDで特定のサブスクリプションの詳細を取得。
      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: Get Subscription
      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: 特定のユーザーが行ったすべての決済を一覧表示します。
      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: ユーザー決済の取得
      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: >-
        ステータスを変更（`active`、`canceled`、または`non_renewing`）したり、次の請求日を延期することによって、サブスクリプションを更新します。
      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: サブスクリプションの更新
      tags:
        - subscriptions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
tags:
  - name: token
    x-displayName: トークン
  - name: plans
    x-displayName: プラン
  - name: products
    x-displayName: 製品
  - name: subscriptions
    x-displayName: Subscription management
  - name: payments
    x-displayName: 決済
  - name: promotions
    x-displayName: プロモーション
  - name: coupons
    x-displayName: クーポン
  - 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
