{
  "components": {
    "parameters": {
      "Admin_API_array-group-id-query-param": {
        "description": "요금제가 연결된 그룹 ID 목록입니다.",
        "in": "query",
        "name": "group_id[]",
        "schema": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "Admin_API_array-plan-id-query-param": {
        "description": "정기 결제 요금제 ID 목록입니다.",
        "in": "query",
        "name": "plan_id[]",
        "schema": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "Admin_API_array-product-id-query-param": {
        "description": "요금제가 연결된 제품 ID 목록입니다.",
        "in": "query",
        "name": "product_id[]",
        "schema": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "Admin_API_array-project-id-query-param": {
        "description": "프로젝트 ID 목록입니다.",
        "in": "query",
        "name": "project_id[]",
        "schema": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "Admin_API_campaign-id-path-param": {
        "description": "Campaign ID.",
        "in": "path",
        "name": "campaign_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_code-path-param": {
        "description": "Coupon code.",
        "in": "path",
        "name": "code",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "Admin_API_datetime-from-query-param": {
        "description": "Sample date. Use this to find subscriptions created later than the request.",
        "in": "query",
        "name": "datetime_from",
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "Admin_API_datetime-from-query-param2": {
        "description": "날짜 범위의 시작입니다.",
        "in": "query",
        "name": "datetime_from",
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "Admin_API_datetime-to-query-param": {
        "description": "Sample date. Use this to find subscriptions created later than the request.",
        "in": "query",
        "name": "datetime_to",
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "Admin_API_datetime-to-query-param2": {
        "description": "날짜 범위의 끝입니다.",
        "in": "query",
        "name": "datetime_to",
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "Admin_API_external-id-query-param": {
        "description": "Plan external ID (32 characters).",
        "in": "query",
        "name": "external_id",
        "schema": {
          "type": "string"
        }
      },
      "Admin_API_group-id-query-param": {
        "description": "이러한 요금제가 연결된 그룹의 ID입니다.",
        "in": "query",
        "name": "group_id",
        "schema": {
          "type": "string"
        }
      },
      "Admin_API_limit-query-param": {
        "description": "Limit for the number of elements on the page.",
        "in": "query",
        "name": "limit",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_merchant-id-path-param": {
        "description": "판매자 ID입니다.",
        "in": "path",
        "name": "merchant_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_offset-query-param": {
        "description": "Number of the element from which the list is generated (the count starts from 0).",
        "in": "query",
        "name": "offset",
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_plan-id-path-param": {
        "description": "요금제 ID입니다.",
        "in": "path",
        "name": "plan_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_plan-id-query-param": {
        "description": "정기 결제 요금제 ID입니다.",
        "in": "query",
        "name": "plan_id",
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_product-id-path-param": {
        "description": "Product ID the plans are linked to.",
        "in": "path",
        "name": "product_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_product-id-query-param": {
        "description": "Product ID the plans are linked to.",
        "in": "query",
        "name": "product_id",
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_project-id-path-param": {
        "description": "Project ID.",
        "in": "path",
        "name": "project_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_promotion-id-path-param": {
        "description": "프로모션 ID입니다.",
        "in": "path",
        "name": "promotion_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_query-query-param": {
        "description": "쿼리 검색(name.en(기본 로케일) 검색)입니다.",
        "in": "query",
        "name": "query",
        "schema": {
          "type": "string"
        }
      },
      "Admin_API_status-id-query-param": {
        "description": "트랜잭션 상태입니다.",
        "in": "query",
        "name": "status",
        "schema": {
          "enum": [
            "done",
            "fail"
          ],
          "type": "string",
          "x-enumDescriptions": {
            "done": "결제가 성공적으로 처리되었습니다.",
            "fail": "결제가 성공적으로 처리되지 않았거나 환불이 이루어지지 않았습니다."
          }
        }
      },
      "Admin_API_status-query-param-array": {
        "description": "Status.",
        "in": "query",
        "name": "status[]",
        "schema": {
          "items": {
            "enum": [
              "active",
              "canceled",
              "non_renewing"
            ],
            "type": "string"
          },
          "type": "array"
        }
      },
      "Admin_API_subscription-id-path-param": {
        "description": "Subscription ID.",
        "in": "path",
        "name": "subscription_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_subscription-id-query-param": {
        "description": "Subscription ID.",
        "in": "query",
        "name": "subscription_id",
        "schema": {
          "type": "integer"
        }
      },
      "Admin_API_user-id-path-param": {
        "description": "User ID.",
        "in": "path",
        "name": "user_id",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "Admin_API_user-id-query-param": {
        "description": "User ID.",
        "in": "query",
        "name": "user_id",
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "Admin_API_AdminSubscriptionResponse": {
        "properties": {
          "charge_amount": {
            "description": "Billing amount.",
            "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/Admin_API_SubscriptionsPlan"
              }
            ]
          },
          "product": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_SubscriptionsProductWithId"
              }
            ]
          },
          "status": {
            "description": "상태",
            "enum": [
              "new",
              "active",
              "canceled",
              "non_renewing",
              "freeze"
            ],
            "type": "string"
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_User"
              }
            ]
          }
        },
        "type": "object"
      },
      "Admin_API_Campaign": {
        "properties": {
          "campaign_code": {
            "description": "Campaign name.",
            "type": "string"
          },
          "campaign_names": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_LocalizedStringPairs"
              },
              {
                "description": "Object containing localized campaign names."
              }
            ]
          },
          "campaign_redeems_count_for_user": {
            "description": "캠페인 내 사용자당 최대 쿠폰 사용 횟수입니다. `null`이 전달되면 사용 횟수가 무제한으로 설정됩니다.",
            "type": "integer"
          },
          "expiration_date": {
            "description": "[ISO 8601 ](https://en.wikipedia.org/wiki/ISO_8601)에 따라 `YYYY-MM-DD’T’HH:MM:SS` 형식으로 되어 있는 캠페인 만료일입니다.",
            "format": "datetime",
            "type": "string"
          },
          "project_id": {
            "description": "Project 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": "Virtual currency amount in a reward.",
            "format": "float",
            "type": "number"
          },
          "virtual_items": {
            "description": "Array of virtual items parameters in a reward.",
            "properties": {
              "quantity": {
                "description": "가상 아이템 수량입니다.",
                "type": "integer"
              },
              "sku": {
                "description": "가상 아이템 SKU입니다.",
                "type": "string"
              }
            },
            "required": [
              "sku",
              "quantity"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "Admin_API_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"
      },
      "Admin_API_CouponAttribute": {
        "properties": {
          "key": {
            "description": "Key of the user attribute.",
            "type": "string"
          },
          "list_of_values": {
            "description": "enum형 값의 배열입니다.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_LocalizedStringPairs"
              },
              {
                "description": "Localized attribute names."
              }
            ]
          },
          "skip_condition_on_nonexistent_key": {
            "description": "키가 존재하지 않는 경우 조건을 건너뛰어야 하는지 여부입니다.",
            "type": "boolean"
          },
          "type": {
            "description": "키 유형입니다.",
            "enum": [
              "int",
              "string",
              "enum",
              "date"
            ],
            "type": "string"
          },
          "visible": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Admin_API_CreatePromotion": {
        "properties": {
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_LocalizedStringPairs"
              },
              {
                "description": "Array of localized promotion descriptions."
              }
            ]
          },
          "label": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_LocalizedStringPairs"
              },
              {
                "description": "Array of localized labels to show in the payment UI."
              }
            ]
          },
          "name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_LocalizedStringPairs"
              },
              {
                "description": "Array of localized promotion names."
              }
            ]
          },
          "project_id": {
            "description": "Project ID.",
            "type": "integer"
          },
          "technical_name": {
            "description": "프로모션의 기술명입니다.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Admin_API_GetPromotion": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Admin_API_CreatePromotion"
          },
          {
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "id": {
                "type": "integer"
              },
              "read_only": {
                "type": "boolean"
              },
              "show_banner": {
                "type": "boolean"
              }
            },
            "type": "object"
          }
        ]
      },
      "Admin_API_GetUserAccountRequest": {
        "properties": {
          "locale": {
            "example": "en",
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "user_v1": {
            "example": "user123",
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "user_v1",
          "locale"
        ],
        "type": "object"
      },
      "Admin_API_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"
      },
      "Admin_API_PromotionPaymentSystem": {
        "properties": {
          "payment_systems": {
            "description": "결제 시스템.",
            "items": {
              "properties": {
                "id": {
                  "description": "Payment system ID.",
                  "type": "integer"
                },
                "name": {
                  "description": "결제 시스템 이름.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Admin_API_PromotionPeriod": {
        "properties": {
          "periods": {
            "description": "날짜/시간 범위.",
            "items": {
              "properties": {
                "from": {
                  "description": "날짜 범위의 시작입니다.",
                  "format": "datetime",
                  "type": "string"
                },
                "offset": {
                  "description": "Number of the element from which the list is generated (the count starts from 0).",
                  "type": "string"
                },
                "to": {
                  "description": "날짜 범위의 끝입니다.",
                  "format": "datetime",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Admin_API_PromotionReward": {
        "properties": {
          "item": {
            "description": "Set the reward for specific virtual items.",
            "properties": {
              "bonus": {
                "description": "Extra virtual items given as a bonus.",
                "items": {
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "localized_name": {
                      "description": "기본 언어(영어)로 표기된 요금제 명칭, name.en 값을 복제합니다.",
                      "type": "string"
                    },
                    "quantity": {
                      "description": "Number of virtual items given as a bonus.",
                      "type": "integer"
                    },
                    "sku": {
                      "description": "Item SKU.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "discount": {
                "description": "Discounts for specific virtual items.",
                "items": {
                  "properties": {
                    "discount_percent": {
                      "description": "할인율 수치입니다.",
                      "format": "float",
                      "type": "number"
                    },
                    "localized_name": {
                      "description": "기본 언어(영어)로 표기된 요금제 명칭, name.en 값을 복제합니다.",
                      "type": "string"
                    },
                    "max_amount": {
                      "description": "Maximum number of items to apply the promotion to.",
                      "format": "integer",
                      "type": "number"
                    },
                    "sku": {
                      "description": "Item SKU.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "package": {
            "description": "Set the reward for a virtual currency package.",
            "properties": {
              "bonus_amount": {
                "description": "Reward as an absolute quantity of the virtual currency.",
                "format": "float",
                "type": "number"
              },
              "bonus_percent": {
                "description": "Reward as a percentage of the package amount.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "purchase": {
            "description": "전체 구매에 대한 보상을 설정합니다.",
            "properties": {
              "discount_percent": {
                "description": "할인율 수치입니다.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "subscription": {
            "description": "Sets the reward for a subscription.",
            "properties": {
              "trial_days": {
                "description": "평가 기간(일)입니다.",
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Admin_API_PromotionSubject": {
        "properties": {
          "digital_contents": {
            "nullable": true,
            "type": "object"
          },
          "items": {
            "description": "Array of virtual items that the promotion applies to.",
            "items": {
              "properties": {
                "id": {
                  "type": "integer"
                },
                "localized_name": {
                  "description": "기본 언어(영어)로 표기된 요금제 명칭, name.en 값을 복제합니다.",
                  "type": "string"
                },
                "sku": {
                  "description": "Item SKU.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "packages": {
            "description": "Array of virtual currency packages that the promotion applies to.",
            "items": {
              "type": "object"
            },
            "nullable": true,
            "type": "array"
          },
          "purchase": {
            "description": "Whether the promotion applies to the whole purchase.",
            "type": "boolean"
          },
          "subscriptions": {
            "description": "Subscription plans or products that the promotion applies to.",
            "nullable": true,
            "properties": {
              "max_charges_count": {
                "description": "Maximum number of billings that the promotion applies to.",
                "type": "integer"
              },
              "plans": {
                "items": {
                  "description": "Array of subscription plans that the promotion applies to.",
                  "type": "string"
                },
                "type": "array"
              },
              "products": {
                "items": {
                  "description": "Array of subscription-based products that the promotion applies to.",
                  "type": "string"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Admin_API_Subscription": {
        "properties": {
          "cancel_subscription_payment": {
            "description": "`true`로 설정하면 본 정기 결제 최종 결제 금액이 환불됩니다. **이 옵션은 상태가 `canceled`로 설정된 경우에만 작동합니다**.",
            "type": "boolean"
          },
          "status": {
            "description": "Status.",
            "enum": [
              "active",
              "canceled",
              "non_renewing"
            ],
            "type": "string"
          },
          "timeshift": {
            "description": "Billing postponement.",
            "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/ko/doc/partner-network/#guides_network_glossary_influencer) 혹은 [제휴 네트워크](https://developers.xsolla.com/ko/doc/partner-network/#guides_network_glossary_affiliate_network) 식별자입니다. 이는 **관리자 페이지 > 파트너 네트워크 > 인플루언서** 섹션에서 찾을 수 있습니다.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Admin_API_SubscriptionsPlan": {
        "properties": {
          "billing_retry": {
            "description": "청구 재시도 세부 정보입니다.",
            "properties": {
              "value": {
                "description": "청구 재시도 횟수입니다.",
                "type": "integer"
              }
            },
            "required": [
              "value"
            ],
            "type": "object"
          },
          "charge": {
            "description": "청구 세부 정보입니다.",
            "properties": {
              "amount": {
                "description": "Billing amount.",
                "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`인 경우 0",
                    "type": "integer"
                  }
                },
                "required": [
                  "value",
                  "type"
                ],
                "type": "object"
              },
              "prices": {
                "description": "다양한 통화로 되어 있는 가격 목록입니다.",
                "items": {
                  "properties": {
                    "amount": {
                      "description": "Billing amount.",
                      "format": "float",
                      "type": "number"
                    },
                    "currency": {
                      "description": "구매 통화입니다. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자릿수 통화 코드입니다.",
                      "type": "string"
                    },
                    "setup_fee": {
                      "description": "첫 청구서의 일부로 청구되는 일회성 설정 수수료입니다.",
                      "format": "float",
                      "type": "number"
                    }
                  },
                  "required": [
                    "amount",
                    "currency"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "period"
            ],
            "type": "object"
          },
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_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": "Plan external ID (32 characters).",
            "type": "string"
          },
          "grace_period": {
            "description": "Grace period details.",
            "properties": {
              "type": {
                "description": "시간 단위입니다. `day`일 수 있습니다.",
                "enum": [
                  "day"
                ],
                "type": "string"
              },
              "value": {
                "description": "Number of time units.",
                "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/Admin_API_LocalizedStringPairs"
              },
              {
                "description": "요금제 이름입니다. \"localization\":\"plan name\" 쌍으로 구성된 값입니다."
              }
            ]
          },
          "project_id": {
            "description": "Project ID.",
            "type": "integer"
          },
          "refund_period": {
            "description": "사용자가 정기 결제 요금제 지급금을 환불할 수 있는 기간(일 단위)입니다.",
            "nullable": true,
            "type": "integer"
          },
          "status": {
            "properties": {
              "value": {
                "description": "정기 결제 요금제 상태입니다.",
                "enum": [
                  "active",
                  "disabled"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "tags": {
            "description": "Plan tags.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "trial": {
            "description": "무료체험 기간 세부 정보입니다.",
            "properties": {
              "type": {
                "description": "시간 단위입니다. `day`일 수 있습니다.",
                "enum": [
                  "day"
                ],
                "type": "string"
              },
              "value": {
                "description": "Number of time units.",
                "type": "integer"
              }
            },
            "required": [
              "value",
              "type"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "Admin_API_SubscriptionsPlanRequest": {
        "properties": {
          "billing_retry": {
            "description": "청구 재시도 세부 정보입니다.",
            "properties": {
              "value": {
                "description": "청구 재시도 횟수입니다.",
                "type": "integer"
              }
            },
            "required": [
              "value"
            ],
            "type": "object"
          },
          "charge": {
            "description": "청구 세부 정보입니다.",
            "properties": {
              "amount": {
                "description": "Billing amount.",
                "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`인 경우 0",
                    "type": "integer"
                  }
                },
                "required": [
                  "value",
                  "type"
                ],
                "type": "object"
              },
              "prices": {
                "description": "다양한 통화로 되어 있는 가격 목록입니다.",
                "items": {
                  "properties": {
                    "amount": {
                      "description": "Billing amount.",
                      "format": "float",
                      "type": "number"
                    },
                    "currency": {
                      "description": "구매 통화입니다. [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)에 따른 3자릿수 통화 코드입니다.",
                      "type": "string"
                    },
                    "setup_fee": {
                      "description": "첫 청구서의 일부로 청구되는 일회성 설정 수수료입니다.",
                      "format": "float",
                      "type": "number"
                    }
                  },
                  "required": [
                    "amount",
                    "currency"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "period"
            ],
            "type": "object"
          },
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_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": "Plan external ID (32 characters).",
            "type": "string"
          },
          "grace_period": {
            "description": "Grace period details.",
            "properties": {
              "type": {
                "description": "시간 단위입니다. `day`일 수 있습니다.",
                "enum": [
                  "day"
                ],
                "type": "string"
              },
              "value": {
                "description": "Number of time units.",
                "type": "integer"
              }
            },
            "required": [
              "value",
              "type"
            ],
            "type": "object"
          },
          "group_id": {
            "description": "이러한 요금제가 연결된 그룹의 ID입니다.",
            "type": "string"
          },
          "name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_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": "Plan tags.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "trial": {
            "description": "무료 체험 세부 정보입니다. 이 매개 변수가 전달되지 않으면 기본값 (0일)을 사용합니다.",
            "properties": {
              "type": {
                "description": "시간 단위입니다. `day`일 수 있습니다.",
                "enum": [
                  "day"
                ],
                "type": "string"
              },
              "value": {
                "description": "Number of time units.",
                "type": "integer"
              }
            },
            "required": [
              "value",
              "type"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "Admin_API_SubscriptionsProduct": {
        "nullable": true,
        "properties": {
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Admin_API_LocalizedStringPairs"
              },
              {
                "description": "현지화된 아이템 설명입니다."
              }
            ]
          },
          "group_id": {
            "description": "제품이 연결된 그룹의 ID입니다.",
            "type": "string"
          },
          "name": {
            "description": "제품 이름입니다.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Admin_API_SubscriptionsProductWithId": {
        "allOf": [
          {
            "properties": {
              "id": {
                "description": "Product ID the plans are linked to.",
                "nullable": true,
                "type": "integer"
              }
            },
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/Admin_API_SubscriptionsProduct"
          }
        ]
      },
      "Admin_API_User": {
        "properties": {
          "id": {
            "description": "사용자 ID",
            "type": "string"
          },
          "name": {
            "description": "사용자 이름",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Admin_API_UserAccountLinkResponse": {
        "properties": {
          "access_token": {
            "example": "<access_token>",
            "type": "string"
          },
          "redirect_url": {
            "example": "https://subscriptions-user-account.xsolla.com/?token=<access_token>&projectId=<project_id>&merchantId=<merchant_id>&locale=<locale>",
            "type": "string"
          }
        },
        "required": [
          "redirect_url",
          "access_token"
        ],
        "type": "object"
      },
      "Admin_API_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/ko/doc/pay-station/features/antifraud/)를 참조하십시오.",
            "properties": {
              "active_date": {
                "description": "[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)에 따른 마지막 확인 날짜입니다.",
                "type": "string"
              },
              "additional_verification": {
                "description": "Whether the player uses account verification procedures.",
                "type": "boolean"
              },
              "character_customized": {
                "description": "Whether the player has customized their character.",
                "type": "boolean"
              },
              "chat_activity": {
                "description": "Whether the player uses the chat function.",
                "type": "boolean"
              },
              "completed_tasks": {
                "description": "Number of tasks/objectives completed.",
                "type": "integer"
              },
              "forum_activity": {
                "description": "Whether the player uses the forum function.",
                "type": "boolean"
              },
              "items_used": {
                "description": "Whether the player uses purchased in-game items.",
                "type": "boolean"
              },
              "karma_points": {
                "description": "Player’s karma.",
                "type": "integer"
              },
              "last_change_password_date": {
                "description": "[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)에 따른 마지막 암호 변경 날짜입니다.",
                "type": "string"
              },
              "non_premium_currency": {
                "description": "Amount of non-premium currency.",
                "format": "float",
                "type": "integer"
              },
              "notifications_enabled": {
                "description": "Whether the player enabled notifications.",
                "type": "boolean"
              },
              "profile_completed": {
                "description": "Whether the player added additional information to their profile.",
                "type": "boolean"
              },
              "profile_image_added": {
                "description": "Whether the player has uploaded a profile image.",
                "type": "boolean"
              },
              "pvp_activity": {
                "description": "Whether the player takes part in PvP battles.",
                "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": "Whether the player has connected social media profiles.",
                "type": "boolean"
              },
              "total_bans": {
                "description": "Number of times the player was banned in the chat/forum.",
                "type": "integer"
              },
              "total_characters": {
                "description": "Number of in-game characters.",
                "type": "integer"
              },
              "total_clans": {
                "description": "Number of clans the player is a member of.",
                "type": "integer"
              },
              "total_friends": {
                "description": "Number of friends.",
                "type": "integer"
              },
              "total_game_events": {
                "description": "Number of in-game events the player took part in.",
                "type": "integer"
              },
              "total_gifts": {
                "description": "Number of in-game gifts the player has sent/received.",
                "type": "integer"
              },
              "total_hours": {
                "description": "Total number of in-game hours.",
                "type": "integer"
              },
              "total_inventory_value": {
                "description": "Total inventory value (in-game currency).",
                "format": "float",
                "type": "integer"
              },
              "total_sum": {
                "description": "Total amount of payments.",
                "format": "float",
                "type": "integer"
              },
              "tutorial_completed": {
                "description": "Whether the player has completed the game’s tutorial.",
                "type": "boolean"
              },
              "unlocked_achievements": {
                "description": "Number of achievements unlocked.",
                "type": "integer"
              },
              "user_level": {
                "description": "Player’s level, reputation, or rank.",
                "type": "integer"
              },
              "win_rate": {
                "description": "Win rate.",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "purchase": {
            "description": "구매 데이터 관련 값입니다.",
            "properties": {
              "checkout": {
                "description": "Object containing checkout details.",
                "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": "결제 UI에 표시되는 정기 결제 요금제입니다.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "currency": {
                    "description": "Currency of the subscription plan to use in all calculations.",
                    "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": "Product 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": "인터페이스 언어입니다. 두 자릿수 소문자 [언어 코드](https://developers.xsolla.com/ko/doc/pay-station/features/localization/)입니다.",
                "type": "string"
              },
              "mode": {
                "description": "결제 프로세스를 테스트하기 위한 `sandbox` 값을 설정합니다. 이 경우 *https://sandbox-secure.xsolla.com*을 사용하여 테스트 결제 UI에 액세스합니다.",
                "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": "Whether to show the submenu.",
                            "type": "boolean"
                          },
                          "order": {
                            "description": "Position of the submenu in the menu.",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "virtual_currency": {
                        "description": "인게임 재화 하위 메뉴 설정과 관련된 값입니다.",
                        "properties": {
                          "custom_amount": {
                            "description": "Whether the user can enter an arbitrary quantity of the virtual currency in the payment UI.",
                            "type": "boolean"
                          },
                          "hidden": {
                            "description": "Whether to show the submenu.",
                            "type": "boolean"
                          },
                          "order": {
                            "description": "Position of the submenu in the menu.",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "virtual_items": {
                        "description": "가상 아이템 하위 메뉴 설정과 관련된 값입니다.",
                        "properties": {
                          "hidden": {
                            "description": "Whether to show the submenu.",
                            "type": "boolean"
                          },
                          "order": {
                            "description": "Position of the submenu in the menu.",
                            "type": "integer"
                          },
                          "selected_group": {
                            "description": "Group to show after opening the virtual items tab.",
                            "type": "string"
                          },
                          "selected_item": {
                            "description": "Item to show after opening the virtual items tab (item SKU).",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "desktop": {
                    "description": "PC 버전의 인터페이스 설정과 관련된 값입니다.",
                    "properties": {
                      "header": {
                        "description": "헤더 설정과 관련된 값입니다.",
                        "properties": {
                          "close_button": {
                            "description": "페이 스테이션 데스크탑에서 닫기 버튼을 표시할지 여부입니다. 이 버튼을 누르면 페이 스테이션이 종료되고`settings.return_url` 매개 변수에 지정된 URL로 사용자를 리디렉션합니다(기본값: `false`).",
                            "type": "boolean"
                          },
                          "is_visible": {
                            "description": "Whether to show the header in the payment UI.",
                            "type": "boolean"
                          },
                          "type": {
                            "description": "헤더를 표시하는 설정 방식입니다. `compact`(프로젝트 이름 및 사용자 ID 표시 안 함) 또는 `normal`(기본값)을 설정할 수 있습니다.",
                            "enum": [
                              "compact",
                              "normal"
                            ],
                            "type": "string"
                          },
                          "visible_logo": {
                            "description": "`true`인 경우, 로고가 헤더에 표시됩니다(먼저 고객 성공 관리자에게 이미지를 제공하세요).",
                            "type": "boolean"
                          },
                          "visible_name": {
                            "description": "Whether to show the project name in the header.",
                            "type": "boolean"
                          },
                          "visible_purchase": {
                            "description": "구매 설명(`purchase.description.value`)이 헤더에 표시되는지 여부입니다. 기본값은 `true`입니다.",
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "subscription_list": {
                        "description": "정기 결제 요금제 목록 설정과 관련된 값입니다.",
                        "properties": {
                          "description": {
                            "description": "Any text to show above the list of available subscription plans in the payment UI.",
                            "type": "string"
                          },
                          "display_local_price": {
                            "description": "`true`인 경우 및 사용자의 현지 통화가 정기 결제 요금제의 통화와 다른 경우, 사용자는 현지 통화의 가격 및 기본 통화의 가격 등 두 가지 가격을 볼 수 있습니다.",
                            "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": "Any text to show above the list of virtual currencies.",
                            "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": "결제 UI에서 이 요소를 숨길 수 있는지 여부입니다. 기본값은 `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": "모바일 버전의 결제 UI에서 바닥글을 표시하거나 숨길지 여부입니다.",
                            "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": "결제 UI의 크기입니다. 이 매개 변수는 결제 UI의 필요한 크기에 따라 값이 다음과 같을 수 있습니다.\n  - [small](https://livedemo.xsolla.com/developers/small/): 결제 UI의 가능한 최소 크기입니다. 창 크기가 엄격히 제한되는 경우 이 값을 사용합니다. (크기: 620 x 630)\n  - [medium](https://livedemo.xsolla.com/developers/medium/): 결제 UI의 권장 크기입니다. 이 값을 사용하여 라이트박스에 결제 UI를 표시합니다. (크기: 740 x 760)\n  - [large](https://livedemo.xsolla.com/developers/large/): 새 창 또는 탭에 결제 UI 표시를 위한 최적의 크기입니다. (크기: 820 x 840)",
                    "enum": [
                      "small",
                      "medium",
                      "large"
                    ],
                    "type": "string"
                  },
                  "theme": {
                    "description": "결제 UI의 모양 테마입니다. `default`(기본값) 또는 `default_dark`일 수 있습니다.",
                    "enum": [
                      "default",
                      "default_dark"
                    ],
                    "type": "string"
                  },
                  "user_account": {
                    "description": "사용자 계정 세부 정보입니다.",
                    "properties": {
                      "history": {
                        "allOf": [
                          {
                            "description": "**기록** 하위 메뉴입니다."
                          },
                          {
                            "properties": {
                              "enable": {
                                "description": "하위 메뉴를 표시할지 여부입니다. 기본값은 `false`입니다.",
                                "type": "boolean"
                              },
                              "order": {
                                "description": "Position of the submenu in the menu.",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        ]
                      },
                      "info": {
                        "allOf": [
                          {
                            "description": "**내 계정** 페이지입니다."
                          },
                          {
                            "properties": {
                              "enable": {
                                "description": "하위 메뉴를 표시할지 여부입니다. 기본값은 `false`입니다.",
                                "type": "boolean"
                              },
                              "order": {
                                "description": "Position of the submenu in the menu.",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        ]
                      },
                      "payment_accounts": {
                        "allOf": [
                          {
                            "description": "**내 결제 계정** 하위 메뉴입니다."
                          },
                          {
                            "properties": {
                              "enable": {
                                "description": "하위 메뉴를 표시할지 여부입니다. 기본값은 `false`입니다.",
                                "type": "boolean"
                              },
                              "order": {
                                "description": "Position of the submenu in the menu.",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        ]
                      },
                      "subscriptions": {
                        "allOf": [
                          {
                            "description": "**정기 결제 관리** 하위 메뉴입니다."
                          },
                          {
                            "properties": {
                              "enable": {
                                "description": "하위 메뉴를 표시할지 여부입니다. 기본값은 `false`입니다.",
                                "type": "boolean"
                              },
                              "order": {
                                "description": "Position of the submenu in the menu.",
                                "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": "User attributes for filtering the item list, represented as a valid JSON set of key-value pairs.",
                "type": "object"
              },
              "country": {
                "properties": {
                  "allow_modify": {
                    "description": "결제 UI에서 사용자의 국가 변경 가능 여부입니다. `country.value`가 토큰에서 전달되면 기본값은 `false`입니다.",
                    "type": "boolean"
                  },
                  "value": {
                    "description": "[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": "User ID.",
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ],
                "type": "object"
              },
              "is_legal": {
                "description": "Whether the user is a legal entity.",
                "type": "boolean"
              },
              "legal": {
                "allOf": [
                  {
                    "description": "법인 세부 정보가 있는 개체입니다. `user.is_legal`가 `true`인 경우 개체와 이에 해당하는 모든 매개 변수는 필수입니다."
                  },
                  {
                    "description": "법인 세부 정보가 있는 개체입니다.",
                    "properties": {
                      "address": {
                        "description": "Full legal address.",
                        "type": "string"
                      },
                      "country": {
                        "description": "기업이 속한 국가입니다. [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)에 따른 두 자릿수 대문자 국가 코드입니다.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Full legal name.",
                        "type": "string"
                      },
                      "vat_id": {
                        "description": "Individual taxpayer identifier.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                ]
              },
              "name": {
                "properties": {
                  "value": {
                    "description": "User screen name.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "phone": {
                "properties": {
                  "value": {
                    "description": "User phone number.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "public_id": {
                "properties": {
                  "value": {
                    "description": "Parameter that uniquely identifies the user and is known to the user (email, screen name, etc). Allows the user to make purchases outside the game store (e.g., via cash kiosks).",
                    "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": "Campaign title, transliterated or translated to English.",
                    "type": "string"
                  },
                  "utm_content": {
                    "description": "Campaign content.",
                    "type": "string"
                  },
                  "utm_medium": {
                    "description": "Traffic channel (contextual ads, media ads, email lists, etc.).",
                    "type": "string"
                  },
                  "utm_source": {
                    "description": "Traffic source.",
                    "type": "string"
                  },
                  "utm_term": {
                    "description": "캠페인 키워드입니다. 설정된 경우 특정 검색 질의보다 타켓 광고에 사용하는 키워드 데이터에 기반하여 통계가 만들어집니다. Google Analytics에서는 지정된 `utm_term`이 일반 검색 용어 보고서의 일부입니다.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "Client_API_BuySubscriptionRequest": {
        "properties": {
          "available_plans": {
            "default": null,
            "description": "결제 UI에 표시되는 정기 결제 요금제입니다.",
            "nullable": true,
            "type": "object"
          },
          "custom_parameters": {
            "default": null,
            "description": "You can pass additional parameters in the token",
            "nullable": true,
            "type": "object"
          },
          "plan_external_id": {
            "default": null,
            "description": "You must provide either a plan_external_id",
            "example": "PlanExternalId",
            "nullable": true,
            "type": "string"
          },
          "product_id": {
            "default": null,
            "description": "ID of the product associated with the plan",
            "example": "12345",
            "nullable": true,
            "type": "integer"
          },
          "settings": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Settings"
              }
            ]
          }
        },
        "type": "object"
      },
      "Client_API_CatalogResponse": {
        "properties": {
          "default_plans": {
            "$ref": "#/components/schemas/Client_API_ListPlansResponse2"
          },
          "has_more": {
            "example": "false",
            "type": "boolean"
          },
          "plans_by_product": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Client_API_ListPlansResponse2"
            },
            "type": "array"
          }
        },
        "required": [
          "default_plans",
          "has_more"
        ],
        "type": "object"
      },
      "Client_API_Charge": {
        "properties": {
          "amount": {
            "example": 4.99,
            "format": "float",
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "type": "string"
          },
          "setup_fee": {
            "example": 0.99,
            "format": "float",
            "type": "number"
          }
        },
        "required": [
          "amount",
          "setup_fee",
          "currency"
        ],
        "type": "object"
      },
      "Client_API_Charge2": {
        "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"
      },
      "Client_API_Charge3": {
        "properties": {
          "amount": {
            "example": 4.99,
            "format": "float",
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "type": "string"
          },
          "setup_fee": {
            "example": 0.99,
            "format": "float",
            "type": "number"
          }
        },
        "required": [
          "amount",
          "setup_fee",
          "currency"
        ],
        "type": "object"
      },
      "Client_API_Charge4": {
        "properties": {
          "amount": {
            "example": 4.99,
            "format": "float",
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "type": "string"
          },
          "setup_fee": {
            "example": 0.99,
            "format": "float",
            "type": "number"
          }
        },
        "required": [
          "amount",
          "setup_fee",
          "currency"
        ],
        "type": "object"
      },
      "Client_API_Desktop": {
        "properties": {
          "header": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Header"
              }
            ]
          }
        },
        "type": "object"
      },
      "Client_API_Footer": {
        "properties": {
          "is_visible": {
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Client_API_Header": {
        "properties": {
          "close_button": {
            "nullable": true,
            "type": "boolean"
          },
          "is_visible": {
            "nullable": true,
            "type": "boolean"
          },
          "type": {
            "enum": [
              "compact",
              "normal"
            ],
            "nullable": true,
            "type": "string"
          },
          "visible_logo": {
            "nullable": true,
            "type": "boolean"
          },
          "visible_name": {
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Client_API_Header2": {
        "properties": {
          "close_button": {
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "Client_API_History": {
        "properties": {
          "enable": {
            "nullable": true,
            "type": "boolean"
          },
          "order": {
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Client_API_Info": {
        "properties": {
          "enable": {
            "nullable": true,
            "type": "boolean"
          },
          "order": {
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Client_API_ListPlansResponse": {
        "properties": {
          "has_more": {
            "example": "false",
            "type": "boolean"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Client_API_PlanResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "has_more"
        ],
        "type": "object"
      },
      "Client_API_ListPlansResponse2": {
        "properties": {
          "has_more": {
            "example": "false",
            "type": "boolean"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Client_API_PlanResponse2"
            },
            "type": "array"
          },
          "name": {
            "example": "Some product name",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "has_more"
        ],
        "type": "object"
      },
      "Client_API_ListProductsResponse": {
        "properties": {
          "has_more": {
            "example": false,
            "type": "boolean"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Client_API_ProductResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "has_more"
        ],
        "type": "object"
      },
      "Client_API_ListSubscriptionsResponse": {
        "properties": {
          "has_more": {
            "example": "false",
            "type": "boolean"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/Client_API_SubscriptionResponse2"
            },
            "type": "array"
          }
        },
        "required": [
          "has_more"
        ],
        "type": "object"
      },
      "Client_API_ManageSubscriptionRequest": {
        "properties": {
          "available_plans": {
            "default": null,
            "description": "결제 UI에 표시되는 정기 결제 요금제입니다.",
            "nullable": true,
            "type": "object"
          },
          "custom_parameters": {
            "default": null,
            "description": "You can pass additional parameters in the token",
            "nullable": true,
            "type": "object"
          },
          "product_id": {
            "default": null,
            "description": "ID of the product associated with the plan",
            "example": "12345",
            "nullable": true,
            "type": "integer"
          },
          "settings": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Settings"
              }
            ]
          },
          "steam_user_id": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Client_API_Mobile": {
        "properties": {
          "footer": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Footer"
              }
            ]
          },
          "header": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Header2"
              }
            ]
          },
          "mode": {
            "enum": [
              "saved_accounts"
            ],
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Client_API_PayStationLinkResponse": {
        "properties": {
          "link_to_ps": {
            "example": "https://secure.xsolla.com/paystation2/?access_token=<access_token>",
            "type": "string"
          }
        },
        "required": [
          "link_to_ps"
        ],
        "type": "object"
      },
      "Client_API_PaymentAccounts": {
        "properties": {
          "enable": {
            "nullable": true,
            "type": "boolean"
          },
          "order": {
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Client_API_Period": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Client_API_Period2": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Client_API_Period3": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Client_API_Period4": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Client_API_PlanResponse": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/Client_API_Charge"
          },
          "period": {
            "$ref": "#/components/schemas/Client_API_Period"
          },
          "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/Client_API_Promotion"
          },
          "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"
      },
      "Client_API_PlanResponse2": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/Client_API_Charge4"
          },
          "period": {
            "$ref": "#/components/schemas/Client_API_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/Client_API_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"
      },
      "Client_API_ProductResponse": {
        "properties": {
          "product_description": {
            "example": "Localized product description",
            "nullable": true,
            "type": "string"
          },
          "product_external_id": {
            "example": "ProductExternalId",
            "nullable": true,
            "type": "string"
          },
          "product_group_id": {
            "example": "TestGroupId",
            "nullable": true,
            "type": "string"
          },
          "product_id": {
            "example": "12345",
            "type": "integer"
          },
          "product_name": {
            "example": "Product name",
            "type": "string"
          }
        },
        "required": [
          "product_id",
          "product_name"
        ],
        "type": "object"
      },
      "Client_API_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"
      },
      "Client_API_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"
      },
      "Client_API_RedeemCouponRequest": {
        "properties": {
          "code": {
            "default": null,
            "description": "Coupon code",
            "example": "abcde",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Client_API_RedirectPolicy": {
        "properties": {
          "delay": {
            "nullable": true,
            "type": "integer"
          },
          "redirect_button_caption": {
            "nullable": true,
            "type": "string"
          },
          "redirect_conditions": {
            "enum": [
              "none",
              "successful",
              "successful_or_canceled",
              "any"
            ],
            "nullable": true,
            "type": "string"
          },
          "status_for_manual_redirection": {
            "enum": [
              "none",
              "vc",
              "successful",
              "successful_or_canceled",
              "any"
            ],
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Client_API_RenewSubscriptionRequest": {
        "properties": {
          "custom_parameters": {
            "default": null,
            "description": "You can pass additional parameters in the token",
            "nullable": true,
            "type": "object"
          },
          "settings": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Settings"
              }
            ]
          },
          "steam_user_id": {
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Client_API_Settings": {
        "properties": {
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "nullable": true,
            "type": "string"
          },
          "external_id": {
            "maxLength": 255,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "hide_saved_payment_accounts": {
            "nullable": true,
            "type": "boolean"
          },
          "locale": {
            "maxLength": 2,
            "minLength": 2,
            "nullable": true,
            "type": "string"
          },
          "payment_method": {
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          },
          "redirect_policy": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_RedirectPolicy"
              }
            ]
          },
          "return_url": {
            "maxLength": 1000,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          },
          "steam_user_id": {
            "maxLength": 17,
            "minLength": 17,
            "nullable": true,
            "type": "string"
          },
          "ui": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Ui"
              }
            ]
          },
          "xsolla_product_tag": {
            "maxLength": 100,
            "minLength": 1,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Client_API_SubscriptionResponse": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/Client_API_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"
          },
          "period": {
            "$ref": "#/components/schemas/Client_API_Period"
          },
          "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_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"
          },
          "product_description": {
            "example": "Localized product description",
            "nullable": true,
            "type": "string"
          },
          "product_external_id": {
            "example": "ProductExternalId",
            "nullable": true,
            "type": "string"
          },
          "product_id": {
            "example": "12345",
            "nullable": true,
            "type": "integer"
          },
          "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_id",
          "plan_external_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"
      },
      "Client_API_SubscriptionResponse2": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/Client_API_Charge2"
          },
          "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"
          },
          "period": {
            "$ref": "#/components/schemas/Client_API_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_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"
          },
          "product_description": {
            "example": "Localized product description",
            "nullable": true,
            "type": "string"
          },
          "product_external_id": {
            "example": "ProductExternalId",
            "nullable": true,
            "type": "string"
          },
          "product_id": {
            "example": "12345",
            "nullable": true,
            "type": "integer"
          },
          "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_id",
          "plan_external_id",
          "plan_name",
          "plan_description",
          "status",
          "is_in_trial",
          "date_create",
          "charge",
          "period"
        ],
        "type": "object"
      },
      "Client_API_Subscriptions": {
        "properties": {
          "enable": {
            "nullable": true,
            "type": "boolean"
          },
          "order": {
            "minimum": 1,
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Client_API_Ui": {
        "properties": {
          "desktop": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Desktop"
              }
            ]
          },
          "independent_windows": {
            "nullable": true,
            "type": "boolean"
          },
          "license_url": {
            "nullable": true,
            "type": "string"
          },
          "mobile": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Mobile"
              }
            ]
          },
          "mode": {
            "enum": [
              "user_account",
              "without_purchase"
            ],
            "nullable": true,
            "type": "string"
          },
          "size": {
            "enum": [
              "large",
              "medium",
              "small"
            ],
            "nullable": true,
            "type": "string"
          },
          "theme": {
            "nullable": true,
            "type": "string"
          },
          "user_account": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_UserAccount"
              }
            ]
          },
          "version": {
            "enum": [
              "desktop",
              "mobile"
            ],
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Client_API_UserAccount": {
        "properties": {
          "history": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_History"
              }
            ]
          },
          "info": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Info"
              }
            ]
          },
          "payment_accounts": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_PaymentAccounts"
              }
            ]
          },
          "subscriptions": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Client_API_Subscriptions"
              }
            ]
          }
        },
        "type": "object"
      },
      "Client_API_UserAccountLinkResponse": {
        "properties": {
          "redirect_url": {
            "example": "https://subscriptions-user-account.xsolla.com/?token=<access_token>&projectId=<project_id>&merchantId=<merchant_id>&locale=<locale>",
            "type": "string"
          }
        },
        "required": [
          "redirect_url"
        ],
        "type": "object"
      },
      "User_Management_API_BillingAccountResponse": {
        "properties": {
          "id": {
            "example": "12345",
            "type": "integer"
          },
          "name": {
            "example": "PP_saved_account",
            "nullable": true,
            "type": "string"
          },
          "payment_system": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/User_Management_API_PaymentSystemResponse"
              }
            ]
          },
          "type": {
            "example": "paypal",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "User_Management_API_BillingAccountsListResponse": {
        "properties": {
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/User_Management_API_BillingAccountResponse"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "User_Management_API_ChangePlanPaymentDetailsResponse": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/User_Management_API_Charge2"
          },
          "payment_details": {
            "$ref": "#/components/schemas/User_Management_API_PaymentDetails"
          },
          "period": {
            "$ref": "#/components/schemas/User_Management_API_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/User_Management_API_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"
      },
      "User_Management_API_ChangePlanRequest": {
        "properties": {
          "plan_external_id": {
            "type": "string"
          },
          "sandbox": {
            "nullable": true,
            "type": "boolean"
          }
        },
        "required": [
          "plan_external_id"
        ],
        "type": "object"
      },
      "User_Management_API_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"
      },
      "User_Management_API_Charge2": {
        "properties": {
          "amount": {
            "example": 4.99,
            "format": "float",
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "type": "string"
          },
          "setup_fee": {
            "example": 0.99,
            "format": "float",
            "type": "number"
          }
        },
        "required": [
          "amount",
          "setup_fee",
          "currency"
        ],
        "type": "object"
      },
      "User_Management_API_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"
      },
      "User_Management_API_Charge4": {
        "properties": {
          "amount": {
            "example": 4.99,
            "format": "float",
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "type": "string"
          },
          "setup_fee": {
            "example": 0.99,
            "format": "float",
            "type": "number"
          }
        },
        "required": [
          "amount",
          "setup_fee",
          "currency"
        ],
        "type": "object"
      },
      "User_Management_API_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"
      },
      "User_Management_API_LinkPaymentAccountRequest": {
        "properties": {
          "payment_account_id": {
            "example": 123,
            "type": "integer"
          }
        },
        "required": [
          "payment_account_id"
        ],
        "type": "object"
      },
      "User_Management_API_ListManagementSubscriptionsResponse": {
        "properties": {
          "has_more": {
            "example": "false",
            "type": "boolean"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/User_Management_API_ManagementSubscriptionResponse2"
            },
            "type": "array"
          }
        },
        "required": [
          "has_more"
        ],
        "type": "object"
      },
      "User_Management_API_ListPlansResponse": {
        "properties": {
          "has_more": {
            "example": "false",
            "type": "boolean"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/User_Management_API_PlanResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "has_more"
        ],
        "type": "object"
      },
      "User_Management_API_ManagementSubscriptionResponse": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/User_Management_API_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/User_Management_API_LastSuccessfulCharge"
              }
            ]
          },
          "payment_account": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/User_Management_API_PaymentRecurrentAccountResponse2"
              }
            ]
          },
          "period": {
            "$ref": "#/components/schemas/User_Management_API_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"
      },
      "User_Management_API_ManagementSubscriptionResponse2": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/User_Management_API_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/User_Management_API_PaymentRecurrentAccountResponse3"
              }
            ]
          },
          "period": {
            "$ref": "#/components/schemas/User_Management_API_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"
      },
      "User_Management_API_PayStationLinkResponse": {
        "properties": {
          "link_to_ps": {
            "example": "https://secure.xsolla.com/paystation2/?access_token=<access_token>",
            "type": "string"
          }
        },
        "required": [
          "link_to_ps"
        ],
        "type": "object"
      },
      "User_Management_API_PaymentDetails": {
        "properties": {
          "surcharge": {
            "default": null,
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/User_Management_API_Surcharge"
              }
            ]
          },
          "unused": {
            "default": null,
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/User_Management_API_Unused"
              }
            ]
          }
        },
        "type": "object"
      },
      "User_Management_API_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"
      },
      "User_Management_API_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"
      },
      "User_Management_API_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"
      },
      "User_Management_API_PaymentSystemResponse": {
        "properties": {
          "id": {
            "example": "12345",
            "type": "integer"
          },
          "name": {
            "example": "PayPal",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "User_Management_API_Period": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "User_Management_API_Period2": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "User_Management_API_Period3": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "User_Management_API_Period4": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "User_Management_API_PlanResponse": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/User_Management_API_Charge4"
          },
          "period": {
            "$ref": "#/components/schemas/User_Management_API_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/User_Management_API_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"
      },
      "User_Management_API_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"
      },
      "User_Management_API_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"
      },
      "User_Management_API_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"
      },
      "User_Management_API_SandboxRequest": {
        "properties": {
          "sandbox": {
            "nullable": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "User_Management_API_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"
      },
      "User_Management_API_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"
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "description": "Xsolla API uses basic access authentication. All requests to API must contain the `Authorization: Basic <your_authorization_basic_key>` header, where `<your_authorization_basic_key>` is the `merchant_id:api_key` pair encoded according to the Base64 standard.\nGo to **[Xsolla Publisher Account](https://publisher.xsolla.com/) > Company settings** to find <ul><li> `merchant_id` on the Company tab</li><li> `api_key` on the API key tab.</li></ul><br>",
        "scheme": "basic",
        "type": "http"
      },
      "managementJwtAuth": {
        "scheme": "bearer",
        "type": "http"
      },
      "projectUserJwtAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "# Overview {% #overview %}\n\n* **Version:** 2.0\n* **Servers**: `https://api.xsolla.com/merchant/v2/`\n\nThis API reference describes endpoints for managing subscriptions, coupons, and promotions.\nTo get more information about Subscriptions, see the [product guide](https://developers.xsolla.com/ko/doc/subscriptions) and the [glossary](https://developers.xsolla.com/ko/doc/subscriptions/integration-guide/get-started/#general_glossary).",
    "title": "정기 결제 API",
    "version": "2.0"
  },
  "openapi": "3.0.0",
  "paths": {
    "/api/public/v1/projects/{project_id}/products": {
      "get": {
        "operationId": "list-public-products",
        "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/Client_API_ListProductsResponse"
                }
              }
            },
            "description": "Subscription's products"
          }
        },
        "security": [],
        "summary": "List products (no auth)",
        "tags": [
          "Client_API_Catalog"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/public/v1/projects/{project_id}/products/{productId}/user_plans": {
      "get": {
        "operationId": "list-public-plans-by-product",
        "parameters": [
          {
            "in": "query",
            "name": "plan_id",
            "required": false,
            "schema": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "plan_external_id",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "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": "query",
            "name": "country",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "productId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client_API_ListPlansResponse"
                }
              }
            },
            "description": "Subscription's plans by product"
          }
        },
        "security": [],
        "summary": "List plans by product (no auth)",
        "tags": [
          "Client_API_Catalog"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/public/v1/projects/{project_id}/user_plans": {
      "get": {
        "operationId": "list-public-plans",
        "parameters": [
          {
            "in": "query",
            "name": "plan_id",
            "required": false,
            "schema": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "plan_external_id",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "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": "query",
            "name": "country",
            "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/Client_API_ListPlansResponse"
                }
              }
            },
            "description": "Subscription's default plans"
          }
        },
        "security": [],
        "summary": "List plans (no auth)",
        "tags": [
          "Client_API_Catalog"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/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/User_Management_API_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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "List subscriptions",
        "tags": [
          "User_Management_API_subscriptions"
        ]
      },
      "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/User_Management_API_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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Get management settings",
        "tags": [
          "User_Management_API_subscriptions"
        ]
      },
      "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/User_Management_API_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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Get subscription",
        "tags": [
          "User_Management_API_subscriptions"
        ]
      },
      "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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Activate subscription",
        "tags": [
          "User_Management_API_subscriptions"
        ]
      },
      "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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Cancel subscription",
        "tags": [
          "User_Management_API_subscriptions"
        ]
      },
      "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": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User_Management_API_ChangePlanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User_Management_API_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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Get change plan link",
        "tags": [
          "User_Management_API_subscriptions"
        ]
      },
      "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/User_Management_API_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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Get payment account",
        "tags": [
          "User_Management_API_payment-accounts"
        ]
      },
      "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": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User_Management_API_SandboxRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User_Management_API_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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Manage payment account",
        "tags": [
          "User_Management_API_payment-accounts"
        ]
      },
      "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/User_Management_API_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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "List payment accounts",
        "tags": [
          "User_Management_API_payment-accounts"
        ]
      },
      "post": {
        "operationId": "link-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"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/User_Management_API_LinkPaymentAccountRequest"
              }
            }
          },
          "required": true
        },
        "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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Link payment account",
        "tags": [
          "User_Management_API_payment-accounts"
        ]
      },
      "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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Unlink payment account",
        "tags": [
          "User_Management_API_payment-accounts"
        ]
      },
      "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/User_Management_API_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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "List plans for change",
        "tags": [
          "User_Management_API_subscriptions"
        ]
      },
      "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/User_Management_API_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": [
          {
            "managementJwtAuth": []
          }
        ],
        "summary": "Get plan for change",
        "tags": [
          "User_Management_API_subscriptions"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/catalog": {
      "get": {
        "operationId": "get-subscriptions-catalog",
        "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": "query",
            "name": "country",
            "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/Client_API_CatalogResponse"
                }
              }
            },
            "description": "Subscription's catalog"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "Get catalog",
        "tags": [
          "Client_API_Catalog"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/plans": {
      "get": {
        "operationId": "get-subscription-plans",
        "parameters": [
          {
            "in": "query",
            "name": "plan_id",
            "required": false,
            "schema": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "plan_external_id",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "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": "query",
            "name": "country",
            "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/Client_API_ListPlansResponse"
                }
              }
            },
            "description": "Subscription's default plans"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "List plans",
        "tags": [
          "Client_API_Catalog"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/products": {
      "get": {
        "operationId": "get-subscription-products",
        "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/Client_API_ListProductsResponse"
                }
              }
            },
            "description": "Subscription's products"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "List products",
        "tags": [
          "Client_API_Catalog"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/products/{productId}/plans": {
      "get": {
        "operationId": "get-subscription-plans-by-product",
        "parameters": [
          {
            "in": "query",
            "name": "plan_id",
            "required": false,
            "schema": {
              "items": {
                "type": "integer"
              },
              "type": "array"
            }
          },
          {
            "in": "query",
            "name": "plan_external_id",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "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": "query",
            "name": "country",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "productId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client_API_ListPlansResponse"
                }
              }
            },
            "description": "Subscription's plans by product"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "List plans by product",
        "tags": [
          "Client_API_Catalog"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/redeem_coupon": {
      "post": {
        "operationId": "redeem-coupon",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Client_API_RedeemCouponRequest"
              }
            }
          },
          "description": "Redeem a coupon by its code",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "status": "successful"
                }
              }
            },
            "description": "The coupon has been successfully redeemed"
          },
          "400": {
            "content": {
              "application/json": {
                "examples": {
                  "already_activated": {
                    "summary": "The coupon has already been activated",
                    "value": {
                      "error": {
                        "code": "coupon.redemption_error",
                        "description": "The code you entered has already been activated"
                      },
                      "request_id": "b9a3cdfc-f68a-4af8-b9f1-390c6b841849"
                    }
                  },
                  "invalid_code": {
                    "summary": "Coupon code is invalid",
                    "value": {
                      "error": {
                        "code": "coupon.invalid_code",
                        "description": "Coupon code is invalid."
                      },
                      "request_id": "e8d9c792-76f8-4996-8c2e-30f026180b01"
                    }
                  }
                }
              }
            },
            "description": "Bad Request"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Publisher API request failed."
                  },
                  "request_id": "80c0e8a0-789a-46f3-a1d4-fa0d561f69e1"
                }
              }
            },
            "description": "Publisher API request failed"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "Redeem coupon",
        "tags": [
          "Client_API_Coupons"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/subscriptions": {
      "get": {
        "operationId": "get-user-active-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/Client_API_ListSubscriptionsResponse"
                }
              }
            },
            "description": "Get subscription info"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "List active subscriptions",
        "tags": [
          "Client_API_Subscriptions"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/subscriptions/buy": {
      "post": {
        "operationId": "buy-subscription",
        "parameters": [
          {
            "in": "query",
            "name": "country",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Client_API_BuySubscriptionRequest"
              }
            }
          },
          "description": "Buy subscription",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client_API_PayStationLinkResponse"
                }
              }
            },
            "description": "Get buy subscription url"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.plan_not_found",
                    "description": "Subscription plan not found"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Subscription plan not found"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "Buy subscription",
        "tags": [
          "Client_API_Subscriptions"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/subscriptions/manage": {
      "post": {
        "operationId": "get-manage-subscriptions-link",
        "parameters": [
          {
            "in": "query",
            "name": "country",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Client_API_ManageSubscriptionRequest"
              }
            }
          },
          "description": "Manage subscription",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client_API_PayStationLinkResponse"
                }
              }
            },
            "description": "Get manage subscriptions url"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "Get management link",
        "tags": [
          "Client_API_Subscriptions"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/subscriptions/user_account": {
      "get": {
        "operationId": "get-user-account-link",
        "parameters": [
          {
            "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/Client_API_UserAccountLinkResponse"
                }
              }
            },
            "description": "Get user account url"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "Get user account link",
        "tags": [
          "Client_API_Subscriptions"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/subscriptions/{subscription_id}": {
      "get": {
        "operationId": "get-user-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/Client_API_SubscriptionResponse"
                }
              }
            },
            "description": "Get subscription info"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "Get subscription",
        "tags": [
          "Client_API_Subscriptions"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/subscriptions/{subscription_id}/cancel": {
      "put": {
        "operationId": "cancel-user-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": "Subscription is not active"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription not found"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Subscription not found"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "Cancel subscription",
        "tags": [
          "Client_API_Subscriptions"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/projects/{project_id}/subscriptions/{subscription_id}/renew": {
      "post": {
        "operationId": "renew-user-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"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Client_API_RenewSubscriptionRequest"
              }
            }
          },
          "description": "Renew subscription",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Client_API_PayStationLinkResponse"
                }
              }
            },
            "description": "Get subscription renew url"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.renew",
                    "description": "Can\\'t renew a subscription"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Can\\'t renew a subscription"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription not found"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Subscription not found"
          }
        },
        "security": [
          {
            "projectUserJwtAuth": []
          }
        ],
        "summary": "Renew subscription",
        "tags": [
          "Client_API_Subscriptions"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/v1/projects/{projectId}/subscriptions/user_account": {
      "post": {
        "operationId": "post-subscriptions-get-user-account-link",
        "parameters": [
          {
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Admin_API_GetUserAccountRequest"
              }
            }
          },
          "description": "Get user account url",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Admin_API_UserAccountLinkResponse"
                }
              }
            },
            "description": "Get user account url"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.bad_request",
                    "description": "Can't get merchant credentials."
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Login API request failed."
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Get user account link",
        "tags": [
          "Admin_API_subscriptions"
        ],
        "x-public": true
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/merchants/{merchant_id}/coupon_promotions": {
      "post": {
        "description": "새로운 쿠폰 캠페인을 생성합니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "create-campaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_Campaign"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "example": 9134,
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "생성됨."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Create campaign",
        "tags": [
          "Admin_API_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": "쿠폰 캠페인에 쿠폰 코드를 추가합니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "add-coupon-to-campaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_campaign-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "coupon_code": {
                    "description": "Coupon code.",
                    "example": "34bryrb3",
                    "type": "string"
                  }
                },
                "required": [
                  "coupon_code"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Add coupon to campaign",
        "tags": [
          "Admin_API_coupons"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions": {
      "get": {
        "description": "모든 프로모션 목록입니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "get-promotions-list",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_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": "List promotions",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "post": {
        "description": "새로운 프로모션을 생성합니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "create-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_GetPromotion"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "id": 17890
                },
                "schema": {
                  "properties": {
                    "id": {
                      "description": "프로모션 ID입니다.",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "생성됨."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Create promotion",
        "tags": [
          "Admin_API_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`인 프로모션만 삭제할 수 있습니다. \n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "delete-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_promotion-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Delete promotion",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "get": {
        "description": "프로모션을 검색합니다. \n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "get-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_GetPromotion"
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Get promotion",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "프로모션을 업데이트합니다. 프로모션이 읽기 전용(`read_only` = `true`)인 경우 `project_id` 매개 변수를 변경할 수 없습니다. \n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "update-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_GetPromotion"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Update promotion",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/coupons": {
      "put": {
        "description": "특정 프로모션에 쿠폰 캠페인을 첨부합니다. \n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "attach-campaign-to-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Attach campaign to promotion",
        "tags": [
          "Admin_API_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": "프로모션에 지원되는 결제 시스템을 가져옵니다. 목록이 비어 있으면 프로모션이 모든 결제 시스템에 적용됩니다. \n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "get-payment-systems",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_PromotionPaymentSystem"
                    }
                  ]
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Get payment systems",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "프로모션에 지원되는 결제 시스템을 설정합니다. 목록이 비어 있으면 프로모션이 모든 결제 시스템에 적용됩니다. 프로모션이 읽기 전용(`read_only` = `true`)인 경우 이 메서드를 호출할 수 없습니다. \n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "set-payment-systems",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_promotion-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "payment_systems": [
                  {
                    "id": 24,
                    "name": "PayPal"
                  }
                ]
              },
              "schema": {
                "$ref": "#/components/schemas/Admin_API_PromotionPaymentSystem"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Set payment systems",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/periods": {
      "get": {
        "description": "프로모션이 유효한 날짜/시간 범위를 가져옵니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "get-validity-periods",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_PromotionPeriod"
                    }
                  ]
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Get validity periods",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "프로모션이 유효한 날짜/시간 범위를 설정합니다. 프로모션이 읽기 전용(`read_only` = `true`)인 경우 기존 기간을 편집할 수 없지만 새 기간을 추가할 수는 있습니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "set-validity-periods",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_PromotionPeriod"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Set validity periods",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/review": {
      "get": {
        "description": "프로모션을 활성화하기 전에 검토해야 합니다. 이 메소드는 오류 목록을 반환합니다(있는 경우).\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "review-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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": "Review promotion",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/rewards": {
      "get": {
        "description": "프로모션과 관련된 보상 목록을 가져옵니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "get-rewards",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_PromotionReward"
                    }
                  ]
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Get rewards",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "프로모션에 대한 보상을 설정합니다. 프로모션이 읽기 전용(`read_only` = `true`)인 경우 보상을 업데이트할 수 없습니다. \n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "set-rewards",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_PromotionReward"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Set rewards",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/subject": {
      "get": {
        "description": "프로모션 대상에 대한 정보를 얻습니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "get-subject",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_PromotionSubject"
                    },
                    {
                      "properties": {
                        "id": {
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Get promotion scope",
        "tags": [
          "Admin_API_promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "프로모션의 대상을 설정합니다. 프로모션이 읽기 전용(`read_only` = `true`)인 경우 프로모션 대상을 업데이트할 수 없습니다. 프로모션 대상은 다음 값을 가질 수 있습니다: `purchase`, `items`, 또는 `packages`.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "set-subject",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_PromotionSubject"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Set promotion scope",
        "tags": [
          "Admin_API_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`로 전환하고, 그 반대로도 전환합니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "toggle-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_promotion-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Toggle promotion",
        "tags": [
          "Admin_API_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 메소드는 높은 부하에서는 사용할 수 없습니다. 최대 부하는 분당 20개의 요청입니다.</div>\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "get-subscriptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_offset-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_limit-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_user-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_array-project-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_array-plan-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_array-product-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_array-group-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_status-query-param-array"
          },
          {
            "$ref": "#/components/parameters/Admin_API_datetime-from-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_AdminSubscriptionResponse"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "List subscriptions",
        "tags": [
          "Admin_API_subscriptions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/token": {
      "post": {
        "description": "임의의 사용자 매개 변수로 토큰을 생성할 수 있습니다. 토큰을 받을 때 이러한 매개 변수를 보내고 성공적인 결제 후에 다시 받습니다. 토큰은 이 문서에 설명되어 있거나 사용자가 미리 정의한 매개 변수만 포함할 수 있습니다.\n\n매개 변수가 잘못된 형식으로 전송되거나 잘못된 유형인 경우 토큰이 발급되지 않습니다. JSON 본문에 오류 설명이 포함된 422 HTTP 코드를 받게 됩니다. `extended_message`에서 정확히 어떤 매개 변수가 잘못 전송되었는지에 대한 정보를 받게 됩니다.\n<div class=\"notice\">\n  <p><strong>주의</strong></p><p>이 API 호출에는 <code>project_id</code> 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.</p>\n</div>",
        "operationId": "create-token",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_merchant-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Admin_API_token"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
                },
                "schema": {
                  "properties": {
                    "token": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "생성됨."
          },
          "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/ko/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": "처리할 수 없는 엔터티입니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "토큰 생성",
        "tags": [
          "Admin_API_token"
        ],
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/coupons/{code}/details": {
      "get": {
        "description": "Get coupon details by its code.",
        "operationId": "get-coupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_CouponAttribute"
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Get coupon",
        "tags": [
          "Admin_API_coupons"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/coupons/{code}/redeem": {
      "post": {
        "description": "쿠폰 코드로 쿠폰을 사용합니다.",
        "operationId": "admin-redeem-coupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_code-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "user_id": {
                    "description": "User 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/Admin_API_Coupon"
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Redeem coupon",
        "tags": [
          "Admin_API_coupons"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/currencies": {
      "get": {
        "description": "Lists all supported subscription currencies.",
        "operationId": "get-currencies",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_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": "List currencies",
        "tags": [
          "Admin_API_payments"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/payments": {
      "get": {
        "description": "Lists all subscription payments.",
        "operationId": "get-payments",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_offset-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_limit-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_user-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_status-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_datetime-from-query-param2"
          },
          {
            "$ref": "#/components/parameters/Admin_API_datetime-to-query-param2"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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": "List payments",
        "tags": [
          "Admin_API_payments"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/plans": {
      "get": {
        "description": "Lists all subscription plans.",
        "operationId": "get-plans",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_plan-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_limit-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_offset-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_external-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_group-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_product-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_SubscriptionsPlan"
                      },
                      {
                        "properties": {
                          "localized_name": {
                            "description": "기본 언어(영어)로 표기된 요금제 명칭, name.en 값을 복제합니다.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "List plans",
        "tags": [
          "Admin_API_plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "post": {
        "description": "Creates a subscription plan.",
        "operationId": "create-plan",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_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": "Create plan",
        "tags": [
          "Admin_API_plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/plans/{plan_id}": {
      "delete": {
        "description": "Disables a subscription plan.",
        "operationId": "disable-plan",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_plan-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Disable plan",
        "tags": [
          "Admin_API_plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "patch": {
        "description": "Enables a subscription plan.",
        "operationId": "enable-plan",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_plan-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Enable plan",
        "tags": [
          "Admin_API_plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "Updates subscription plan parameters.",
        "operationId": "update-plan-parameters",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_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": "Update plan",
        "tags": [
          "Admin_API_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": "Deletes a subscription plan.",
        "operationId": "delete-plan",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_plan-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Delete plan",
        "tags": [
          "Admin_API_plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/products": {
      "get": {
        "description": "Lists all subscription-based products.",
        "operationId": "get-products",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_offset-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_limit-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_group-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_SubscriptionsProductWithId"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "List products",
        "tags": [
          "Admin_API_products"
        ],
        "x-admin": true,
        "x-server": true
      },
      "post": {
        "description": "Creates a subscription-based product.",
        "operationId": "create-product",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_SubscriptionsProduct"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "product_id": 172003
                },
                "schema": {
                  "properties": {
                    "product_id": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "생성됨."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Create product",
        "tags": [
          "Admin_API_products"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/products/{product_id}": {
      "delete": {
        "description": "Deletes a subscription-based product.",
        "operationId": "delete-product",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_product-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "콘텐츠가 없습니다."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Delete product",
        "tags": [
          "Admin_API_products"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "Updates a subscription-based product.",
        "operationId": "update-product",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_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/Admin_API_SubscriptionsProductWithId"
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Update product",
        "tags": [
          "Admin_API_products"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/{subscription_id}": {
      "get": {
        "description": "Gets a specific subscription details by ID.",
        "operationId": "get-subscription",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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/Admin_API_AdminSubscriptionResponse"
                }
              }
            },
            "description": "OK(확인)."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Get subscription",
        "tags": [
          "Admin_API_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": "Lists all payments made by a specific user.",
        "operationId": "get-user-payments",
        "parameters": [
          {
            "$ref": "#/components/parameters/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_user-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_status-id-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_offset-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_limit-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_datetime-from-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_datetime-to-query-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_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": "List user payments",
        "tags": [
          "Admin_API_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/Admin_API_project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_user-id-path-param"
          },
          {
            "$ref": "#/components/parameters/Admin_API_subscription-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "status": "active"
              },
              "schema": {
                "$ref": "#/components/schemas/Admin_API_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": "Update subscription",
        "tags": [
          "Admin_API_subscriptions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    }
  },
  "tags": [
    {
      "name": "Admin_API_token",
      "x-displayName": "토큰"
    },
    {
      "name": "Admin_API_plans",
      "x-displayName": "Plans"
    },
    {
      "name": "Admin_API_products",
      "x-displayName": "제품"
    },
    {
      "name": "Admin_API_subscriptions",
      "x-displayName": "Subscriptions"
    },
    {
      "name": "Admin_API_payments",
      "x-displayName": "결제"
    },
    {
      "name": "Admin_API_promotions",
      "x-displayName": "프로모션"
    },
    {
      "name": "Admin_API_coupons",
      "x-displayName": "쿠폰"
    },
    {
      "name": "Client_API_Subscriptions",
      "x-displayName": "Subscriptions"
    },
    {
      "name": "Client_API_Catalog",
      "x-displayName": "Catalog"
    },
    {
      "name": "Client_API_Coupons",
      "x-displayName": "쿠폰"
    },
    {
      "name": "User_Management_API_subscriptions",
      "x-displayName": "Subscriptions"
    },
    {
      "name": "User_Management_API_payment-accounts",
      "x-displayName": "Payment accounts"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Admin API",
      "tags": [
        "Admin_API_token",
        "Admin_API_plans",
        "Admin_API_products",
        "Admin_API_subscriptions",
        "Admin_API_payments",
        "Admin_API_promotions",
        "Admin_API_coupons",
        "Admin_API_Subscriptions"
      ]
    },
    {
      "name": "Client API",
      "tags": [
        "Client_API_Subscriptions",
        "Client_API_Catalog",
        "Client_API_Coupons",
        "Client_API_User Plans"
      ]
    },
    {
      "name": "User Management API",
      "tags": [
        "User_Management_API_subscriptions",
        "User_Management_API_payment-accounts"
      ]
    }
  ]
}