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

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


    * **Versão:** 2.0

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


    Essa referência API descreve os pontos de extremidade na gerência de
    assinaturas, cupons e promoções.

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

        <div class="notice">
          <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>
        </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.
        <div class="notice">
          <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>
        </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.
        <div class="notice">
          <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>
        </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.
        <div class="notice">
          <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>
        </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`.

        <div class="notice">
          <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>
        </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.
        <div class="notice">
          <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>
        </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`. 

        <div class="notice">
          <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>
        </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.
        <div class="notice">
          <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>
        </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. 

        <div class="notice">
          <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>
        </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. 

        <div class="notice">
          <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>
        </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.
        <div class="notice">
          <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>
        </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.

        <div class="notice">
          <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>
        </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.

        <div class="notice">
          <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>
        </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.
        <div class="notice">
          <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>
        </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.

        <div class="notice">
          <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>
        </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. 
        <div class="notice">
          <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>
        </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`. 

        <div class="notice">
          <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>
        </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.

        <div class="notice">
          <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>
        </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> 

        <div class="notice">
          <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>
        </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ê.


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

        <div class="notice">
          <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>
        </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
