{
  "components": {
    "parameters": {
      "array-group-id-query-param": {
        "description": "Lista de IDs de grupo aos quais os planos estão vinculados.",
        "in": "query",
        "name": "group_id[]",
        "schema": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "array-plan-id-query-param": {
        "description": "Lista de IDs de planos de assinatura.",
        "in": "query",
        "name": "plan_id[]",
        "schema": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "array-product-id-query-param": {
        "description": "Lista de IDs de produto aos quais os planos estão vinculados.",
        "in": "query",
        "name": "product_id[]",
        "schema": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "array-project-id-query-param": {
        "description": "Lista de IDs de projetos.",
        "in": "query",
        "name": "project_id[]",
        "schema": {
          "items": {
            "type": "integer"
          },
          "type": "array"
        }
      },
      "campaign-id-path-param": {
        "description": "ID de campanha.",
        "in": "path",
        "name": "campaign_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "code-path-param": {
        "description": "Código de cupom.",
        "in": "path",
        "name": "code",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "datetime-from-query-param": {
        "description": "Data de amostra. Use isso para encontrar assinaturas criadas após a solicitação.",
        "in": "query",
        "name": "datetime_from",
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "datetime-from-query-param2": {
        "description": "Início do período.",
        "in": "query",
        "name": "datetime_from",
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "datetime-to-query-param": {
        "description": "Data de amostra. Use isso para encontrar assinaturas criadas após a solicitação.",
        "in": "query",
        "name": "datetime_to",
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "datetime-to-query-param2": {
        "description": "Fim do período.",
        "in": "query",
        "name": "datetime_to",
        "schema": {
          "format": "datetime",
          "type": "string"
        }
      },
      "external-id-query-param": {
        "description": "Planejar ID externo (32 caracteres).",
        "in": "query",
        "name": "external_id",
        "schema": {
          "type": "string"
        }
      },
      "group-id-query-param": {
        "description": "ID de grupo aos quais os planos estão vinculados.",
        "in": "query",
        "name": "group_id",
        "schema": {
          "type": "string"
        }
      },
      "limit-query-param": {
        "description": "Limite da quantidade de elementos na página.",
        "in": "query",
        "name": "limit",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "merchant-id-path-param": {
        "description": "ID de comerciante.",
        "in": "path",
        "name": "merchant_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "offset-query-param": {
        "description": "Número do elemento a partir do qual a lista é gerada (a quantidade começa a partir de 0).",
        "in": "query",
        "name": "offset",
        "schema": {
          "type": "integer"
        }
      },
      "plan-id-path-param": {
        "description": "ID de plano.",
        "in": "path",
        "name": "plan_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "plan-id-query-param": {
        "description": "ID de plano de assinatura.",
        "in": "query",
        "name": "plan_id",
        "schema": {
          "type": "integer"
        }
      },
      "product-id-path-param": {
        "description": "ID de produto aos quais os planos estão vinculados.",
        "in": "path",
        "name": "product_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "product-id-query-param": {
        "description": "ID de produto aos quais os planos estão vinculados.",
        "in": "query",
        "name": "product_id",
        "schema": {
          "type": "integer"
        }
      },
      "project-id-path-param": {
        "description": "ID de projeto.",
        "in": "path",
        "name": "project_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "promotion-id-path-param": {
        "description": "ID de promoção.",
        "in": "path",
        "name": "promotion_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "query-query-param": {
        "description": "Consultar (procura em name.en (local padrão)).",
        "in": "query",
        "name": "query",
        "schema": {
          "type": "string"
        }
      },
      "status-id-query-param": {
        "description": "Status da transação.",
        "in": "query",
        "name": "status",
        "schema": {
          "enum": [
            "done",
            "fail"
          ],
          "type": "string",
          "x-enumDescriptions": {
            "done": "O pagamento foi processado com sucesso.",
            "fail": "O pagamento não foi processado com sucesso, ou um reembolso foi emitido."
          }
        }
      },
      "status-query-param-array": {
        "description": "Status.",
        "in": "query",
        "name": "status[]",
        "schema": {
          "items": {
            "enum": [
              "active",
              "canceled",
              "non_renewing"
            ],
            "type": "string"
          },
          "type": "array"
        }
      },
      "subscription-id-path-param": {
        "description": "ID de assinatura.",
        "in": "path",
        "name": "subscription_id",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "subscription-id-query-param": {
        "description": "ID de assinatura.",
        "in": "query",
        "name": "subscription_id",
        "schema": {
          "type": "integer"
        }
      },
      "user-id-path-param": {
        "description": "ID de usuário.",
        "in": "path",
        "name": "user_id",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "user-id-query-param": {
        "description": "ID de usuário.",
        "in": "query",
        "name": "user_id",
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "BillingAccountResponse": {
        "properties": {
          "id": {
            "example": "12345",
            "type": "integer"
          },
          "name": {
            "example": "PP_saved_account",
            "nullable": true,
            "type": "string"
          },
          "payment_system": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PaymentSystemResponse"
              }
            ]
          },
          "type": {
            "example": "paypal",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "BillingAccountsListResponse": {
        "properties": {
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/BillingAccountResponse"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Campaign": {
        "properties": {
          "campaign_code": {
            "description": "Nome da campanha.",
            "type": "string"
          },
          "campaign_names": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Objeto que contém nomes de campanha traduzidos."
              }
            ]
          },
          "campaign_redeems_count_for_user": {
            "description": "Quantidade máxima de resgates de cupons por usuário em uma campanha. Se `null` for passado, a quantidade de resgates será ilimitada. ",
            "type": "integer"
          },
          "expiration_date": {
            "description": "A data de validade da campanha no formato 'AAAA-MM-DD'T'HH:MM:SS', de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
            "format": "datetime",
            "type": "string"
          },
          "project_id": {
            "description": "ID de projeto.",
            "type": "integer"
          },
          "redeems_count": {
            "description": "Quantidade máxima de resgates de cupons. Se `null` for passado, a quantidade de resgates será ilimitada. ",
            "type": "integer"
          },
          "redeems_count_for_user": {
            "description": "Quantidade máxima de resgates de cupons por usuário. Se `null` for passado, a quantidade de resgates será ilimitada. ",
            "type": "integer"
          },
          "subscription_coupon": {
            "description": "Objeto que contém parâmetros de assinatura em uma recompensa.",
            "properties": {
              "plan_id": {
                "description": "ID de plano de assinatura.",
                "type": "integer"
              },
              "product_id": {
                "description": "ID de produto de assinatura.",
                "type": "integer"
              },
              "trial_period": {
                "description": "O período de teste em dias.",
                "type": "integer"
              }
            },
            "required": [
              "plan_id",
              "product_id",
              "trial_period"
            ],
            "type": "object"
          },
          "virtual_currency_amount": {
            "description": "Quantia da moeda virtual em uma recompensa.",
            "format": "float",
            "type": "number"
          },
          "virtual_items": {
            "description": "Matriz de parâmetros de itens virtuais em uma recompensa.",
            "properties": {
              "quantity": {
                "description": "Quantidade de itens virtuais.",
                "type": "integer"
              },
              "sku": {
                "description": "SKU de itens virtuais.",
                "type": "string"
              }
            },
            "required": [
              "sku",
              "quantity"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "ChangePlanPaymentDetailsResponse": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/Charge2"
          },
          "payment_details": {
            "$ref": "#/components/schemas/PaymentDetails"
          },
          "period": {
            "$ref": "#/components/schemas/Period2"
          },
          "plan_description": {
            "example": "Localized plan description",
            "type": "string"
          },
          "plan_end_date": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "plan_external_id": {
            "example": "PlanExternalId",
            "type": "string"
          },
          "plan_group_id": {
            "example": "TestGroupId",
            "nullable": true,
            "type": "string"
          },
          "plan_id": {
            "example": "54321",
            "type": "integer"
          },
          "plan_name": {
            "example": "Localized plan name",
            "type": "string"
          },
          "plan_start_date": {
            "example": "2021-04-11T13:51:02+03:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "plan_type": {
            "example": "all",
            "type": "string"
          },
          "promotion": {
            "$ref": "#/components/schemas/Promotion"
          },
          "trial_period": {
            "example": "7",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "plan_id",
          "plan_external_id",
          "plan_type",
          "plan_name",
          "plan_description",
          "period",
          "charge",
          "promotion",
          "payment_details"
        ],
        "type": "object"
      },
      "Charge": {
        "properties": {
          "amount": {
            "example": "4.99",
            "format": "float",
            "type": "number"
          },
          "amount_with_promotion": {
            "default": null,
            "example": "3.99",
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency"
        ],
        "type": "object"
      },
      "Charge2": {
        "properties": {
          "amount": {
            "example": "4.99",
            "format": "float",
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "type": "string"
          },
          "setup_fee": {
            "example": "0.99",
            "format": "float",
            "nullable": true,
            "type": "number"
          }
        },
        "required": [
          "amount",
          "currency"
        ],
        "type": "object"
      },
      "Charge3": {
        "properties": {
          "amount": {
            "example": "4.99",
            "format": "float",
            "type": "number"
          },
          "amount_with_promotion": {
            "default": null,
            "example": "3.99",
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency"
        ],
        "type": "object"
      },
      "Charge4": {
        "properties": {
          "amount": {
            "example": "4.99",
            "format": "float",
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "type": "string"
          },
          "setup_fee": {
            "example": "0.99",
            "format": "float",
            "nullable": true,
            "type": "number"
          }
        },
        "required": [
          "amount",
          "currency"
        ],
        "type": "object"
      },
      "Coupon": {
        "properties": {
          "campaign_code": {
            "type": "string"
          },
          "coupon_code": {
            "type": "string"
          },
          "coupon_id": {
            "type": "integer"
          },
          "expiration_date": {
            "type": "string"
          },
          "is_active": {
            "type": "boolean"
          },
          "project_id": {
            "type": "integer"
          },
          "redeems_count_for_user": {
            "type": "integer"
          },
          "redeems_count_remain": {
            "type": "integer"
          },
          "subscription_coupon": {
            "nullable": true,
            "type": "string"
          },
          "virtual_currency_amount": {
            "type": "integer"
          },
          "virtual_items": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CouponAttribute": {
        "properties": {
          "key": {
            "description": "Chave do atributo do usuário.",
            "type": "string"
          },
          "list_of_values": {
            "description": "Matriz de valores possíveis para um tipo enumerado.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Nomes de atributos traduzidos."
              }
            ]
          },
          "skip_condition_on_nonexistent_key": {
            "description": "Se a condição deve ser ignorada caso não haja chave.",
            "type": "boolean"
          },
          "type": {
            "description": "Tipo de chave.",
            "enum": [
              "int",
              "string",
              "enum",
              "date"
            ],
            "type": "string"
          },
          "visible": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "CreatePromotion": {
        "properties": {
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Matriz de descrições de promoções traduzidas."
              }
            ]
          },
          "label": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Matriz de rótutlos traduzidos a serem exibidos na interface de pagamento."
              }
            ]
          },
          "name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Matriz de nomes de promoções traduzidas."
              }
            ]
          },
          "project_id": {
            "description": "ID de projeto.",
            "type": "integer"
          },
          "technical_name": {
            "description": "Nome técnico da promoção.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "GetPromotion": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CreatePromotion"
          },
          {
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "id": {
                "type": "integer"
              },
              "read_only": {
                "type": "boolean"
              },
              "show_banner": {
                "type": "boolean"
              }
            },
            "type": "object"
          }
        ]
      },
      "LastSuccessfulCharge": {
        "properties": {
          "amount": {
            "example": "3.99",
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "currency": {
            "example": "USD",
            "nullable": true,
            "type": "string"
          },
          "date": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "date"
        ],
        "type": "object"
      },
      "ListManagementSubscriptionsResponse": {
        "properties": {
          "has_more": {
            "example": "false",
            "type": "boolean"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/ManagementSubscriptionResponse2"
            },
            "type": "array"
          }
        },
        "required": [
          "has_more"
        ],
        "type": "object"
      },
      "ListPlansResponse": {
        "properties": {
          "has_more": {
            "example": "false",
            "type": "boolean"
          },
          "items": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/PlanResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "has_more"
        ],
        "type": "object"
      },
      "LocalizedStringPairs": {
        "properties": {
          "ar": {
            "description": "Árabe.",
            "type": "string"
          },
          "bg": {
            "description": "Búlgaro.",
            "type": "string"
          },
          "cn": {
            "description": "Chinês (Simplificado).",
            "type": "string"
          },
          "cs": {
            "description": "Tcheco.",
            "type": "string"
          },
          "de": {
            "description": "Alemão.",
            "type": "string"
          },
          "en": {
            "description": "Inglês.",
            "type": "string"
          },
          "es": {
            "description": "Espanhol.",
            "type": "string"
          },
          "fr": {
            "description": "Francês.",
            "type": "string"
          },
          "he": {
            "description": "Hebreu.",
            "type": "string"
          },
          "it": {
            "description": "Italiano.",
            "type": "string"
          },
          "ja": {
            "description": "Japonês.",
            "type": "string"
          },
          "ko": {
            "description": "Coreano.",
            "type": "string"
          },
          "pl": {
            "description": "Polonês.",
            "type": "string"
          },
          "pt": {
            "description": "Português.",
            "type": "string"
          },
          "ro": {
            "description": "Romeno.",
            "type": "string"
          },
          "ru": {
            "description": "Russo.",
            "type": "string"
          },
          "th": {
            "description": "Tailandês.",
            "type": "string"
          },
          "tr": {
            "description": "Turco.",
            "type": "string"
          },
          "tw": {
            "description": "Chinês (Tradicional).",
            "type": "string"
          },
          "vi": {
            "description": "Vietnamita.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ManagementSubscriptionResponse": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/Charge"
          },
          "date_create": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "type": "string"
          },
          "date_end": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_last_charge": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_next_charge": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "example": "12345",
            "type": "integer"
          },
          "is_change_plan_allowed": {
            "example": "false",
            "type": "boolean"
          },
          "is_change_to_non_renew_possible": {
            "example": "true",
            "type": "boolean"
          },
          "is_in_trial": {
            "example": "false",
            "type": "boolean"
          },
          "is_renew_possible": {
            "example": "true",
            "type": "boolean"
          },
          "last_successful_charge": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/LastSuccessfulCharge"
              }
            ]
          },
          "payment_account": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PaymentRecurrentAccountResponse2"
              }
            ]
          },
          "period": {
            "$ref": "#/components/schemas/Period"
          },
          "plan_description": {
            "example": "Localized plan description",
            "type": "string"
          },
          "plan_name": {
            "example": "Localized plan name",
            "type": "string"
          },
          "product_description": {
            "example": "Localized product description",
            "nullable": true,
            "type": "string"
          },
          "product_name": {
            "example": "Product name",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "example": "active",
            "type": "string"
          },
          "trial_period": {
            "example": "0",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "id",
          "plan_name",
          "plan_description",
          "status",
          "is_in_trial",
          "date_create",
          "charge",
          "period",
          "is_renew_possible",
          "is_change_to_non_renew_possible",
          "is_change_plan_allowed"
        ],
        "type": "object"
      },
      "ManagementSubscriptionResponse2": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/Charge3"
          },
          "date_create": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "type": "string"
          },
          "date_last_charge": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "date_next_charge": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "example": "12345",
            "type": "integer"
          },
          "is_in_trial": {
            "example": "false",
            "type": "boolean"
          },
          "payment_account": {
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/PaymentRecurrentAccountResponse3"
              }
            ]
          },
          "period": {
            "$ref": "#/components/schemas/Period3"
          },
          "plan_description": {
            "example": "Localized plan description",
            "type": "string"
          },
          "plan_name": {
            "example": "Localized plan name",
            "type": "string"
          },
          "product_description": {
            "example": "Localized product description",
            "nullable": true,
            "type": "string"
          },
          "product_name": {
            "example": "Product name",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "example": "active",
            "type": "string"
          },
          "trial_period": {
            "example": "0",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "id",
          "plan_name",
          "plan_description",
          "status",
          "is_in_trial",
          "date_create",
          "charge",
          "period"
        ],
        "type": "object"
      },
      "PayStationLinkResponse": {
        "properties": {
          "link_to_ps": {
            "example": "https://secure.xsolla.com/paystation2/?access_token=<access_token>",
            "type": "string"
          }
        },
        "required": [
          "link_to_ps"
        ],
        "type": "object"
      },
      "PaymentDetails": {
        "properties": {
          "surcharge": {
            "default": null,
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Surcharge"
              }
            ]
          },
          "unused": {
            "default": null,
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/Unused"
              }
            ]
          }
        },
        "type": "object"
      },
      "PaymentRecurrentAccountResponse": {
        "properties": {
          "card_expiry_date": {
            "nullable": true,
            "properties": {
              "month": {
                "example": "09",
                "type": "string"
              },
              "year": {
                "example": "2023",
                "type": "string"
              }
            },
            "type": "object"
          },
          "id": {
            "example": "123",
            "type": "integer"
          },
          "name": {
            "example": "** 7398",
            "nullable": true,
            "type": "string"
          },
          "ps_name": {
            "example": "Mastercard",
            "nullable": true,
            "type": "string"
          },
          "switch_icon_name": {
            "example": "mastercard.svg",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "example": "card",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "PaymentRecurrentAccountResponse2": {
        "properties": {
          "card_expiry_date": {
            "nullable": true,
            "properties": {
              "month": {
                "example": "09",
                "type": "string"
              },
              "year": {
                "example": "2023",
                "type": "string"
              }
            },
            "type": "object"
          },
          "id": {
            "example": "123",
            "type": "integer"
          },
          "name": {
            "example": "** 7398",
            "nullable": true,
            "type": "string"
          },
          "ps_name": {
            "example": "Mastercard",
            "nullable": true,
            "type": "string"
          },
          "switch_icon_name": {
            "example": "mastercard.svg",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "example": "card",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "PaymentRecurrentAccountResponse3": {
        "properties": {
          "card_expiry_date": {
            "nullable": true,
            "properties": {
              "month": {
                "example": "09",
                "type": "string"
              },
              "year": {
                "example": "2023",
                "type": "string"
              }
            },
            "type": "object"
          },
          "id": {
            "example": "123",
            "type": "integer"
          },
          "name": {
            "example": "** 7398",
            "nullable": true,
            "type": "string"
          },
          "ps_name": {
            "example": "Mastercard",
            "nullable": true,
            "type": "string"
          },
          "switch_icon_name": {
            "example": "mastercard.svg",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "example": "card",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "PaymentSystemResponse": {
        "properties": {
          "id": {
            "example": "12345",
            "type": "integer"
          },
          "name": {
            "example": "PayPal",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "Period": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Period2": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Period3": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Period4": {
        "properties": {
          "unit": {
            "default": null,
            "example": "month",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "default": null,
            "example": "1",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PlanResponse": {
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/Charge4"
          },
          "period": {
            "$ref": "#/components/schemas/Period4"
          },
          "plan_description": {
            "example": "Localized plan description",
            "type": "string"
          },
          "plan_end_date": {
            "example": "2031-04-11T13:51:02+03:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "plan_external_id": {
            "example": "PlanExternalId",
            "type": "string"
          },
          "plan_group_id": {
            "example": "TestGroupId",
            "nullable": true,
            "type": "string"
          },
          "plan_id": {
            "example": "54321",
            "type": "integer"
          },
          "plan_name": {
            "example": "Localized plan name",
            "type": "string"
          },
          "plan_start_date": {
            "example": "2021-04-11T13:51:02+03:00",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "plan_type": {
            "example": "all",
            "type": "string"
          },
          "promotion": {
            "$ref": "#/components/schemas/Promotion2"
          },
          "trial_period": {
            "example": "7",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "plan_id",
          "plan_external_id",
          "plan_type",
          "plan_name",
          "plan_description",
          "period",
          "charge",
          "promotion"
        ],
        "type": "object"
      },
      "ProjectManageSubscriptionSettingsResponse": {
        "properties": {
          "allow_change_package": {
            "example": "true",
            "type": "boolean"
          },
          "recurrent_cancel_possible": {
            "example": "true",
            "type": "boolean"
          }
        },
        "required": [
          "recurrent_cancel_possible",
          "allow_change_package"
        ],
        "type": "object"
      },
      "Promotion": {
        "properties": {
          "promotion_charge_amount": {
            "default": null,
            "example": "3.99",
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "promotion_remaining_charges": {
            "default": null,
            "example": "3",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Promotion2": {
        "properties": {
          "promotion_charge_amount": {
            "default": null,
            "example": "3.99",
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "promotion_remaining_charges": {
            "default": null,
            "example": "3",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PromotionPaymentSystem": {
        "properties": {
          "payment_systems": {
            "description": "Sistemas de pagamento.",
            "items": {
              "properties": {
                "id": {
                  "description": "ID de sistema de pagamento.",
                  "type": "integer"
                },
                "name": {
                  "description": "Nome do sistema de pagamento.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "PromotionPeriod": {
        "properties": {
          "periods": {
            "description": "Intervalos de tempo/data.",
            "items": {
              "properties": {
                "from": {
                  "description": "Início do período.",
                  "format": "datetime",
                  "type": "string"
                },
                "offset": {
                  "description": "Número do elemento a partir do qual a lista é gerada (a quantidade começa a partir de 0).",
                  "type": "string"
                },
                "to": {
                  "description": "Fim do período.",
                  "format": "datetime",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "PromotionReward": {
        "properties": {
          "item": {
            "description": "Defina a recompensa para itens virtuais específicos.",
            "properties": {
              "bonus": {
                "description": "Itens virtuais extras concedidos como bônus.",
                "items": {
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "localized_name": {
                      "description": "Nome do plano no idioma padrão (en), replica o valor name.en.",
                      "type": "string"
                    },
                    "quantity": {
                      "description": "Quantidade de itens virtuais entregues como um bônus.",
                      "type": "integer"
                    },
                    "sku": {
                      "description": "SKU do item.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "discount": {
                "description": "Descontos por itens virtuais específicos.",
                "items": {
                  "properties": {
                    "discount_percent": {
                      "description": "Percentual de desconto.",
                      "format": "float",
                      "type": "number"
                    },
                    "localized_name": {
                      "description": "Nome do plano no idioma padrão (en), replica o valor name.en.",
                      "type": "string"
                    },
                    "max_amount": {
                      "description": "Quantidade máxima de itens aos quais pode-se aplicar uma promoção.",
                      "format": "integer",
                      "type": "number"
                    },
                    "sku": {
                      "description": "SKU do item.",
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "package": {
            "description": "Defina a recompensa para um pacote de moedas virtuais.",
            "properties": {
              "bonus_amount": {
                "description": "Recompensa como quantia absoluta da moeda virtual.",
                "format": "float",
                "type": "number"
              },
              "bonus_percent": {
                "description": "Recompensa como percentual da quantia do pacote.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "purchase": {
            "description": "Defina a recompensa para a compra toda.",
            "properties": {
              "discount_percent": {
                "description": "Percentual de desconto.",
                "format": "float",
                "type": "number"
              }
            },
            "type": "object"
          },
          "subscription": {
            "description": "Define a recompensa de uma assinatura.",
            "properties": {
              "trial_days": {
                "description": "O período de teste em dias.",
                "type": "integer"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "PromotionSubject": {
        "properties": {
          "digital_contents": {
            "nullable": true,
            "type": "object"
          },
          "items": {
            "description": "Matriz de itens virtuais aos quais a promoção se aplica.",
            "items": {
              "properties": {
                "id": {
                  "type": "integer"
                },
                "localized_name": {
                  "description": "Nome do plano no idioma padrão (en), replica o valor name.en.",
                  "type": "string"
                },
                "sku": {
                  "description": "SKU do item.",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "packages": {
            "description": "Matriz de pacotes de moedas virtuais aos quais a promoção se aplica.",
            "items": {
              "type": "object"
            },
            "nullable": true,
            "type": "array"
          },
          "purchase": {
            "description": "Se a promoção se aplica à compra inteira.",
            "type": "boolean"
          },
          "subscriptions": {
            "description": "Planos de assinatura ou produtos aos quais a promoção se aplica.",
            "nullable": true,
            "properties": {
              "max_charges_count": {
                "description": "Quantidade máxima de cobranças às quais a promoção se aplica.",
                "type": "integer"
              },
              "plans": {
                "items": {
                  "description": "Matriz dos planos de assinatura aos quais a promoção se aplica.",
                  "type": "string"
                },
                "type": "array"
              },
              "products": {
                "items": {
                  "description": "Matriz de produtos de assinatura aos quais a promoção se aplica.",
                  "type": "string"
                },
                "type": "array"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Subscription": {
        "properties": {
          "cancel_subscription_payment": {
            "description": "Definir como `true` reembolsará o último pagamento feito desta assinatura. **Só funciona junto com a troca do status para `canceled`**.",
            "type": "boolean"
          },
          "status": {
            "description": "Status.",
            "enum": [
              "active",
              "canceled",
              "non_renewing"
            ],
            "type": "string"
          },
          "timeshift": {
            "description": "Adiamento de cobrança.",
            "properties": {
              "type": {
                "description": "Unidade de tempo de cobrança. Pode ser `day` ou `month`.",
                "enum": [
                  "day",
                  "month"
                ],
                "type": "string"
              },
              "value": {
                "description": "Quantidade de unidades de tempo a adiar da cobrança. O valor depende do parâmetro do tipo e pode ser: <br>- entre 1 e 366, se <br> for `type` `type`- entre 1 e 12, se `day` for `month`",
                "type": "string"
              }
            },
            "type": "object"
          },
          "xsolla_network": {
            "properties": {
              "collaborator_id": {
                "description": "ID de colaborador — Identificador de [Influenciador](https://developers.xsolla.com/pt/doc/partner-network/#guides_network_glossary_influencer) ou de [rede de afiliados](https://developers.xsolla.com/pt/doc/partner-network/#guides_network_glossary_affiliate_network). Você pode encontrá-lo na seção **Conta de Distribuidor > Rede de Parcerias > Influenciadores**.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "SubscriptionResponse": {
        "properties": {
          "charge_amount": {
            "description": "Quantia da cobrança.",
            "format": "float",
            "type": "number"
          },
          "comment": {
            "description": "Motivo para a alteração do status da assinatura",
            "type": "string"
          },
          "currency": {
            "description": "Moeda da compra. Código de três letras da moeda de acordo com o ISO 4217.",
            "type": "string"
          },
          "date_create": {
            "description": "A data de criação da assinatura no formato `AAAA-MM-DD’T’HH:MM:SS` de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
            "format": "datetime",
            "type": "string"
          },
          "date_end": {
            "description": "A data final da assinatura no formato 'AAAA-MM-DD'T'HH:MM:SS', de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
            "format": "datetime",
            "type": "string"
          },
          "date_last_charge": {
            "description": "A data da última cobrança da assinatura no formato `AAAA-MM-DD’T’HH:MM:SS` de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
            "format": "datetime",
            "nullable": true,
            "type": "string"
          },
          "date_next_charge": {
            "description": "A data da próxima cobrança da assinatura no formato 'AAAA-MM-DD'T'HH:MM:SS', de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
            "format": "datetime",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "ID de assinatura",
            "type": "integer"
          },
          "plan": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SubscriptionsPlan"
              }
            ]
          },
          "product": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SubscriptionsProductWithId"
              }
            ]
          },
          "status": {
            "description": "Status",
            "enum": [
              "new",
              "active",
              "canceled",
              "non_renewing",
              "freeze"
            ],
            "type": "string"
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ]
          }
        },
        "type": "object"
      },
      "SubscriptionsPlan": {
        "properties": {
          "billing_retry": {
            "description": "Dados de tentativa de cobrança.",
            "properties": {
              "value": {
                "description": "Quantidade de tentativas de cobrança.",
                "type": "integer"
              }
            },
            "required": [
              "value"
            ],
            "type": "object"
          },
          "charge": {
            "description": "Dados de cobrança.",
            "properties": {
              "amount": {
                "description": "Quantia da cobrança.",
                "format": "float",
                "type": "number"
              },
              "currency": {
                "description": "Moeda da compra. Código da moeda de três letras de acordo com o [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).",
                "type": "string"
              },
              "period": {
                "description": "Período de cobrança.",
                "properties": {
                  "type": {
                    "description": "Unidade de tempo. Pode ser `day`, `month` ou `lifetime`.",
                    "enum": [
                      "day",
                      "month",
                      "lifetime"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "description": "Quantidade de unidades de tempo. O valor depende do parâmetro do tipo e pode ser: <br>- entre 1 e 366, se `type` for `day` <br>- entre 1 e 12, se `type` for `month` <br>- 0 se `type` for `lifetime`",
                    "type": "integer"
                  }
                },
                "required": [
                  "value",
                  "type"
                ],
                "type": "object"
              },
              "prices": {
                "description": "Lista de preços em moedas diferentes.",
                "items": {
                  "properties": {
                    "amount": {
                      "description": "Quantia da cobrança.",
                      "format": "float",
                      "type": "number"
                    },
                    "currency": {
                      "description": "Moeda da compra. Código da moeda de três letras de acordo com o [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).",
                      "type": "string"
                    },
                    "setup_fee": {
                      "description": "Cobrança única de configuração realizada como parte da primeira fatura.",
                      "format": "float",
                      "type": "number"
                    }
                  },
                  "required": [
                    "amount",
                    "currency"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "period"
            ],
            "type": "object"
          },
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Descrição do plano. O valor consiste de pares \"localization\":\"plan description\"."
              }
            ]
          },
          "expiration": {
            "description": "Dados de término da assinatura.",
            "properties": {
              "type": {
                "description": "Unidade de tempo. Pode ser `day` ou `month`.",
                "enum": [
                  "day",
                  "month"
                ],
                "type": "string"
              },
              "value": {
                "description": "Tempo de validade.",
                "nullable": true,
                "type": "integer"
              }
            },
            "required": [
              "value",
              "type"
            ],
            "type": "object"
          },
          "external_id": {
            "description": "Planejar ID externo (32 caracteres).",
            "type": "string"
          },
          "grace_period": {
            "description": "Dados do período de carência.",
            "properties": {
              "type": {
                "description": "Unidade de tempo. Pode ser `day`.",
                "enum": [
                  "day"
                ],
                "type": "string"
              },
              "value": {
                "description": "Quantidade de unidades de tempo.",
                "type": "integer"
              }
            },
            "required": [
              "value",
              "type"
            ],
            "type": "object"
          },
          "group_id": {
            "description": "ID de grupo ao qual o plano está vinculado.",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "ID de plano de assinatura.",
            "type": "integer"
          },
          "name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Nome do plano. O valor consiste de pares \"localization\":\"plan name\"."
              }
            ]
          },
          "project_id": {
            "description": "ID de projeto.",
            "type": "integer"
          },
          "refund_period": {
            "description": "Período em que o usuário pode reembolsar o pagamento de um plano de assinatura (em dias).",
            "nullable": true,
            "type": "integer"
          },
          "status": {
            "properties": {
              "value": {
                "description": "Status do plano de assinatura.",
                "enum": [
                  "active",
                  "disabled"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "tags": {
            "description": "Rótulos do plano.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "trial": {
            "description": "Dados do período de teste.",
            "properties": {
              "type": {
                "description": "Unidade de tempo. Pode ser `day`.",
                "enum": [
                  "day"
                ],
                "type": "string"
              },
              "value": {
                "description": "Quantidade de unidades de tempo.",
                "type": "integer"
              }
            },
            "required": [
              "value",
              "type"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "SubscriptionsPlanRequest": {
        "properties": {
          "billing_retry": {
            "description": "Dados de tentativa de cobrança.",
            "properties": {
              "value": {
                "description": "Quantidade de tentativas de cobrança.",
                "type": "integer"
              }
            },
            "required": [
              "value"
            ],
            "type": "object"
          },
          "charge": {
            "description": "Dados de cobrança.",
            "properties": {
              "amount": {
                "description": "Quantia da cobrança.",
                "format": "float",
                "type": "number"
              },
              "currency": {
                "description": "Moeda da compra. Código da moeda de três letras de acordo com o [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).",
                "type": "string"
              },
              "period": {
                "description": "Período de cobrança.",
                "properties": {
                  "type": {
                    "description": "Unidade de tempo. Pode ser `day`, `month` ou `lifetime`.",
                    "enum": [
                      "day",
                      "month",
                      "lifetime"
                    ],
                    "type": "string"
                  },
                  "value": {
                    "description": "Quantidade de unidades de tempo. O valor depende do parâmetro do tipo e pode ser: <br>- entre 1 e 366, se `type` for `day` <br>- entre 1 e 12, se `type` for `month` <br>- 0 se `type` for `lifetime`",
                    "type": "integer"
                  }
                },
                "required": [
                  "value",
                  "type"
                ],
                "type": "object"
              },
              "prices": {
                "description": "Lista de preços em moedas diferentes.",
                "items": {
                  "properties": {
                    "amount": {
                      "description": "Quantia da cobrança.",
                      "format": "float",
                      "type": "number"
                    },
                    "currency": {
                      "description": "Moeda da compra. Código da moeda de três letras de acordo com o [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).",
                      "type": "string"
                    },
                    "setup_fee": {
                      "description": "Cobrança única de configuração realizada como parte da primeira fatura.",
                      "format": "float",
                      "type": "number"
                    }
                  },
                  "required": [
                    "amount",
                    "currency"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "period"
            ],
            "type": "object"
          },
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Descrição do plano. O valor consiste de pares \"localization\":\"plan description\"."
              }
            ]
          },
          "expiration": {
            "description": "Dados de término da assinatura.",
            "properties": {
              "type": {
                "description": "Unidade de tempo. Pode ser `day` ou `month`.",
                "enum": [
                  "day",
                  "month"
                ],
                "type": "string"
              },
              "value": {
                "description": "Tempo de validade.",
                "nullable": true,
                "type": "integer"
              }
            },
            "required": [
              "value",
              "type"
            ],
            "type": "object"
          },
          "external_id": {
            "description": "Planejar ID externo (32 caracteres).",
            "type": "string"
          },
          "grace_period": {
            "description": "Dados do período de carência.",
            "properties": {
              "type": {
                "description": "Unidade de tempo. Pode ser `day`.",
                "enum": [
                  "day"
                ],
                "type": "string"
              },
              "value": {
                "description": "Quantidade de unidades de tempo.",
                "type": "integer"
              }
            },
            "required": [
              "value",
              "type"
            ],
            "type": "object"
          },
          "group_id": {
            "description": "ID de grupo ao qual o plano está vinculado.",
            "type": "string"
          },
          "name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Nome do plano. O valor consiste de pares \"localization\":\"plan name\"."
              }
            ]
          },
          "refund_period": {
            "description": "Período em que o usuário pode reembolsar o pagamento de um plano de assinatura (em dias).",
            "nullable": true,
            "type": "integer"
          },
          "status": {
            "properties": {
              "value": {
                "description": "Status do plano de assinatura.",
                "enum": [
                  "active",
                  "disabled"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "tags": {
            "description": "Rótulos do plano.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "trial": {
            "description": "Dados do período de teste. Se o parâmetro não for passado, o valor padrão (0 dia) será usado.",
            "properties": {
              "type": {
                "description": "Unidade de tempo. Pode ser `day`.",
                "enum": [
                  "day"
                ],
                "type": "string"
              },
              "value": {
                "description": "Quantidade de unidades de tempo.",
                "type": "integer"
              }
            },
            "required": [
              "value",
              "type"
            ],
            "type": "object"
          }
        },
        "type": "object"
      },
      "SubscriptionsProduct": {
        "nullable": true,
        "properties": {
          "description": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LocalizedStringPairs"
              },
              {
                "description": "Descrições de itens traduzidas."
              }
            ]
          },
          "group_id": {
            "description": "ID de grupo ao qual o produto está vinculado.",
            "type": "string"
          },
          "name": {
            "description": "Nome do produto.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SubscriptionsProductWithId": {
        "allOf": [
          {
            "properties": {
              "id": {
                "description": "ID de produto aos quais os planos estão vinculados.",
                "nullable": true,
                "type": "integer"
              }
            },
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/SubscriptionsProduct"
          }
        ]
      },
      "Surcharge": {
        "properties": {
          "surcharge_amount": {
            "default": null,
            "example": "1.99",
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "surcharge_currency": {
            "default": null,
            "example": "USD",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Unused": {
        "properties": {
          "unused_amount": {
            "default": null,
            "example": "1.99",
            "format": "float",
            "nullable": true,
            "type": "number"
          },
          "unused_currency": {
            "default": null,
            "example": "USD",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "User": {
        "properties": {
          "id": {
            "description": "ID de usuário",
            "type": "string"
          },
          "name": {
            "description": "Nome de usuário",
            "type": "string"
          }
        },
        "type": "object"
      },
      "token": {
        "example": {
          "purchase": {
            "checkout": {
              "amount": 10,
              "currency": "USD"
            },
            "subscription": {
              "gift": {
                "email": "recipient_email@email.com",
                "recipient": "test_recipient_v1"
              }
            }
          },
          "settings": {
            "currency": "USD",
            "language": "en",
            "project_id": 16184,
            "ui": {
              "components": {
                "virtual_currency": {
                  "custom_amount": true
                }
              },
              "desktop": {
                "virtual_item_list": {
                  "button_with_price": true,
                  "layout": "list"
                }
              },
              "size": "medium"
            }
          },
          "user": {
            "age": 19,
            "country": {
              "allow_modify": true,
              "value": "US"
            },
            "email": {
              "value": "john.smith@mail.com"
            },
            "id": {
              "value": "user_2"
            },
            "name": {
              "value": "John Smith"
            }
          }
        },
        "properties": {
          "custom_parameters": {
            "description": "Você pode passar parâmetros adicionais no token no objeto `custom_parameters` para configurar filtros antifraude. Os parâmetros recomendados são exibidos na lista suspensa. [Veja a documentação da Estação de Pagamentos](https://developers.xsolla.com/pt/doc/pay-station/features/antifraud/).",
            "properties": {
              "active_date": {
                "description": "Última data visto, de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
                "type": "string"
              },
              "additional_verification": {
                "description": "Se o jogador utiliza procedimentos de verificação de conta ou não.",
                "type": "boolean"
              },
              "character_customized": {
                "description": "Se o jogador personalizou seu personagem ou não.",
                "type": "boolean"
              },
              "chat_activity": {
                "description": "Se o jogador utiliza a função de chat ou não.",
                "type": "boolean"
              },
              "completed_tasks": {
                "description": "Quantidade de tarefas/objetivos concluídos.",
                "type": "integer"
              },
              "forum_activity": {
                "description": "Se o jogador utiliza a função do fórum ou não.",
                "type": "boolean"
              },
              "items_used": {
                "description": "Se o jogador usa itens de jogo comprados ou não.",
                "type": "boolean"
              },
              "karma_points": {
                "description": "Karma do jogador.",
                "type": "integer"
              },
              "last_change_password_date": {
                "description": "Data da última alteração de senha, de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
                "type": "string"
              },
              "non_premium_currency": {
                "description": "Quantidade de moedas não Premium.",
                "format": "float",
                "type": "integer"
              },
              "notifications_enabled": {
                "description": "Se o jogador habilitou notificações ou não.",
                "type": "boolean"
              },
              "profile_completed": {
                "description": "Se o jogador adicionou informações adicionais ao seu perfil ou não.",
                "type": "boolean"
              },
              "profile_image_added": {
                "description": "Se o jogador enviou uma imagem de perfil nova ou não.",
                "type": "boolean"
              },
              "pvp_activity": {
                "description": "Se o jogador participa de batalhas JvJ ou não.",
                "type": "boolean"
              },
              "registration_date": {
                "description": "Data de criação da conta, de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
                "type": "string"
              },
              "session_time": {
                "description": "Tempo de sessão médio, de acordo com o [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).",
                "type": "string"
              },
              "social_networks_added": {
                "description": "Se o jogador conectou seus perfis de mídias sociais ou não.",
                "type": "boolean"
              },
              "total_bans": {
                "description": "Quantidade de vezes que o jogador foi banido do chat/fórum.",
                "type": "integer"
              },
              "total_characters": {
                "description": "Quantidade de personagens no jogo.",
                "type": "integer"
              },
              "total_clans": {
                "description": "Quantidade de clãs dos quais o jogador fez parte.",
                "type": "integer"
              },
              "total_friends": {
                "description": "Quantidade de amigos.",
                "type": "integer"
              },
              "total_game_events": {
                "description": "Quantidade de eventos no jogo dos quais o jogador participou.",
                "type": "integer"
              },
              "total_gifts": {
                "description": "Quantidade de presentes no jogo que o jogador enviou/recebeu.",
                "type": "integer"
              },
              "total_hours": {
                "description": "Tempo total de horas no jogo.",
                "type": "integer"
              },
              "total_inventory_value": {
                "description": "Valor total do inventário (moeda do jogo).",
                "format": "float",
                "type": "integer"
              },
              "total_sum": {
                "description": "Quantia total de pagamentos.",
                "format": "float",
                "type": "integer"
              },
              "tutorial_completed": {
                "description": "Se o jogador concluiu o tutorial do jogo ou não.",
                "type": "boolean"
              },
              "unlocked_achievements": {
                "description": "Quantidade de conquistas desbloqueadas.",
                "type": "integer"
              },
              "user_level": {
                "description": "Nível, reputação ou classificação do jogador.",
                "type": "integer"
              },
              "win_rate": {
                "description": "Taxa de vitórias.",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "purchase": {
            "description": "Objeto que contém dados de compra.",
            "properties": {
              "checkout": {
                "description": "Objeto que contém dados de pagamento.",
                "properties": {
                  "amount": {
                    "description": "Quantia de compra.",
                    "format": "float",
                    "type": "integer"
                  },
                  "currency": {
                    "description": "Moeda da compra. Código da moeda de três letras de acordo com o [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "subscription": {
                "description": "Dados de assinatura.",
                "properties": {
                  "available_plans": {
                    "description": "Planos de assinatura para exibir na interface de pagamento.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "currency": {
                    "description": "Moeda do plano de assinatura a ser utilizado em todos os cálculos.",
                    "type": "string"
                  },
                  "gift": {
                    "description": "Informações sobre vale-assinatura.",
                    "properties": {
                      "anonymous": {
                        "description": "Se esconder o nome do remetente. Se `true`, o nome do remetente ficará oculto na notificação por e-mail. O padrão é `false`.",
                        "type": "boolean"
                      },
                      "email": {
                        "description": "E-mail do destinatário.",
                        "type": "string"
                      },
                      "message": {
                        "description": "Mensagem para o destinatário.",
                        "type": "string"
                      },
                      "recipient": {
                        "description": "ID do destinatário.",
                        "type": "string"
                      },
                      "redirect_url": {
                        "description": "Fornece um link para uma página com mais informações sobre o vale-assinatura ou para a página de criação de conta. O destinatário pode navegar até esta página a partir do e-mail de notificação.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "recipient",
                      "email"
                    ],
                    "type": "object"
                  },
                  "operation": {
                    "description": "O tipo de operação aplicado ao plano de assinatura do usuário. Para alterar o plano de assinatura, passe o valor `change_plan`. Você precisa especificar o novo ID de plano no parâmetro `purchase.subscription.plan_id`.",
                    "type": "string"
                  },
                  "plan_id": {
                    "description": "ID externo do plano de assinatura. Pode ser encontrado na seção **Assinaturas > Planos de assinatura** da Conta de Distribuidor.",
                    "type": "string"
                  },
                  "product_id": {
                    "description": "ID de produto.",
                    "type": "string"
                  },
                  "trial_days": {
                    "description": "O período de teste em dias.",
                    "type": "integer"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "settings": {
            "description": "Configurações do projeto personalizadas.",
            "properties": {
              "currency": {
                "description": "Moeda de compra preferencial. Código da moeda de três letras de acordo com o [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).",
                "type": "string"
              },
              "external_id": {
                "description": "ID de transação no jogo. Precisa ser único para cada pagamento de um usuário.",
                "type": "string"
              },
              "language": {
                "description": "Idioma da interface. [Código de idioma](https://developers.xsolla.com/pt/doc/pay-station/features/localization/) de duas letras minúsculas.",
                "type": "string"
              },
              "mode": {
                "description": "Defina como `sandbox` para testar o processo de pagamento. Nesse caso, use *https://sandbox-secure.xsolla.com* para acessar a interface de pagamento de testes.",
                "type": "string"
              },
              "payment_method": {
                "description": "ID de método de pagamento.",
                "type": "integer"
              },
              "payment_widget": {
                "description": "Widget de pagamento. Pode ser `paybycash` ou `giftcard`. Se o parâmetro for definido, o usuário é redirecionado ao widget Pay by Cash ou Gift Cards, respectivamente.",
                "enum": [
                  "paybycash",
                  "giftcard"
                ],
                "type": "string"
              },
              "project_id": {
                "description": "ID Xsolla do jogo. Pode ser encontrado na Conta de Distribuidor.",
                "type": "integer"
              },
              "redirect_policy": {
                "description": "Configurações das políticas de redirecionamento.",
                "properties": {
                  "autoredirect_from_status_page": {
                    "description": "Se o usuário deve ser redirecionado automaticamente da página de status ou não.",
                    "type": "boolean"
                  },
                  "delay": {
                    "description": "Atraso (em segundos) após o qual o usuário é redirecionado automaticamente para o URL de retorno.",
                    "type": "integer"
                  },
                  "manual_redirection_action": {
                    "description": "Comportamento do Portal de Pagamentos acionado pelo usuário ao clicar no botão fechar ou **Voltar ao jogo**. Pode ser `redirect` (por padrão) e `postmessage`. Se definido como `redirect`, o usuário é redirecionado ao URL passado no token ou especificado na Conta de Distribuidor. Se for `postmessage`, o usuário não é redirecionado para outras páginas. Ao clicar no ícone de fechar, o evento `close` é enviado. Ao clicar no botão **Voltar ao jogo**, o evento `return` é enviado.",
                    "enum": [
                      "redirect",
                      "postmessage"
                    ],
                    "type": "string"
                  },
                  "redirect_button_caption": {
                    "description": "Texto no botão para o redirecionamento manual.",
                    "type": "string"
                  },
                  "redirect_conditions": {
                    "description": "Status de pagamento para o qual um usuário é redirecionado ao URL de retorno. Pode ser `none`, `successful`, `successful_or_canсeled`, ou `any`.",
                    "enum": [
                      "none",
                      "successful",
                      "successful_or_canceled",
                      "any"
                    ],
                    "type": "string"
                  },
                  "status_for_manual_redirection": {
                    "description": "Status de pagamento para o qual um botão que redireciona o usuário ao URL de retorno é exibido. Pode ser `none`, `successful`, `successful_or_canсeled`, ou `any`.",
                    "enum": [
                      "none",
                      "successful",
                      "successful_or_canceled",
                      "any"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "return_url": {
                "description": "Página para redirecionar o usuário após um pagamento. Os parâmetros `user_id`, `foreigninvoice`, `invoice_id` e `status` serão adicionados automaticamente ao link.",
                "type": "string"
              },
              "ui": {
                "description": "Configurações da interface.",
                "properties": {
                  "components": {
                    "description": "Configurações do menu.",
                    "properties": {
                      "subscriptions": {
                        "description": "Configurações do submenu dos planos de assinatura.",
                        "properties": {
                          "hidden": {
                            "description": "Se o submenu deve ser exibido ou não.",
                            "type": "boolean"
                          },
                          "order": {
                            "description": "Posição do submenu no menu.",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "virtual_currency": {
                        "description": "Moeda virtual das configurações do submenu.",
                        "properties": {
                          "custom_amount": {
                            "description": "Se o usuário pode inserir uma quantia arbitrária da moeda virtual na interface de pagamento ou não.",
                            "type": "boolean"
                          },
                          "hidden": {
                            "description": "Se o submenu deve ser exibido ou não.",
                            "type": "boolean"
                          },
                          "order": {
                            "description": "Posição do submenu no menu.",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "virtual_items": {
                        "description": "Configurações de itens virtuais do submenu.",
                        "properties": {
                          "hidden": {
                            "description": "Se o submenu deve ser exibido ou não.",
                            "type": "boolean"
                          },
                          "order": {
                            "description": "Posição do submenu no menu.",
                            "type": "integer"
                          },
                          "selected_group": {
                            "description": "Grupo a ser exibido depois de abrir a aba de itens virtuais.",
                            "type": "string"
                          },
                          "selected_item": {
                            "description": "Item a ser exibido depois de abrir a aba de itens virtuais (SKU do item).",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "desktop": {
                    "description": "Configurações de interface para a versão desktop.",
                    "properties": {
                      "header": {
                        "description": "Configurações de cabeçalho.",
                        "properties": {
                          "close_button": {
                            "description": "Se o botão Fechar no Portal de Pagamentos para o desktop deve ser exibido ou não. O botão fecha o Portal de Pagamentos e redireciona o usuário para o URL especificado no parâmetro `settings.return_url`. `false` por padrão.",
                            "type": "boolean"
                          },
                          "is_visible": {
                            "description": "Se o cabeçalho na interface de pagamento deve ser exibido ou não.",
                            "type": "boolean"
                          },
                          "type": {
                            "description": "Como mostrar o cabeçalho. Pode ser `compact` (oculta o nome do projeto e ID do usuário) ou `normal` (padrão).",
                            "enum": [
                              "compact",
                              "normal"
                            ],
                            "type": "string"
                          },
                          "visible_logo": {
                            "description": "Se `true`, o cabeçalho exibirá seu logotipo (primeiro, forneça a imagem do seu Gerente de Sucesso do Cliente).",
                            "type": "boolean"
                          },
                          "visible_name": {
                            "description": "Se o nome do projeto deve ser exibido no cabeçalho ou não.",
                            "type": "boolean"
                          },
                          "visible_purchase": {
                            "description": "Se a descrição da compra (`purchase.description.value`) deve ser exibida no cabeçalho ou não. `true` por padrão.",
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "subscription_list": {
                        "description": "Configurações para a lista de planos de assinatura.",
                        "properties": {
                          "description": {
                            "description": "Qualquer texto para ser exibido acima da lista de planos de assinatura disponíveis na interface de pagamento.",
                            "type": "string"
                          },
                          "display_local_price": {
                            "description": "Se `true`, se se a moeda local do usuário for diferente da definida no plano de assinatura, o usuário poderá ver ambos preços: um na moeda local, o outro na moeda básica.",
                            "type": "boolean"
                          },
                          "layout": {
                            "description": "Modelo de lista. Pode ser `list` (padrão) ou `grid`.",
                            "enum": [
                              "list",
                              "grid"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "virtual_currency_list": {
                        "description": "Configurações para a lista de moedas virtuais.",
                        "properties": {
                          "button_with_price": {
                            "description": "Se `true`, o preço será exibido no botão. Se `false`, o preço será exibido do lado esquerdo do botão. `false` por padrão.",
                            "type": "boolean"
                          },
                          "description": {
                            "description": "Qualquer texto a ser exibido acima da lista de moedas virtuais.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "virtual_item_list": {
                        "description": "Configurações da lista de itens virtuais.",
                        "properties": {
                          "button_with_price": {
                            "description": "Se `true`, o preço será exibido no botão. Se `false`, o preço será exibido do lado esquerdo do botão. `false` por padrão.",
                            "type": "boolean"
                          },
                          "layout": {
                            "description": "Modelo de lista. Pode ser `list` (padrão) ou `grid`.",
                            "enum": [
                              "list",
                              "grid"
                            ],
                            "type": "string"
                          },
                          "view": {
                            "description": "Exibe grupos de itens virtuais em um menu vertical/horizontal. Pode ser `horizontal_navigation` ou `vertical_navigation` (padrão).",
                            "enum": [
                              "horizontal_navigation",
                              "vertical_navigation"
                            ],
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  "header": {
                    "properties": {
                      "visible_virtual_currency_balance": {
                        "description": "Se esse elemento pode ser ocultado ou não na interface de pagamento. `true` por padrão.",
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  },
                  "is_prevent_external_link_open": {
                    "description": "Se os links de redirecionamento a recursos externos podem ou não ser desativados. `true` por padrão. Ao clicar em um link externo, o evento `external-link-open` é enviado através do mecanismo `postMessage`. O endereço para o link redirecionado é passado no parâmetro `url`.",
                    "type": "boolean"
                  },
                  "license_url": {
                    "description": "Link ao CLUA.",
                    "type": "string"
                  },
                  "mobile": {
                    "properties": {
                      "footer": {
                        "properties": {
                          "is_visible": {
                            "description": "Se o rodapé deve ser oculto na vesão móvel da interface de pagamento.",
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "header": {
                        "properties": {
                          "close_button": {
                            "description": "Se o botão Fechar no Portal de Pagamentos para dispositivos móveis deve ser exibido ou não. O botão fecha o Portal de Pagamentos e redireciona o usuário para o URL especificado no parâmetro `settings.return_url`. `false` por padrão.",
                            "type": "boolean"
                          }
                        },
                        "type": "object"
                      },
                      "mode": {
                        "description": "Um usuário só pode pagar usando os métodos de pagamento salvos. Pode ser `saved_accounts`.",
                        "enum": [
                          "saved_accounts"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "mode": {
                    "description": "Modo de interface no Portal de Pagamentos. Pode ser apenas `user_account`. O cabeçalho contém apenas o menu de navegação da conta, e o usuário não pode selecionar um produto ou fazer um pagamento. Esse modo só está disponível no desktop.",
                    "type": "string"
                  },
                  "size": {
                    "description": "Tamanho da interface de pagamento. Pode ser:\n  - [pequeno](https://livedemo.xsolla.com/developers/small/): o menor tamanho possível para a interface de pagamento. Use esse valor quando o tamanho da janela for consideravelmente limitado (dimensões: 620 x 630)\n  - [médio](https://livedemo.xsolla.com/developers/medium/): o tamanho recomendado. Use esse valor para exibir a interface de pagamento em uma caixa de luz (lightbox) (dimensões: 740 x 760)\n  - [grande](https://livedemo.xsolla.com/developers/large/): o tamanho ideal para exibir a interface de pagamento em uma nova janela ou aba (dimensões: 820 x 840)",
                    "enum": [
                      "small",
                      "medium",
                      "large"
                    ],
                    "type": "string"
                  },
                  "theme": {
                    "description": "Tema da interface de pagamento. Pode ser `default` ou `default_dark`.",
                    "enum": [
                      "default",
                      "default_dark"
                    ],
                    "type": "string"
                  },
                  "user_account": {
                    "description": "Dados da conta do usuário.",
                    "properties": {
                      "history": {
                        "allOf": [
                          {
                            "description": "Submenu **Histórico**."
                          },
                          {
                            "properties": {
                              "enable": {
                                "description": "Se o submenu deve ser exibido ou não. `false` por padrão.",
                                "type": "boolean"
                              },
                              "order": {
                                "description": "Posição do submenu no menu.",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        ]
                      },
                      "info": {
                        "allOf": [
                          {
                            "description": "Página **Minha conta**."
                          },
                          {
                            "properties": {
                              "enable": {
                                "description": "Se o submenu deve ser exibido ou não. `false` por padrão.",
                                "type": "boolean"
                              },
                              "order": {
                                "description": "Posição do submenu no menu.",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        ]
                      },
                      "payment_accounts": {
                        "allOf": [
                          {
                            "description": "Submenu **Minhas contas de pagamento**."
                          },
                          {
                            "properties": {
                              "enable": {
                                "description": "Se o submenu deve ser exibido ou não. `false` por padrão.",
                                "type": "boolean"
                              },
                              "order": {
                                "description": "Posição do submenu no menu.",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        ]
                      },
                      "subscriptions": {
                        "allOf": [
                          {
                            "description": "Submenu **Gerenciar assinaturas**."
                          },
                          {
                            "properties": {
                              "enable": {
                                "description": "Se o submenu deve ser exibido ou não. `false` por padrão.",
                                "type": "boolean"
                              },
                              "order": {
                                "description": "Posição do submenu no menu.",
                                "type": "integer"
                              }
                            },
                            "type": "object"
                          }
                        ]
                      }
                    },
                    "type": "object"
                  },
                  "version": {
                    "description": "Tipo de dispositivo. Pode ser `desktop` (padrão) ou `mobile`.",
                    "enum": [
                      "desktop",
                      "mobile"
                    ],
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "project_id"
            ],
            "type": "object"
          },
          "user": {
            "description": "Dados do usuário.",
            "properties": {
              "age": {
                "description": "Idade do usuário.",
                "type": "integer"
              },
              "attributes": {
                "description": "Os atributos do usuário por filtrar a lista de itens, representado como um conjunto JSON válido de pares de valores-chave.",
                "type": "object"
              },
              "country": {
                "properties": {
                  "allow_modify": {
                    "description": "Se um usuário pode alterar o país na interface de pagamento. Se `country.value` for passado no token, o valor será `false` por padrão.",
                    "type": "boolean"
                  },
                  "value": {
                    "description": "Código de país de duas letras maiúsculas, de acordo com o [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "email": {
                "description": "O objeto `user.email` é uma parte integral para a construção de modelos antifraude e ajuda a aumentar as taxas de aceitação. É um requisito tanto da Xsolla quanto dos sistemas de pagamento. Se o parâmetro não for passado, o campo necessário para inserir o e-mail aparece na página de pagamento. O usuário recebe o recibo da compra no e-mail passado no parâmetro ou no definido na página de pagamento.",
                "properties": {
                  "value": {
                    "description": "E-mail do usuário. Deve ser válido, de acordo com o protocolo [RFC 822](https://www.w3.org/Protocols/rfc822/#z8).",
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ],
                "type": "object"
              },
              "id": {
                "properties": {
                  "value": {
                    "description": "ID de usuário.",
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ],
                "type": "object"
              },
              "is_legal": {
                "description": "Se o usuário é uma entidade legal.",
                "type": "boolean"
              },
              "legal": {
                "allOf": [
                  {
                    "description": "Objeto com dados da entidade legal. O objeto e todos os seus parâmetros são necessários se `user.is_legal` for `true`. "
                  },
                  {
                    "description": "Objeto com dados da entidade legal.",
                    "properties": {
                      "address": {
                        "description": "Endereço legal completo.",
                        "type": "string"
                      },
                      "country": {
                        "description": "País da incorporação. É utilizado o código de país de duas letras maiúsculas, de acordo com o [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).",
                        "type": "string"
                      },
                      "name": {
                        "description": "Nome legal completo.",
                        "type": "string"
                      },
                      "vat_id": {
                        "description": "Identificação de contribuinte individual. ",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                ]
              },
              "name": {
                "properties": {
                  "value": {
                    "description": "Nome de exibição do usuário.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "phone": {
                "properties": {
                  "value": {
                    "description": "Número de telefone do usuário.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "public_id": {
                "properties": {
                  "value": {
                    "description": "Um parâmetro único que identifica o usuário, conhecido pelo usuário (e-mail, nome de exibição, etc.). Permite que o usuário faça compras fora da loja do jogo (exemplo: via quiosques de dinheiro).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "steam_id": {
                "properties": {
                  "value": {
                    "description": "ID do Steam.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "tracking_id": {
                "properties": {
                  "value": {
                    "description": "ID de rastreamento único (usado em campanhas de marketing).",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "utm": {
                "description": "Atributos de tráfego.",
                "properties": {
                  "utm_campaign": {
                    "description": "Título da campanha, transliterado ou traduzido para Inglês.",
                    "type": "string"
                  },
                  "utm_content": {
                    "description": "Conteúdo da campanha.",
                    "type": "string"
                  },
                  "utm_medium": {
                    "description": "Canal de tráfego (anúncios contextuais, anúncios de mídia, listas de e-mail, etc.).",
                    "type": "string"
                  },
                  "utm_source": {
                    "description": "Fonte de tráfego.",
                    "type": "string"
                  },
                  "utm_term": {
                    "description": "Palavra-chave da campanha. Se definida, os atributos serão feitos com base nas palavras-chaves usadas na segmentação de anúncios, em vez de buscas específicas. No Google Analytics, o `utm_term` especificado é parte do relatório de termos de busca gerais.",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "description": "O Xsolla API utiliza autenticações de acesso básica. Todas as solicitações ao API devem conter o cabeçalho `Authorization: Basic <your_authorization_basic_key>`, onde `<your_authorization_basic_key>` é o par `merchant_id:api_key` codificado de acordo com o padrão Base64.\n\n Vá para a [Conta de Distribuidor](https://publisher.xsolla.com/) para encontrar esses parâmetros:<ul><li>O `merchant_id` é exibido:<ul><li>Na seção <b>Configurações da empresa > Empresa</b>.</li><li>No URL na barra de endereço do navegador em qualquer página da Conta de Distribuidor. O URL tem o seguinte formato: `https://publisher.xsolla.com/<merchant_id>`.</li></ul></li><li>A `api_key` é exibida na Conta de Distribuidor somente uma vez durante sua crição, e deve ser armazenada manualmente. Você pode criar uma nova chave na seguinte seção:<ul><li><b>Configurações da empresa > Chaves API</b>.</li><li><b>Configurações do projeto > Chaves API</b>.</li></ul></li></ul><br>\n Para saber mais sobre como trabalhar com as chaves API, veja a [referência API](https://developers.xsolla.com/pt/api/getting-started/#api_keys_overview).",
        "scheme": "basic",
        "type": "http"
      },
      "subscriptionsManagementJwtAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "# Visão geral\n\n* **Versão:** 2.0\n* **Servidores**: `https://api.xsolla.com/merchant/v2/`\n\nEssa referência API descreve os pontos de extremidade na gerência de assinaturas, cupons e promoções.\nPara obter mais informações sobre as Assinaturas, veja o [guia do produto](https://developers.xsolla.com/pt/doc/subscriptions) e o [glossário](https://developers.xsolla.com/pt/doc/subscriptions/integration-guide/get-started/#general_glossary).",
    "title": "Subscriptions API",
    "version": "2.0"
  },
  "openapi": "3.0.0",
  "paths": {
    "/api/user/v1/management/projects/{project_id}/subscriptions": {
      "get": {
        "operationId": "list-subscriptions",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListManagementSubscriptionsResponse"
                }
              }
            },
            "description": "Get subscriptions info"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.bad_request",
                    "description": "Incorrect limit value, maximum allowed is 100"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "List subscriptions",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/settings": {
      "get": {
        "operationId": "get-management-settings",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectManageSubscriptionSettingsResponse"
                }
              }
            },
            "description": "Returns project settings for managing subscription"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.access_denied",
                    "description": "You don't have access to requested project or resource."
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Project not found"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Retrieving data from cache has failed."
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Get management settings",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}": {
      "get": {
        "operationId": "get-management-subscription",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagementSubscriptionResponse"
                }
              }
            },
            "description": "Get subscription info"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Project with id = 123 was not found"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription not found"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Get subscription",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/activate": {
      "put": {
        "operationId": "activate-subscription",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "status": "successful"
                }
              }
            },
            "description": "Move subscription from non-renew to active"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.bad_request",
                    "description": "Subscription is not allowed to change to active"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription not found"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Activate subscription",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/cancel": {
      "put": {
        "operationId": "cancel-subscription",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "Make subscription non-renewable"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_active",
                    "description": "Subscription is not active"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription not found"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Cancel subscription",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/change_plan": {
      "post": {
        "operationId": "get-change-plan-link",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "plan_external_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sandbox",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayStationLinkResponse"
                }
              }
            },
            "description": "Returns link to change subscription plan"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Change plan is not possible"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "ubscription with id = 123 not found or not belongs to user"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Publisher API request failed"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Get change plan link",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/payment_account": {
      "get": {
        "operationId": "get-payment-account",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentRecurrentAccountResponse"
                }
              }
            },
            "description": "Get payment account info"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "data.not_found",
                    "description": "Data not found"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Get payment account",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/payment_account/manage": {
      "post": {
        "operationId": "manage-payment-account",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "sandbox",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayStationLinkResponse"
                }
              }
            },
            "description": "Returns link for managing payment accounts"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Token retrieve error"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription with id = 123 not found or not belongs to user"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Publisher API request failed"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Manage payment account",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/payment_accounts": {
      "get": {
        "operationId": "list-payment-accounts",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingAccountsListResponse"
                }
              }
            },
            "description": "Returns the user's billing accounts"
          },
          "403": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.access_denied",
                    "description": "You don't have access to requested project or resource."
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription with id = 123 not found or not belongs to user"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Publisher API request failed."
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "List payment accounts",
        "tags": [
          "subscription-management"
        ]
      },
      "post": {
        "operationId": "link-payment-account",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "payment_account_id",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "status": "successful"
                }
              }
            },
            "description": "Links a payment account to a subscription"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "This account is already linked"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription with id = 123 not found or not belongs to user"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Publisher API request failed"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Link payment account",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/payment_accounts/{payment_account_id}": {
      "delete": {
        "operationId": "unlink-payment-account",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "payment_account_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "status": "successful"
                }
              }
            },
            "description": "Unlink payment accounts"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription with id = 123 not found or not belongs to user"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          },
          "500": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Error saving data"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Unlink payment account",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/plans_for_change": {
      "get": {
        "operationId": "list-plans-for-change",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPlansResponse"
                }
              }
            },
            "description": "List of available plans for change"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Incorrect limit value, maximum allowed is 100"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription with id = 123 not found or not belongs to user"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "List plans for change",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/api/user/v1/management/projects/{project_id}/subscriptions/{subscription_id}/plans_for_change/{plan_id}": {
      "get": {
        "operationId": "get-plan-for-change",
        "parameters": [
          {
            "in": "path",
            "name": "subscription_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "plan_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "locale",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangePlanPaymentDetailsResponse"
                }
              }
            },
            "description": "Available plans for change with payment details"
          },
          "400": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.exception",
                    "description": "Change plan is not possible"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Bad request"
          },
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "error": {
                    "code": "subscriptions.not_found",
                    "description": "Subscription with id = 123 not found or not belongs to user"
                  },
                  "request_id": "e54d2081-33cc-4682-b65c-b22d98686d0a"
                }
              }
            },
            "description": "Not found"
          }
        },
        "security": [
          {
            "subscriptionsManagementJwtAuth": []
          }
        ],
        "summary": "Get plan for change",
        "tags": [
          "subscription-management"
        ]
      },
      "servers": [
        {
          "url": "https://subscriptions.xsolla.com"
        }
      ]
    },
    "/merchants/{merchant_id}/coupon_promotions": {
      "post": {
        "description": "Você precisa revisar uma promoção antes de ativá-la. Este método retorna a lista de erros, se houver.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "create-campaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "campaign_code": "sample_campaign",
                "campaign_names": {
                  "en": "Campaign Name",
                  "ru": "Название кампании"
                },
                "campaign_redeems_count_for_user": 1,
                "expiration_date": "2019-12-31",
                "project_id": 12345,
                "redeems_count": 10,
                "redeems_count_for_user": 1,
                "subscription_coupon": {
                  "plan_id": 123,
                  "product_id": 456,
                  "trial_period": 30
                },
                "virtual_currency_amount": 200
              },
              "schema": {
                "allOf": [
                  {
                    "required": [
                      "campaign_code",
                      "project_id",
                      "campaign_names"
                    ]
                  },
                  {
                    "$ref": "#/components/schemas/Campaign"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "id": {
                      "example": 9134,
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Criado."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Criar Campanha",
        "tags": [
          "coupons"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/coupon_promotions/{campaign_id}/coupons": {
      "post": {
        "description": "Adicione um código de cupom a uma campanha de cupom.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "add-coupon-to-campaign",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/campaign-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "coupon_code": {
                    "description": "Código de cupom.",
                    "example": "34bryrb3",
                    "type": "string"
                  }
                },
                "required": [
                  "coupon_code"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Adicionar Cupom à Campanha",
        "tags": [
          "coupons"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions": {
      "get": {
        "description": "Lista de todas as promoções.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "get-promotions-list",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "datetime": {
                      "from": "2020-02-01T00:00:00+04:00",
                      "to": "2020-11-30T01:28:42+04:00"
                    },
                    "enabled": true,
                    "id": 17840,
                    "is_active": true,
                    "is_infinite": false,
                    "project": {
                      "id": 12345,
                      "localized_name": "Christmas sale"
                    },
                    "read_only": false,
                    "technical_name": "christmas"
                  },
                  {
                    "datetime": null,
                    "enabled": false,
                    "id": 17891,
                    "is_active": false,
                    "is_infinite": true,
                    "project": {
                      "id": 12345,
                      "localized_name": "30% discount"
                    },
                    "read_only": false,
                    "technical_name": "Sale promotion"
                  }
                ]
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Lista de Promoções",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "post": {
        "description": "Crie uma nova promoção.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "create-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "description": {
                  "en": "Promotion with 30% discount",
                  "ru": "Акция со скидкой 30%"
                },
                "label": {
                  "en": "30%",
                  "ru": "30%"
                },
                "name": {
                  "en": "30% discount",
                  "ru": "скидка 30%"
                },
                "project_id": 12345,
                "technical_name": "Sale promotion"
              },
              "schema": {
                "allOf": [
                  {
                    "required": [
                      "project_id",
                      "technical_name"
                    ]
                  },
                  {
                    "$ref": "#/components/schemas/GetPromotion"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "id": 17890
                },
                "schema": {
                  "properties": {
                    "id": {
                      "description": "ID de promoção.",
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Criado."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Criar Promoção",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}": {
      "delete": {
        "description": "Exclui uma promoção. Você só pode excluir promoções com `enabled` = `false`.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "delete-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Excluir Promoção",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "get": {
        "description": "Recupera uma promoção.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "get-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "description": {
                    "en": "Promotion with 30% discount",
                    "ru": "Акция со скидкой 30%"
                  },
                  "enabled": false,
                  "id": 17890,
                  "label": {
                    "en": "30%",
                    "ru": "30%"
                  },
                  "name": {
                    "en": "30% discount",
                    "ru": "Скидка 30%"
                  },
                  "project_id": 40544,
                  "read_only": false,
                  "show_banner": true,
                  "technical_name": "Sale promotion"
                },
                "schema": {
                  "$ref": "#/components/schemas/GetPromotion"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Promoção",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "Atualiza uma promoção. Se a promoção for somente leitura (`read_only` = `true`), você não tem permissão para alterar o parâmetro `project_id`. \n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div> ",
        "operationId": "update-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "description": {
                  "en": "Promotion with 5% discount",
                  "ru": "Акция со скидкой 5%"
                },
                "label": {
                  "en": "5%",
                  "ru": "5%"
                },
                "name": {
                  "en": "5% discount",
                  "ru": "скидка 5%"
                },
                "project_id": 40544,
                "technical_name": "Sale promotion"
              },
              "schema": {
                "allOf": [
                  {
                    "required": [
                      "project_id",
                      "technical_name"
                    ]
                  },
                  {
                    "$ref": "#/components/schemas/GetPromotion"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Atualizar Promoção",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/coupons": {
      "put": {
        "description": "Anexe uma campanha de cupom a uma promoção específica.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div> ",
        "operationId": "attach-campaign-to-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "campaigns": {
                    "description": "Matriz de IDs de campanhas.",
                    "example": [
                      9135
                    ],
                    "items": {
                      "type": "integer"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "campaigns"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Anexar Campanha à Promoção",
        "tags": [
          "coupons"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/payment_systems": {
      "get": {
        "description": "Obtém sistemas de pagamento suportados para uma promoção. Se a lista estiver vazia, a promoção será aplicada a todos os sistemas de pagamento. \n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div> ",
        "operationId": "get-payment-systems",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "id": 17840,
                  "payment_systems": [
                    {
                      "id": 27,
                      "name": "Yandex.Money"
                    }
                  ]
                },
                "schema": {
                  "allOf": [
                    {
                      "properties": {
                        "id": {
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "$ref": "#/components/schemas/PromotionPaymentSystem"
                    }
                  ]
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Sistemas de Pagamento",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "Define os sistemas de pagamento suportados para uma promoção. Se a lista estiver vazia, a promoção será aplicada a todos os sistemas de pagamento. Se a promoção for somente leitura (`read_only` = `true`), você não poderá chamar este método. \n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div> ",
        "operationId": "set-payment-systems",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "payment_systems": [
                  {
                    "id": 24,
                    "name": "PayPal"
                  }
                ]
              },
              "schema": {
                "$ref": "#/components/schemas/PromotionPaymentSystem"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Definir Sistemas de Pagamento",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/periods": {
      "get": {
        "description": "Obtém intervalos de data/hora em que uma promoção é válida.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div> ",
        "operationId": "get-validity-periods",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "id": 17840,
                  "periods": [
                    {
                      "from": "2020-02-01T00:00:00+04:00",
                      "offset": "+04:00",
                      "to": "2020-11-30T01:28:42+04:00"
                    }
                  ]
                },
                "schema": {
                  "allOf": [
                    {
                      "properties": {
                        "id": {
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "$ref": "#/components/schemas/PromotionPeriod"
                    }
                  ]
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Períodos Válidos",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "Define intervalos de data/hora quando uma promoção é válida. Se a promoção for somente leitura (`read_only` = `true`), você não poderá editar períodos existentes, mas poderá adicionar novos.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div> ",
        "operationId": "set-validity-periods",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "periods": [
                  {
                    "from": "2019-03-02T00:00:00+04:00",
                    "to": "2019-04-02T00:00:00+04:00"
                  }
                ]
              },
              "schema": {
                "$ref": "#/components/schemas/PromotionPeriod"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Definir Períodos de Validade",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/review": {
      "get": {
        "description": "Você precisa revisar uma promoção antes de ativá-la. Este método retorna a lista de erros, se houver.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "review-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "component": "rewards",
                    "message": "Please select a reward"
                  }
                ],
                "schema": {
                  "items": {
                    "properties": {
                      "component": {
                        "type": "string"
                      },
                      "message": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Revisar Promoção",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/rewards": {
      "get": {
        "description": "Obtém a lista de recompensas associadas a uma promoção.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div> ",
        "operationId": "get-rewards",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "id": 17840,
                  "item": {
                    "bonus": [
                      {
                        "id": 123456,
                        "localized_name": "T-34-3",
                        "quantity": 2,
                        "sku": "1234"
                      }
                    ],
                    "discount": [
                      {
                        "discount_percent": 5,
                        "localized_name": "T-34-3",
                        "max_amount": 10,
                        "sku": "1234"
                      }
                    ]
                  },
                  "package": {
                    "bonus_amount": 5,
                    "bonus_percent": 5
                  },
                  "purchase": {
                    "discount_percent": 10
                  },
                  "subscription": {
                    "trial_days": 30
                  }
                },
                "schema": {
                  "allOf": [
                    {
                      "properties": {
                        "id": {
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "$ref": "#/components/schemas/PromotionReward"
                    }
                  ]
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Recompensas",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "Define as recompensas para uma promoção. Se a promoção for somente leitura (`read_only` = `true`), você não poderá atualizar as recompensas.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div> ",
        "operationId": "set-rewards",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "item": {
                  "bonus": [
                    {
                      "quantity": 2,
                      "sku": "1234"
                    }
                  ],
                  "discount": [
                    {
                      "discount_percent": 5,
                      "max_amount": 10,
                      "sku": "1234"
                    }
                  ]
                },
                "package": {
                  "bonus_amount": 5,
                  "bonus_percent": 5
                },
                "purchase": {
                  "discount_percent": 10
                },
                "subscription": {
                  "trial_days": 30
                }
              },
              "schema": {
                "$ref": "#/components/schemas/PromotionReward"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Definir Recompensas",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/subject": {
      "get": {
        "description": "Obtém informações sobre o assunto de uma promoção. \n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div> ",
        "operationId": "get-subject",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "digital_contents": null,
                  "id": 178,
                  "items": [
                    {
                      "id": 1234,
                      "localized_name": "T-34-3",
                      "sku": "1234"
                    }
                  ],
                  "packages": null,
                  "purchase": false,
                  "subscriptions": null
                },
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PromotionSubject"
                    },
                    {
                      "properties": {
                        "id": {
                          "type": "integer"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Assunto",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "Define o assunto de uma promoção. Se a promoção for somente leitura (`read_only` = `true`), você não poderá atualizar o assunto. O assunto pode assumir os seguintes valores: `purchase`, ou `items`, ou `packages`. \n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "set-subject",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "digital_contents": null,
                "items": [
                  {
                    "sku": "1234"
                  }
                ],
                "packages": null,
                "purchase": false,
                "subscriptions": null
              },
              "schema": {
                "$ref": "#/components/schemas/PromotionSubject"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Definir Assunto",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/promotions/{promotion_id}/toggle": {
      "put": {
        "description": "Alterna o status de uma promoção de `enabled`para `disabled` e vice-versa.\n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "toggle-promotion",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Alternar Promoção",
        "tags": [
          "promotions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/subscriptions": {
      "get": {
        "description": "Lists all recurrent subscriptions.<div class=\"notice\"><strong>Aviso</strong><br><br>Este método de API não pode ser usado sob uma carga alta. A carga máxima é de 20 solicitações por minuto.</div> \n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "get-subscriptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/user-id-query-param"
          },
          {
            "$ref": "#/components/parameters/array-project-id-query-param"
          },
          {
            "$ref": "#/components/parameters/array-plan-id-query-param"
          },
          {
            "$ref": "#/components/parameters/array-product-id-query-param"
          },
          {
            "$ref": "#/components/parameters/array-group-id-query-param"
          },
          {
            "$ref": "#/components/parameters/status-query-param-array"
          },
          {
            "$ref": "#/components/parameters/datetime-from-query-param"
          },
          {
            "$ref": "#/components/parameters/datetime-to-query-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "charge_amount": 0.03,
                    "currency": "USD",
                    "date_create": "2013-09-05T15:27:47+04:00",
                    "date_end": "2014-02-06T11:32:48+04:00",
                    "date_last_charge": null,
                    "date_next_charge": null,
                    "id": 45,
                    "plan": {
                      "id": 12345,
                      "project_id": 12345
                    },
                    "product": {
                      "id": null
                    },
                    "status": "canceled",
                    "user": {
                      "id": "User1",
                      "name": "John Smith"
                    }
                  }
                ],
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SubscriptionResponse"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Assinaturas",
        "tags": [
          "subscriptions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/merchants/{merchant_id}/token": {
      "post": {
        "description": "Você pode criar um token com parâmetros de usuário arbitrários. Você envia esses parâmetros ao obter o token e os recebe de volta após um pagamento bem-sucedido. Um token só pode conter parâmetros descritos neste documento ou predefinidos por você.\n\nSe algum parâmetro for enviado no formato errado ou tiver o tipo errado, nenhum token será emitido. Você receberá um código HTTP 422 com a descrição do erro no corpo JSON. Em `extended_message` você receberá uma informação sobre quais parâmetros exatos foram enviados incorretamente. \n<div class=\"notice\">\n  <p><strong>Aviso</strong></p><p>Esta chamada de API não contém o trajeto-parâmetro <code>project_id</code>, então é preciso usar a chave API que for válida em todos os projetos da empresa para configurar a autorização.</p>\n</div>",
        "operationId": "create-token",
        "parameters": [
          {
            "$ref": "#/components/parameters/merchant-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/token"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
                },
                "schema": {
                  "properties": {
                    "token": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Criado."
          },
          "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/pt/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": "O objeto contém os nomes dos parâmetros com descrições de erros.",
                          "type": "object"
                        }
                      },
                      "type": "object"
                    },
                    "http_status_code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "request_id": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Entidade não processável."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Criar token",
        "tags": [
          "token"
        ],
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/coupons/{code}/details": {
      "get": {
        "description": "Obter dados do cupom com o código dele.",
        "operationId": "get-coupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/code-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "key": "12",
                  "list_of_values": [],
                  "name": {
                    "en": "Level",
                    "ru": "Уровень"
                  },
                  "skip_condition_on_nonexistent_key": true,
                  "type": "int",
                  "visible": false
                },
                "schema": {
                  "$ref": "#/components/schemas/CouponAttribute"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obet Cupom",
        "tags": [
          "coupons"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/coupons/{code}/redeem": {
      "post": {
        "description": "Resgate um cupom com o código dele.",
        "operationId": "redeem-coupon",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/code-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "user_id": {
                    "description": "ID de usuário.",
                    "example": "1234",
                    "type": "string"
                  }
                },
                "required": [
                  "user_id"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "campaign_code": "new_campaign",
                  "coupon_code": "ddgf5bn4",
                  "coupon_id": 89613996,
                  "expiration_date": "2019-12-31T00:00:00+00:00",
                  "is_active": true,
                  "project_id": 12345,
                  "redeems_count_for_user": 10,
                  "redeems_count_remain": 20,
                  "subscription_coupon": null,
                  "virtual_currency_amount": 200,
                  "virtual_items": []
                },
                "schema": {
                  "$ref": "#/components/schemas/Coupon"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Resgatar Cupom",
        "tags": [
          "coupons"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/currencies": {
      "get": {
        "description": "Lista todas as moedas de assinatura suportadas.",
        "operationId": "get-currencies",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  "AED",
                  "ALL",
                  "AMD",
                  "ARS",
                  "AUD",
                  "AZN",
                  "BAM",
                  "BBD",
                  "BGN",
                  "BHD",
                  "BND",
                  "BRL",
                  "BYN",
                  "BZD",
                  "CAD",
                  "CHF",
                  "CLP",
                  "CNY",
                  "COP",
                  "CRC",
                  "CZK",
                  "DKK",
                  "DZD",
                  "EGP",
                  "EUR",
                  "GBP",
                  "GEL",
                  "GHS",
                  "GIP",
                  "GTQ",
                  "HKD",
                  "HRK",
                  "HUF",
                  "IDR",
                  "ILS",
                  "INR",
                  "IQD",
                  "IRR",
                  "ISK",
                  "JMD",
                  "JOD",
                  "JPY",
                  "KES",
                  "KGS",
                  "KRW",
                  "KWD",
                  "KZT",
                  "LAK",
                  "LBP",
                  "LKR",
                  "MAD",
                  "MDL",
                  "MKD",
                  "MMK",
                  "MNT",
                  "MUR",
                  "MXN",
                  "MYR",
                  "NGN",
                  "NIO",
                  "NOK",
                  "NPR",
                  "NZD",
                  "OMR",
                  "PAB",
                  "PEN",
                  "PHP",
                  "PKR",
                  "PLN",
                  "PYG",
                  "QAR",
                  "RON",
                  "RSD",
                  "RUB",
                  "SAR",
                  "SEK",
                  "SGD",
                  "SVC",
                  "THB",
                  "TND",
                  "TRY",
                  "TWD",
                  "UAH",
                  "USD",
                  "UYU",
                  "UZS",
                  "VEF",
                  "VND",
                  "XOF",
                  "YER",
                  "ZAR"
                ]
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Moedas",
        "tags": [
          "payments"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/payments": {
      "get": {
        "description": "Lista todos os pagamentos de assinaturas.",
        "operationId": "get-payments",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/user-id-query-param"
          },
          {
            "$ref": "#/components/parameters/status-id-query-param"
          },
          {
            "$ref": "#/components/parameters/datetime-from-query-param2"
          },
          {
            "$ref": "#/components/parameters/datetime-to-query-param2"
          },
          {
            "$ref": "#/components/parameters/subscription-id-query-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "date_payment": "2016-04-05T10:02:01+03:00",
                    "id": 67683,
                    "id_payment": 203960,
                    "status": "fail",
                    "subscription": {
                      "charge_amount": 1,
                      "comment": null,
                      "currency": "RUB",
                      "date_create": "2015-05-28T14:33:54+03:00",
                      "date_end": "2016-04-05T10:02:07+03:00",
                      "date_last_charge": "2015-06-03T16:07:29+03:00",
                      "date_next_charge": "2015-06-04T00:00:00+03:00",
                      "id": 3646,
                      "plan": {
                        "billing_retry": {
                          "value": 1
                        },
                        "charge": {
                          "amount": 1,
                          "currency": "RUB",
                          "period": {
                            "type": "day",
                            "value": 1
                          }
                        },
                        "description": null,
                        "expiration": {
                          "type": "day",
                          "value": 0
                        },
                        "external_id": "E8nJ79",
                        "grace_period": {
                          "type": "day",
                          "value": 0
                        },
                        "group_id": "charge",
                        "id": 24,
                        "localized_name": null,
                        "name": null,
                        "project_id": 12345,
                        "refund_period": null,
                        "status": {
                          "value": "deleted"
                        },
                        "tags": null,
                        "trial": {
                          "type": "day",
                          "value": 0
                        },
                        "type": "charge"
                      },
                      "product": {
                        "description": null,
                        "group_id": "charge",
                        "id": 1,
                        "name": "charge"
                      },
                      "status": "freeze",
                      "user": {
                        "id": "10",
                        "name": "user2"
                      }
                    }
                  },
                  {
                    "date_payment": "2015-09-21T17:06:47+03:00",
                    "id": 1531,
                    "id_payment": 168866,
                    "status": "done",
                    "subscription": {
                      "charge_amount": 1,
                      "comment": "  \r\n",
                      "currency": "RUB",
                      "date_create": "2015-09-21T17:06:47+03:00",
                      "date_end": null,
                      "date_last_charge": "2015-09-21T18:10:09+03:00",
                      "date_next_charge": "2015-09-22T18:10:09+03:00",
                      "id": 2004846,
                      "plan": {
                        "billing_retry": {
                          "value": 1
                        },
                        "charge": {
                          "amount": 1,
                          "currency": "RUB",
                          "period": {
                            "type": "day",
                            "value": 1
                          }
                        },
                        "description": null,
                        "expiration": {
                          "type": "day",
                          "value": 0
                        },
                        "external_id": "E8nX9",
                        "grace_period": {
                          "type": "day",
                          "value": 0
                        },
                        "group_id": "charge",
                        "id": 200,
                        "localized_name": null,
                        "name": null,
                        "project_id": 70,
                        "refund_period": null,
                        "status": {
                          "value": "deleted"
                        },
                        "tags": null,
                        "trial": {
                          "type": "day",
                          "value": 0
                        },
                        "type": "charge"
                      },
                      "product": null,
                      "status": "new",
                      "user": {
                        "id": "12",
                        "name": "user1"
                      }
                    }
                  }
                ]
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Pagamentos",
        "tags": [
          "payments"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/plans": {
      "get": {
        "description": "Lista todos os planos de assinaturas.",
        "operationId": "get-plans",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/plan-id-query-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/external-id-query-param"
          },
          {
            "$ref": "#/components/parameters/group-id-query-param"
          },
          {
            "$ref": "#/components/parameters/product-id-query-param"
          },
          {
            "$ref": "#/components/parameters/query-query-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "billing_retry": {
                      "value": 1
                    },
                    "charge": {
                      "amount": 19.99,
                      "currency": "USD",
                      "period": {
                        "type": "month",
                        "value": 1
                      },
                      "prices": [
                        {
                          "amount": 17.99,
                          "currency": "EUR",
                          "setup_fee": 1.5
                        },
                        {
                          "amount": 2000,
                          "currency": "JPY",
                          "setup_fee": 2.5
                        }
                      ]
                    },
                    "description": {
                      "en": "10x more experience!"
                    },
                    "expiration": {
                      "type": "day",
                      "value": 0
                    },
                    "external_id": "3b355320",
                    "grace_period": {
                      "type": "day",
                      "value": 0
                    },
                    "group_id": null,
                    "id": 241037,
                    "localized_name": "Platinum VIP",
                    "name": {
                      "en": "Platinum VIP",
                      "fr": "Le VIP-statut platinum"
                    },
                    "project_id": 40797,
                    "refund_period": null,
                    "status": {
                      "value": "active"
                    },
                    "tags": [],
                    "trial": {
                      "type": "day",
                      "value": 0
                    }
                  },
                  {
                    "billing_retry": {
                      "value": 1
                    },
                    "charge": {
                      "amount": 9.99,
                      "currency": "USD",
                      "period": {
                        "type": "month",
                        "value": 1
                      },
                      "prices": [
                        {
                          "amount": 8,
                          "currency": "EUR",
                          "setup_fee": 1.5
                        },
                        {
                          "amount": 1000,
                          "currency": "JPY",
                          "setup_fee": 2.5
                        }
                      ]
                    },
                    "description": {
                      "en": "3x more experience!"
                    },
                    "expiration": {
                      "type": "day",
                      "value": 0
                    },
                    "external_id": "0fe1b6fc",
                    "grace_period": {
                      "type": "day",
                      "value": 0
                    },
                    "group_id": null,
                    "id": 241038,
                    "localized_name": "Gold Status",
                    "name": {
                      "en": "Gold Status",
                      "fr": "Le statut d’or"
                    },
                    "project_id": 40797,
                    "refund_period": null,
                    "status": {
                      "value": "active"
                    },
                    "tags": [],
                    "trial": {
                      "type": "day",
                      "value": 0
                    }
                  }
                ],
                "schema": {
                  "items": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/SubscriptionsPlan"
                      },
                      {
                        "properties": {
                          "localized_name": {
                            "description": "Nome do plano no idioma padrão (en), replica o valor name.en.",
                            "type": "string"
                          }
                        },
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Planos",
        "tags": [
          "plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "post": {
        "description": "Crie um plano de assinatura.",
        "operationId": "create-plan",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "billing_retry": {
                  "value": 1
                },
                "charge": {
                  "amount": 10,
                  "currency": "USD",
                  "period": {
                    "type": "month",
                    "value": 1
                  },
                  "prices": [
                    {
                      "amount": 8,
                      "currency": "EUR",
                      "setup_fee": 1.5
                    },
                    {
                      "amount": 1000,
                      "currency": "JPY",
                      "setup_fee": 2.5
                    }
                  ]
                },
                "description": {
                  "en": "2x more experience!"
                },
                "expiration": {
                  "type": "day",
                  "value": null
                },
                "external_id": "exp",
                "grace_period": {
                  "type": "day",
                  "value": 2
                },
                "name": {
                  "en": "Experience boost"
                },
                "refund_period": null,
                "status": {
                  "value": "active"
                },
                "trial": {
                  "type": "day",
                  "value": 7
                }
              },
              "schema": {
                "allOf": [
                  {
                    "required": [
                      "name",
                      "charge"
                    ]
                  },
                  {
                    "$ref": "#/components/schemas/SubscriptionsPlan"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "external_id": "exp",
                  "plan_id": 241082
                },
                "schema": {
                  "properties": {
                    "external_id": {
                      "type": "string"
                    },
                    "plan_id": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Criado."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Criar Plano",
        "tags": [
          "plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/plans/{plan_id}": {
      "delete": {
        "description": "Desativa um plano de assinatura.",
        "operationId": "disable-plan",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/plan-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Desativar Plano",
        "tags": [
          "plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "patch": {
        "description": "Ative um plano de assinatura.",
        "operationId": "enable-plan",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/plan-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Ativar Plano",
        "tags": [
          "plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "Atualiza os parâmetros do plano de assinatura.",
        "operationId": "update-plan-parameters",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/plan-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "billing_retry": {
                  "value": 1
                },
                "charge": {
                  "amount": 20,
                  "currency": "USD",
                  "period": {
                    "type": "month",
                    "value": 1
                  },
                  "prices": [
                    {
                      "amount": 17,
                      "currency": "EUR",
                      "setup_fee": 1.5
                    },
                    {
                      "amount": 2000,
                      "currency": "JPY",
                      "setup_fee": 2.5
                    }
                  ]
                },
                "description": {
                  "en": "3x more experience!"
                },
                "expiration": {
                  "type": "day",
                  "value": null
                },
                "external_id": "exp",
                "grace_period": {
                  "type": "day",
                  "value": 2
                },
                "name": {
                  "en": "Experience boost"
                },
                "refund_period": null,
                "tags": [],
                "trial": {
                  "type": "day",
                  "value": 7
                }
              },
              "schema": {
                "$ref": "#/components/schemas/SubscriptionsPlanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "billing_retry": {
                    "value": 1
                  },
                  "charge": {
                    "amount": 20,
                    "currency": "USD",
                    "period": {
                      "type": "month",
                      "value": 1
                    },
                    "prices": [
                      {
                        "amount": 17,
                        "currency": "EUR",
                        "setup_fee": 1.5
                      },
                      {
                        "amount": 2000,
                        "currency": "JPY",
                        "setup_fee": 2.5
                      }
                    ]
                  },
                  "description": {
                    "en": "3x more experience!"
                  },
                  "expiration": {
                    "type": "day",
                    "value": 0
                  },
                  "external_id": "exp",
                  "grace_period": {
                    "type": "day",
                    "value": 2
                  },
                  "group_id": null,
                  "id": 241082,
                  "localized_name": "Experience boost",
                  "name": {
                    "en": "Experience boost"
                  },
                  "project_id": 40797,
                  "refund_period": null,
                  "status": {
                    "value": "active"
                  },
                  "tags": [],
                  "trial": {
                    "type": "day",
                    "value": 7
                  },
                  "type": "all"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Atualizar Plano",
        "tags": [
          "plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/plans/{plan_id}/delete": {
      "delete": {
        "description": "Exclui um plano de assinatura.",
        "operationId": "delete-plan",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/plan-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Excluir Plano",
        "tags": [
          "plans"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/products": {
      "get": {
        "description": "Lista todos os produtos com base em assinaturas.",
        "operationId": "get-products",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/group-id-query-param"
          },
          {
            "$ref": "#/components/parameters/product-id-query-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "description": {
                      "en": "Description in English."
                    },
                    "group_id": "charge",
                    "id": 714,
                    "name": "Channel"
                  },
                  {
                    "description": {
                      "en": "Description in English."
                    },
                    "group_id": "notify",
                    "id": 715,
                    "name": "notify"
                  },
                  {
                    "description": {
                      "en": "Description in English."
                    },
                    "group_id": "charge",
                    "id": 716,
                    "name": "charge2"
                  },
                  {
                    "description": {
                      "en": "Description in English."
                    },
                    "group_id": "charge",
                    "id": 486,
                    "name": "Channel2"
                  }
                ],
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SubscriptionsProductWithId"
                  },
                  "type": "array"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Produtos",
        "tags": [
          "products"
        ],
        "x-admin": true,
        "x-server": true
      },
      "post": {
        "description": "Cria um produto com base em assinaturas.",
        "operationId": "create-product",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "description": {
                  "en": "Kids TV"
                },
                "group_id": "charge",
                "name": "Channel2"
              },
              "schema": {
                "allOf": [
                  {
                    "required": [
                      "name",
                      "group_id"
                    ]
                  },
                  {
                    "$ref": "#/components/schemas/SubscriptionsProduct"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "example": {
                  "product_id": 172003
                },
                "schema": {
                  "properties": {
                    "product_id": {
                      "type": "integer"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Criado."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Criar Produto",
        "tags": [
          "products"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/products/{product_id}": {
      "delete": {
        "description": "Exclui um produto com base em assinaturas.",
        "operationId": "delete-product",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/product-id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Nenhum conteúdo."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Excluir Produto",
        "tags": [
          "products"
        ],
        "x-admin": true,
        "x-server": true
      },
      "put": {
        "description": "Atualiza um produto com base em assinaturas.",
        "operationId": "update-product",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/product-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "description": {
                  "en": "Description in English."
                },
                "group_id": "charge13",
                "name": "Channel23"
              },
              "schema": {
                "allOf": [
                  {
                    "required": [
                      "name",
                      "group_id"
                    ]
                  },
                  {
                    "$ref": "#/components/schemas/SubscriptionsProduct"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "description": {
                    "en": "Description in English."
                  },
                  "group_id": "charge13",
                  "id": 1713603,
                  "name": "Channel23"
                },
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionsProductWithId"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Atualizar Produto",
        "tags": [
          "products"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/subscriptions/{subscription_id}": {
      "get": {
        "description": "Obtém os dados específicos de uma assinatura por ID.",
        "operationId": "get-subscription",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/subscription-id-path-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "charge_amount": 0.03,
                  "comment": "The subscription was not extended in due time",
                  "currency": "USD",
                  "date_create": "2018-09-21T16:54:59+03:00",
                  "date_end": "2019-02-06T12:43:04+03:00",
                  "date_last_charge": "2018-09-21T16:55:05+03:00",
                  "date_next_charge": "2018-09-21T16:55:05+03:00",
                  "id": 249579,
                  "plan": {
                    "external_id": "lowcost",
                    "id": 601
                  },
                  "product": {
                    "id": 123456
                  },
                  "status": "canceled",
                  "user": {
                    "id": "user1",
                    "name": "John Smith"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionResponse"
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Assinatura",
        "tags": [
          "subscriptions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/users/{user_id}/subscriptions/payments": {
      "get": {
        "description": "Lista todos os pagamentos feitos por um usuário específico.",
        "operationId": "get-user-payments",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/user-id-path-param"
          },
          {
            "$ref": "#/components/parameters/status-id-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/datetime-from-query-param"
          },
          {
            "$ref": "#/components/parameters/datetime-to-query-param"
          },
          {
            "$ref": "#/components/parameters/subscription-id-query-param"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": [
                  {
                    "date_payment": "2016-04-05T10:02:01+03:00",
                    "id": 6746083,
                    "id_payment": 202789960,
                    "status": "fail",
                    "subscription": {
                      "charge_amount": 200,
                      "comment": null,
                      "currency": "RUB",
                      "date_create": "2015-05-28T14:33:54+03:00",
                      "date_end": "2016-04-05T10:02:07+03:00",
                      "date_last_charge": "2015-06-03T16:07:29+03:00",
                      "date_next_charge": "2015-06-04T00:00:00+03:00",
                      "id": 36946,
                      "plan": {
                        "charge": {
                          "amount": 200,
                          "currency": "RUB",
                          "period": {
                            "type": "day",
                            "value": 1
                          }
                        },
                        "description": null,
                        "expiration": {
                          "type": "day",
                          "value": 0
                        },
                        "external_id": "E8n34J79",
                        "grace_period": {
                          "type": "day",
                          "value": 0
                        },
                        "group_id": "charge",
                        "id": 24,
                        "localized_name": null,
                        "name": null,
                        "project_id": 1234,
                        "refund_period": null,
                        "status": {
                          "value": "deleted"
                        },
                        "tags": null,
                        "trial": {
                          "type": "day",
                          "value": 0
                        },
                        "type": "charge"
                      },
                      "product": {
                        "description": null,
                        "group_id": "charge",
                        "id": 1,
                        "name": "charge"
                      },
                      "status": "freeze",
                      "user": {
                        "id": "12",
                        "name": "John"
                      }
                    }
                  }
                ]
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Obter Pagamentos de Usuário",
        "tags": [
          "payments"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    },
    "/projects/{project_id}/users/{user_id}/subscriptions/{subscription_id}": {
      "put": {
        "description": "Atualiza uma assinatura alterando seu status (`active`, `canceled`, ou `non_renewing`) ou atrasando a próxima data de cobrança.",
        "operationId": "update-subscription",
        "parameters": [
          {
            "$ref": "#/components/parameters/project-id-path-param"
          },
          {
            "$ref": "#/components/parameters/user-id-path-param"
          },
          {
            "$ref": "#/components/parameters/subscription-id-path-param"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "status": "active"
              },
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "charge_amount": 0.03,
                  "currency": "USD",
                  "date_create": "2018-09-21T16:54:59+03:00",
                  "date_end": null,
                  "date_last_charge": "2018-09-21T16:55:05+03:00",
                  "date_next_charge": "2018-09-21T16:55:05+03:00",
                  "id": 24953579,
                  "plan": {
                    "billing_retry": {
                      "value": 1
                    },
                    "charge": {
                      "amount": 0.03,
                      "currency": "USD",
                      "period": {
                        "type": "day",
                        "value": 1
                      }
                    },
                    "description": null,
                    "expiration": {
                      "type": "day",
                      "value": 0
                    },
                    "external_id": "lowcost",
                    "grace_period": {
                      "type": "day",
                      "value": 2
                    },
                    "group_id": "newPlans",
                    "id": 66001,
                    "localized_name": null,
                    "name": null,
                    "project_id": 18404,
                    "refund_period": null,
                    "status": {
                      "value": "active"
                    },
                    "tags": null,
                    "trial": {
                      "type": "day",
                      "value": 0
                    },
                    "type": "all"
                  },
                  "product": null,
                  "status": "active",
                  "user": {
                    "id": "jb1",
                    "name": "J.Black"
                  }
                }
              }
            },
            "description": "OK."
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Atualizar Assinatura",
        "tags": [
          "subscriptions"
        ],
        "x-admin": true,
        "x-server": true
      },
      "servers": [
        {
          "url": "https://api.xsolla.com/merchant/v2"
        }
      ]
    }
  },
  "tags": [
    {
      "name": "token",
      "x-displayName": "Token"
    },
    {
      "name": "plans",
      "x-displayName": "Planos"
    },
    {
      "name": "products",
      "x-displayName": "Produtos"
    },
    {
      "name": "subscriptions",
      "x-displayName": "Subscription management"
    },
    {
      "name": "payments",
      "x-displayName": "Pagamentos"
    },
    {
      "name": "promotions",
      "x-displayName": "Promoções"
    },
    {
      "name": "coupons",
      "x-displayName": "Cupons"
    },
    {
      "name": "subscription-management",
      "x-displayName": "Subscription management"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Admin subscription management",
      "tags": [
        "token",
        "plans",
        "products",
        "subscriptions",
        "payments",
        "promotions",
        "coupons"
      ]
    },
    {
      "name": "User subscription management",
      "tags": [
        "subscription-management"
      ]
    }
  ]
}