components:
  parameters:
    array-group-id-query-param:
      description: Liste des ID des groupes auxquels les plans sont liés.
      in: query
      name: group_id[]
      schema:
        items:
          type: string
        type: array
    array-plan-id-query-param:
      description: Liste des ID des plans d'abonnement.
      in: query
      name: plan_id[]
      schema:
        items:
          type: integer
        type: array
    array-product-id-query-param:
      description: Liste des ID des produits auxquels les plans sont liés.
      in: query
      name: product_id[]
      schema:
        items:
          type: integer
        type: array
    array-project-id-query-param:
      description: Liste des ID des projets.
      in: query
      name: project_id[]
      schema:
        items:
          type: integer
        type: array
    campaign-id-path-param:
      description: ID de campagne.
      in: path
      name: campaign_id
      required: true
      schema:
        type: integer
    code-path-param:
      description: Code de coupon.
      in: path
      name: code
      required: true
      schema:
        type: string
    datetime-from-query-param:
      description: >-
        Date de l'échantillon. Permet de rechercher les abonnements créés après
        la requête.
      in: query
      name: datetime_from
      schema:
        format: datetime
        type: string
    datetime-from-query-param2:
      description: Début de la période.
      in: query
      name: datetime_from
      schema:
        format: datetime
        type: string
    datetime-to-query-param:
      description: >-
        Date de l'échantillon. Permet de rechercher les abonnements créés après
        la requête.
      in: query
      name: datetime_to
      schema:
        format: datetime
        type: string
    datetime-to-query-param2:
      description: Fin de la période.
      in: query
      name: datetime_to
      schema:
        format: datetime
        type: string
    external-id-query-param:
      description: ID externe du plan (32 caractères).
      in: query
      name: external_id
      schema:
        type: string
    group-id-query-param:
      description: ID du groupe auquel les plans sont liés.
      in: query
      name: group_id
      schema:
        type: string
    limit-query-param:
      description: Nombre maximal d'éléments sur une page.
      in: query
      name: limit
      required: true
      schema:
        type: integer
    merchant-id-path-param:
      description: ID de commerçant.
      in: path
      name: merchant_id
      required: true
      schema:
        type: integer
    offset-query-param:
      description: >-
        Numéro de l'élément à partir duquel la liste est générée (le décompte
        commence à 0).
      in: query
      name: offset
      schema:
        type: integer
    plan-id-path-param:
      description: ID de plan.
      in: path
      name: plan_id
      required: true
      schema:
        type: integer
    plan-id-query-param:
      description: ID de plan d'abonnement.
      in: query
      name: plan_id
      schema:
        type: integer
    product-id-path-param:
      description: ID du produit auquel les plans sont liés.
      in: path
      name: product_id
      required: true
      schema:
        type: integer
    product-id-query-param:
      description: ID du produit auquel les plans sont liés.
      in: query
      name: product_id
      schema:
        type: integer
    project-id-path-param:
      description: ID de projet.
      in: path
      name: project_id
      required: true
      schema:
        type: integer
    promotion-id-path-param:
      description: ID de promotion.
      in: path
      name: promotion_id
      required: true
      schema:
        type: integer
    query-query-param:
      description: Requête de recherche (recherche name.en (langue par défaut)).
      in: query
      name: query
      schema:
        type: string
    status-id-query-param:
      description: Statut de la transaction.
      in: query
      name: status
      schema:
        enum:
          - done
          - fail
        type: string
        x-enumDescriptions:
          done: Paiement traité avec succès.
          fail: Le paiement a échoué ou un remboursement a été effectué.
    status-query-param-array:
      description: Statut.
      in: query
      name: status[]
      schema:
        items:
          enum:
            - active
            - canceled
            - non_renewing
          type: string
        type: array
    subscription-id-path-param:
      description: ID d'abonnement.
      in: path
      name: subscription_id
      required: true
      schema:
        type: integer
    subscription-id-query-param:
      description: ID d'abonnement.
      in: query
      name: subscription_id
      schema:
        type: integer
    user-id-path-param:
      description: ID utilisateur.
      in: path
      name: user_id
      required: true
      schema:
        type: string
    user-id-query-param:
      description: ID utilisateur.
      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: Nom de campagne.
          type: string
        campaign_names:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Noms localisés de la campagne.
        campaign_redeems_count_for_user:
          description: >-
            Nombre maximal de coupons que l'utilisateur peut échanger dans le
            cadre de la campagne. Si `null` est passé, le nombre d'utilisations
            est illimité.
          type: integer
        expiration_date:
          description: >-
            Date de fin de la campagne au format `YYYY-MM-DD’T’HH:MM:SS` selon
            la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          type: string
        project_id:
          description: ID de projet.
          type: integer
        redeems_count:
          description: >-
            Nombre maximal de coupons à échanger. Si `null` est passé, le nombre
            d'utilisations est illimité.
          type: integer
        redeems_count_for_user:
          description: >-
            Nombre maximal de coupons que l'utilisateur peut échanger. Si `null`
            est passé, le nombre d'utilisations est illimité.
          type: integer
        subscription_coupon:
          description: Paramètres de l'abonnement dans la récompense.
          properties:
            plan_id:
              description: ID de plan d'abonnement.
              type: integer
            product_id:
              description: ID du produit d'abonnement.
              type: integer
            trial_period:
              description: Durée de la période d'essai en jours.
              type: integer
          required:
            - plan_id
            - product_id
            - trial_period
          type: object
        virtual_currency_amount:
          description: Quantité de la monnaie virtuelle dans la récompense.
          format: float
          type: number
        virtual_items:
          description: Tableau des paramètres des objets virtuels dans la récompense.
          properties:
            quantity:
              description: Quantité d'objets virtuels.
              type: integer
            sku:
              description: UGS de l'objet virtuel.
              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: Clé de l'attribut utilisateur.
          type: string
        list_of_values:
          description: Tableau des valeurs possibles de l'attribut de type enum.
          items:
            type: object
          type: array
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Noms localisés d'attributs.
        skip_condition_on_nonexistent_key:
          description: >-
            Indique si la condition doit être ignorée au cas où la clé n'existe
            pas.
          type: boolean
        type:
          description: Type de clé.
          enum:
            - int
            - string
            - enum
            - date
          type: string
        visible:
          type: boolean
      type: object
    CreatePromotion:
      properties:
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Tableau des descriptions localisées de la promotion.
        label:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Tableau des étiquettes localisées à afficher dans l'interface de
                paiement.
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Tableau des noms localisés de la promotion.
        project_id:
          description: ID de projet.
          type: integer
        technical_name:
          description: Nom technique de la promotion.
          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: Arabe.
          type: string
        bg:
          description: Bulgare.
          type: string
        cn:
          description: Chinois (simplifié).
          type: string
        cs:
          description: Tchèque.
          type: string
        de:
          description: Allemand.
          type: string
        en:
          description: Anglais.
          type: string
        es:
          description: Espagnol.
          type: string
        fr:
          description: Français.
          type: string
        he:
          description: Hébreu.
          type: string
        it:
          description: Italien.
          type: string
        ja:
          description: Japonais.
          type: string
        ko:
          description: Coréen.
          type: string
        pl:
          description: Polonais.
          type: string
        pt:
          description: Portugais.
          type: string
        ro:
          description: Roumain.
          type: string
        ru:
          description: Russe.
          type: string
        th:
          description: Thaïlandais.
          type: string
        tr:
          description: Turc.
          type: string
        tw:
          description: Chinois (traditionnel).
          type: string
        vi:
          description: Vietnamien.
          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: Systèmes de paiement.
          items:
            properties:
              id:
                description: ID de système de paiement.
                type: integer
              name:
                description: Nom de système de paiement.
                type: string
            type: object
          type: array
      type: object
    PromotionPeriod:
      properties:
        periods:
          description: Plages de dates et d'heures.
          items:
            properties:
              from:
                description: Début de la période.
                format: datetime
                type: string
              offset:
                description: >-
                  Numéro de l'élément à partir duquel la liste est générée (le
                  décompte commence à 0).
                type: string
              to:
                description: Fin de la période.
                format: datetime
                type: string
            type: object
          type: array
      type: object
    PromotionReward:
      properties:
        item:
          description: Définit la récompense pour l'achat des objets virtuels spécifiques.
          properties:
            bonus:
              description: Objets virtuels supplémentaires octroyés en bonus.
              items:
                properties:
                  id:
                    type: integer
                  localized_name:
                    description: >-
                      Nom du plan dans la langue par défaut (en), répète la
                      valeur du paramètre name.en.
                    type: string
                  quantity:
                    description: Nombre d'objets virtuels octroyés en bonus.
                    type: integer
                  sku:
                    description: UGS de l'objet.
                    type: string
                type: object
              type: array
            discount:
              description: Remises pour l'achat des objets virtuels spécifiques.
              items:
                properties:
                  discount_percent:
                    description: Pourcentage de remise.
                    format: float
                    type: number
                  localized_name:
                    description: >-
                      Nom du plan dans la langue par défaut (en), répète la
                      valeur du paramètre name.en.
                    type: string
                  max_amount:
                    description: Nombre maximal d'objets auxquels la promotion s'applique.
                    format: integer
                    type: number
                  sku:
                    description: UGS de l'objet.
                    type: string
                type: object
              type: array
          type: object
        package:
          description: >-
            Définit la récompense pour l'achat d'un package de monnaie
            virtuelle.
          properties:
            bonus_amount:
              description: >-
                Récompense sous forme d'une quantité absolue de monnaie
                virtuelle.
              format: float
              type: number
            bonus_percent:
              description: >-
                Récompense sous forme d'un pourcentage de la quantité de monnaie
                virtuelle dans le package.
              format: float
              type: number
          type: object
        purchase:
          description: Définit la récompense pour l'ensemble de la commande.
          properties:
            discount_percent:
              description: Pourcentage de remise.
              format: float
              type: number
          type: object
        subscription:
          description: Définit la récompense pour l'abonnement.
          properties:
            trial_days:
              description: Période d'essai en jours.
              type: integer
          type: object
      type: object
    PromotionSubject:
      properties:
        digital_contents:
          nullable: true
          type: object
        items:
          description: Tableau des objets virtuels auxquels la promotion s'applique.
          items:
            properties:
              id:
                type: integer
              localized_name:
                description: >-
                  Nom du plan dans la langue par défaut (en), répète la valeur
                  du paramètre name.en.
                type: string
              sku:
                description: UGS de l'objet.
                type: string
            type: object
          type: array
        packages:
          description: >-
            Tableau des packages de monnaie virtuelle auxquels la promotion
            s'applique.
          items:
            type: object
          nullable: true
          type: array
        purchase:
          description: Indique si la promotion s'applique à l'ensemble de la commande.
          type: boolean
        subscriptions:
          description: Plans d'abonnement ou produits auxquels la promotion s'applique.
          nullable: true
          properties:
            max_charges_count:
              description: >-
                Nombre maximal de facturations auxquelles la promotion
                s'applique.
              type: integer
            plans:
              items:
                description: >-
                  Tableau des plans d'abonnement auxquels la promotion
                  s'applique.
                type: string
              type: array
            products:
              items:
                description: >-
                  Tableau des produits par abonnement auxquels la promotion
                  s'applique.
                type: string
              type: array
          type: object
      type: object
    Subscription:
      properties:
        cancel_subscription_payment:
          description: >-
            Définir sur `true` rembourse le dernier paiement effectué pour cet
            abonnement. **Ne fonctionne que si le statut du paiement est
            `canceled`**.
          type: boolean
        status:
          description: Statut.
          enum:
            - active
            - canceled
            - non_renewing
          type: string
        timeshift:
          description: Report de facturation.
          properties:
            type:
              description: >-
                Unité de temps de facturation. La valeur peut être `day` ou
                `month`.
              enum:
                - day
                - month
              type: string
            value:
              description: "Nombre d'unités de temps pour reporter la facturation. La valeur dépend du paramètre type et peut être\_: <br>- de 1 à 366, si `type` est défini sur `day`\_;<br>- de 1 à 12, si `type` est défini sur `month`."
              type: string
          type: object
        xsolla_network:
          properties:
            collaborator_id:
              description: >-
                ID de collaborateur – identifiant
                d'[influenceur](https://developers.xsolla.com/fr/doc/partner-network/#guides_network_glossary_influencer)
                ou de [réseau
                d'affiliation](https://developers.xsolla.com/fr/doc/partner-network/#guides_network_glossary_affiliate_network).
                Il se trouve dans le compte éditeur sous la section **Partner
                Network > Influencers**.
              type: string
          type: object
      type: object
    SubscriptionResponse:
      properties:
        charge_amount:
          description: Montant de facturation.
          format: float
          type: number
        comment:
          description: Raison du changement de statut de l'abonnement
          type: string
        currency:
          description: >-
            Devise d'achat. Code de devise à trois lettres selon la norme ISO
            4217.
          type: string
        date_create:
          description: >-
            Date de création de l'abonnement au format `YYYY-MM-DD’T’HH:MM:SS`
            selon la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          type: string
        date_end:
          description: >-
            Date de fin d'abonnement au format `YYYY-MM-DD’T’HH:MM:SS` selon la
            norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          type: string
        date_last_charge:
          description: >-
            Date de la dernière facturation de l'abonnement au format
            `YYYY-MM-DD’T’HH:MM:SS` selon la norme [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          nullable: true
          type: string
        date_next_charge:
          description: >-
            Date de la prochaine facturation de l'abonnement au format
            `YYYY-MM-DD’T’HH:MM:SS` selon la norme [ISO
            8601](https://en.wikipedia.org/wiki/ISO_8601).
          format: datetime
          nullable: true
          type: string
        id:
          description: ID d'abonnement
          type: integer
        plan:
          allOf:
            - $ref: '#/components/schemas/SubscriptionsPlan'
        product:
          allOf:
            - $ref: '#/components/schemas/SubscriptionsProductWithId'
        status:
          description: Statut
          enum:
            - new
            - active
            - canceled
            - non_renewing
            - freeze
          type: string
        user:
          allOf:
            - $ref: '#/components/schemas/User'
      type: object
    SubscriptionsPlan:
      properties:
        billing_retry:
          description: Informations sur la relance de la facturation.
          properties:
            value:
              description: Nombre de relances de facturation.
              type: integer
          required:
            - value
          type: object
        charge:
          description: Informations de facturation.
          properties:
            amount:
              description: Montant de facturation.
              format: float
              type: number
            currency:
              description: >-
                Devise d'achat. Code de devise à trois lettres selon la norme
                [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
              type: string
            period:
              description: Période de facturation.
              properties:
                type:
                  description: >-
                    Unité de temps. La valeur peut être `day`, `month` ou
                    `lifetime`.
                  enum:
                    - day
                    - month
                    - lifetime
                  type: string
                value:
                  description: "Nombre d'unités de temps. La valeur dépend du paramètre type et peut être\_: <br>- de 1 à 366, si `type` est défini sur `day`\_;<br>- de 1 à 12, si `type` est défini sur `month`\_;<br>- 0 si `type` est défini sur `lifetime`."
                  type: integer
              required:
                - value
                - type
              type: object
            prices:
              description: Liste des prix dans différentes devises.
              items:
                properties:
                  amount:
                    description: Montant de facturation.
                    format: float
                    type: number
                  currency:
                    description: >-
                      Devise d'achat. Code de devise à trois lettres selon la
                      norme [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
                    type: string
                  setup_fee:
                    description: >-
                      Frais de mise en service uniques facturés dans le cadre de
                      la première facture.
                    format: float
                    type: number
                required:
                  - amount
                  - currency
                type: object
              type: array
          required:
            - period
          type: object
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Description du plan. La valeur est constituée de paires
                "localization":"plan description".
        expiration:
          description: Informations sur l'expiration de l'abonnement.
          properties:
            type:
              description: Unité de temps. La valeur peut être `day` ou `month`.
              enum:
                - day
                - month
              type: string
            value:
              description: Durée de validité.
              nullable: true
              type: integer
          required:
            - value
            - type
          type: object
        external_id:
          description: ID externe du plan (32 caractères).
          type: string
        grace_period:
          description: Informations sur le délai de grâce.
          properties:
            type:
              description: Unité de temps. L'unique valeur possible est `day`.
              enum:
                - day
              type: string
            value:
              description: Nombre d'unités de temps.
              type: integer
          required:
            - value
            - type
          type: object
        group_id:
          description: ID du groupe auquel le plan est lié.
          nullable: true
          type: string
        id:
          description: ID de plan d'abonnement.
          type: integer
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Nom du plan. La valeur est constituée de paires
                "localization":"plan name".
        project_id:
          description: ID de projet.
          type: integer
        refund_period:
          description: >-
            Période durant laquelle l'utilisateur peut se faire rembourser le
            paiement d'un abonnement (en jours).
          nullable: true
          type: integer
        status:
          properties:
            value:
              description: Statut de plan d'abonnement.
              enum:
                - active
                - disabled
              type: string
          type: object
        tags:
          description: Balises du plan.
          items:
            type: string
          type: array
        trial:
          description: Informations sur la période d'essai.
          properties:
            type:
              description: Unité de temps. L'unique valeur possible est `day`.
              enum:
                - day
              type: string
            value:
              description: Nombre d'unités de temps.
              type: integer
          required:
            - value
            - type
          type: object
      type: object
    SubscriptionsPlanRequest:
      properties:
        billing_retry:
          description: Informations sur la relance de la facturation.
          properties:
            value:
              description: Nombre de relances de facturation.
              type: integer
          required:
            - value
          type: object
        charge:
          description: Informations de facturation.
          properties:
            amount:
              description: Montant de facturation.
              format: float
              type: number
            currency:
              description: >-
                Devise d'achat. Code de devise à trois lettres selon la norme
                [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
              type: string
            period:
              description: Période de facturation.
              properties:
                type:
                  description: >-
                    Unité de temps. La valeur peut être `day`, `month` ou
                    `lifetime`.
                  enum:
                    - day
                    - month
                    - lifetime
                  type: string
                value:
                  description: "Nombre d'unités de temps. La valeur dépend du paramètre type et peut être\_: <br>- de 1 à 366, si `type` est défini sur `day`\_;<br>- de 1 à 12, si `type` est défini sur `month`\_;<br>- 0 si `type` est défini sur `lifetime`."
                  type: integer
              required:
                - value
                - type
              type: object
            prices:
              description: Liste des prix dans différentes devises.
              items:
                properties:
                  amount:
                    description: Montant de facturation.
                    format: float
                    type: number
                  currency:
                    description: >-
                      Devise d'achat. Code de devise à trois lettres selon la
                      norme [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
                    type: string
                  setup_fee:
                    description: >-
                      Frais de mise en service uniques facturés dans le cadre de
                      la première facture.
                    format: float
                    type: number
                required:
                  - amount
                  - currency
                type: object
              type: array
          required:
            - period
          type: object
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Description du plan. La valeur est constituée de paires
                "localization":"plan description".
        expiration:
          description: Informations sur l'expiration de l'abonnement.
          properties:
            type:
              description: Unité de temps. La valeur peut être `day` ou `month`.
              enum:
                - day
                - month
              type: string
            value:
              description: Durée de validité.
              nullable: true
              type: integer
          required:
            - value
            - type
          type: object
        external_id:
          description: ID externe du plan (32 caractères).
          type: string
        grace_period:
          description: Informations sur le délai de grâce.
          properties:
            type:
              description: Unité de temps. L'unique valeur possible est `day`.
              enum:
                - day
              type: string
            value:
              description: Nombre d'unités de temps.
              type: integer
          required:
            - value
            - type
          type: object
        group_id:
          description: ID du groupe auquel le plan est lié.
          type: string
        name:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: >-
                Nom du plan. La valeur est constituée de paires
                "localization":"plan name".
        refund_period:
          description: >-
            Période durant laquelle l'utilisateur peut se faire rembourser le
            paiement d'un abonnement (en jours).
          nullable: true
          type: integer
        status:
          properties:
            value:
              description: Statut de plan d'abonnement.
              enum:
                - active
                - disabled
              type: string
          type: object
        tags:
          description: Balises du plan.
          items:
            type: string
          type: array
        trial:
          description: >-
            Informations sur la période d'essai. Si ce paramètre n'est pas
            passé, les valeurs par défaut (0 jour) sont utilisées.
          properties:
            type:
              description: Unité de temps. L'unique valeur possible est `day`.
              enum:
                - day
              type: string
            value:
              description: Nombre d'unités de temps.
              type: integer
          required:
            - value
            - type
          type: object
      type: object
    SubscriptionsProduct:
      nullable: true
      properties:
        description:
          allOf:
            - $ref: '#/components/schemas/LocalizedStringPairs'
            - description: Descriptions localisées de l'objet.
        group_id:
          description: ID du groupe auquel le produit est lié.
          type: string
        name:
          description: Nom du produit.
          type: string
      type: object
    SubscriptionsProductWithId:
      allOf:
        - properties:
            id:
              description: ID du produit auquel les plans sont liés.
              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 utilisateur
          type: string
        name:
          description: Nom d'utilisateur
          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: >-
            Vous pouvez passer des paramètres supplémentaires dans le jeton dans
            l'objet `custom_parameters` pour configurer les filtres anti-fraude.
            Les paramètres recommandés sont indiqués dans la liste déroulante.
            [Voir la documentation de Pay
            Station](https://developers.xsolla.com/fr/doc/pay-station/features/antifraud/).
          properties:
            active_date:
              description: >-
                Date de dernière visite selon la norme [ISO
                8601](https://en.wikipedia.org/wiki/ISO_8601).
              type: string
            additional_verification:
              description: >-
                Indique si le joueur utilise des méthodes de vérification de
                compte.
              type: boolean
            character_customized:
              description: Indique si le joueur a personnalisé son personnage.
              type: boolean
            chat_activity:
              description: Indique si le joueur utilise la fonction de chat.
              type: boolean
            completed_tasks:
              description: Nombre de tâches/objectifs terminés.
              type: integer
            forum_activity:
              description: Indique si le joueur utilise la fonction forum.
              type: boolean
            items_used:
              description: Indique si le joueur utilise des objets achetés dans le jeu.
              type: boolean
            karma_points:
              description: Karma du joueur.
              type: integer
            last_change_password_date:
              description: >-
                Date de dernier changement de mot de passe selon la norme [ISO
                8601](https://en.wikipedia.org/wiki/ISO_8601).
              type: string
            non_premium_currency:
              description: Quantité de la monnaie non-premium.
              format: float
              type: integer
            notifications_enabled:
              description: Indique si le joueur a activé les notifications.
              type: boolean
            profile_completed:
              description: >-
                Indique si le joueur a ajouté des informations supplémentaires à
                son profil.
              type: boolean
            profile_image_added:
              description: Indique si le joueur a téléchargé une image de profil.
              type: boolean
            pvp_activity:
              description: Indique si le joueur participe à des combats JcJ.
              type: boolean
            registration_date:
              description: >-
                Date de création de compte selon la norme [ISO
                8601](https://en.wikipedia.org/wiki/ISO_8601).
              type: string
            session_time:
              description: >-
                Durée moyenne de session selon la norme [ISO
                8601](https://en.wikipedia.org/wiki/ISO_8601).
              type: string
            social_networks_added:
              description: Indique si le joueur a connecté des profils de médias sociaux.
              type: boolean
            total_bans:
              description: Nombre de fois que le joueur a été banni du chat/forum.
              type: integer
            total_characters:
              description: Nombre de personnages dans le jeu.
              type: integer
            total_clans:
              description: Nombre de clans dont le joueur est membre.
              type: integer
            total_friends:
              description: Nombre d'amis.
              type: integer
            total_game_events:
              description: Nombre d'événements en jeu auxquels le joueur a participé.
              type: integer
            total_gifts:
              description: Nombre de cadeaux en jeu que le joueur a envoyés/reçus.
              type: integer
            total_hours:
              description: Nombre total d'heures passées dans le jeu.
              type: integer
            total_inventory_value:
              description: Valeur totale de l'inventaire en monnaie de jeu.
              format: float
              type: integer
            total_sum:
              description: Montant total des paiements.
              format: float
              type: integer
            tutorial_completed:
              description: Indique si le joueur a terminé le tutoriel du jeu.
              type: boolean
            unlocked_achievements:
              description: Nombre de réalisations débloquées.
              type: integer
            user_level:
              description: Niveau, réputation ou rang du joueur.
              type: integer
            win_rate:
              description: Taux de victoire du joueur.
              type: integer
          type: object
        purchase:
          description: Informations sur l'achat.
          properties:
            checkout:
              description: Informations sur le paiement.
              properties:
                amount:
                  description: Montant de l'achat.
                  format: float
                  type: integer
                currency:
                  description: >-
                    Devise d'achat. Code de devise à trois lettres selon la
                    norme [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
                  type: string
              type: object
            subscription:
              description: Données d'abonnement.
              properties:
                available_plans:
                  description: Plans d'abonnement à afficher dans l'interface de paiement.
                  items:
                    type: string
                  type: array
                currency:
                  description: >-
                    Devise du plan d'abonnement à utiliser dans tous les
                    calculs.
                  type: string
                gift:
                  description: Informations sur l'abonnement cadeau
                  properties:
                    anonymous:
                      description: >-
                        Détermine le masquage du donateur. Si `true`, le nom de
                        l'expéditeur est masqué dans la notification par e-mail.
                        La valeur par défaut est `false`.
                      type: boolean
                    email:
                      description: Adresse e-mail du destinataire.
                      type: string
                    message:
                      description: Message pour le destinataire.
                      type: string
                    recipient:
                      description: ID du destinataire.
                      type: string
                    redirect_url:
                      description: >-
                        Fournissez ici un lien vers une page contenant des
                        informations supplémentaires sur l'abonnement cadeau ou
                        vers la page de création de compte. Le destinataire du
                        cadeau peut naviguer vers cette page à partir de la
                        notification par e-mail du cadeau d'abonnement.
                      type: string
                  required:
                    - recipient
                    - email
                  type: object
                operation:
                  description: >-
                    Type d'opération appliqué au plan d'abonnement de
                    l'utilisateur. Pour modifier le plan d'abonnement, passez la
                    valeur `change_plan`. Vous devez passer l'ID du nouveau plan
                    dans le paramètre `purchase.subscription.plan_id`.
                  type: string
                plan_id:
                  description: >-
                    ID externe du plan d'abonnement. Il se trouve dans le compte
                    éditeur sous la section **Subscriptions > Subscription
                    plans**.
                  type: string
                product_id:
                  description: ID de produit.
                  type: string
                trial_days:
                  description: Période d'essai en jours.
                  type: integer
              type: object
          type: object
        settings:
          description: Paramètres personnalisés de projet.
          properties:
            currency:
              description: >-
                Devise de paiement préférée. Code de devise à trois lettres
                selon la norme [ISO
                4217](https://en.wikipedia.org/wiki/ISO_4217).
              type: string
            external_id:
              description: >-
                ID de transaction dans le jeu. Il doit être unique pour chaque
                paiement d'utilisateur.
              type: string
            language:
              description: >-
                Langue d'interface. [Code de
                langue](https://developers.xsolla.com/fr/doc/pay-station/features/localization/)
                à deux lettres minuscules.
              type: string
            mode:
              description: >-
                Passez la valeur `sandbox` pour tester le processus de paiement.
                Dans ce cas, utilisez l'URL *https://sandbox-secure.xsolla.com*
                pour accéder à l'interface de paiement de test.
              type: string
            payment_method:
              description: ID de mode de paiement.
              type: integer
            payment_widget:
              description: >-
                Widget de paiement. La valeur peut être `paybycash` ou
                `giftcard`. Si le paramètre est défini, l'utilisateur est
                redirigé vers le widget Pay by Cash ou Gift Cards,
                respectivement.
              enum:
                - paybycash
                - giftcard
              type: string
            project_id:
              description: ID Xsolla du jeu. Il se trouve dans le compte éditeur.
              type: integer
            redirect_policy:
              description: Paramètres de la politique de redirection.
              properties:
                autoredirect_from_status_page:
                  description: >-
                    Détermine si l'utilisateur doit être redirigé
                    automatiquement à partir de la page d'état.
                  type: boolean
                delay:
                  description: >-
                    Délai (en secondes) après lequel l'utilisateur est
                    automatiquement redirigé vers l'URL de retour.
                  type: integer
                manual_redirection_action:
                  description: >-
                    Comportement de Pay Station lorsque l'utilisateur ferme la
                    fenêtre ou clique sur le bouton **Back to the Game**. La
                    valeur peut être `redirect` (par défaut) ou `postmessage`.
                    Si le paramètre est défini sur `redirect`, l'utilisateur est
                    redirigé vers l'URL passée dans le jeton ou spécifiée dans
                    le compte éditeur. S'il est défini sur `postmessage`,
                    l'utilisateur n'est pas redirigé vers une autre page. Dans
                    ce cas, la fermeture de la fenêtre déclenche l'envoi de
                    l'événement `close`, tandis qu'un clic sur le bouton **Back
                    to the Game**, l'envoi de l'événement `return`.
                  enum:
                    - redirect
                    - postmessage
                  type: string
                redirect_button_caption:
                  description: Texte du bouton de redirection manuelle.
                  type: string
                redirect_conditions:
                  description: >-
                    Statut de paiement pour lequel l'utilisateur est redirigé
                    vers l'URL de retour. La valeur peut être `none`,
                    `successful`, `successful_or_canсeled`, ou `any`.
                  enum:
                    - none
                    - successful
                    - successful_or_canceled
                    - any
                  type: string
                status_for_manual_redirection:
                  description: >-
                    Statut de paiement pour lequel le bouton de redirection de
                    l'utilisateur vers l'URL de retour apparaît. La valeur peut
                    être `none`, `successful`, `successful_or_canсeled`, ou
                    `any`.
                  enum:
                    - none
                    - successful
                    - successful_or_canceled
                    - any
                  type: string
              type: object
            return_url:
              description: >-
                Page vers laquelle rediriger l'utilisateur après le paiement.
                Les paramètres `user_id`, `foreigninvoice`, `invoice_id` et
                `status` seront automatiquement ajoutés au lien.
              type: string
            ui:
              description: Paramètres d'interface.
              properties:
                components:
                  description: Paramètres de menu.
                  properties:
                    subscriptions:
                      description: Paramètres du sous-menu des plans d'abonnement.
                      properties:
                        hidden:
                          description: Détermine l'affichage du sous-menu.
                          type: boolean
                        order:
                          description: Position du sous-menu dans le menu.
                          type: integer
                      type: object
                    virtual_currency:
                      description: Paramètres du sous-menu de la monnaie virtuelle.
                      properties:
                        custom_amount:
                          description: >-
                            Détermine si l'utilisateur peut saisir une quantité
                            aléatoire de monnaie virtuelle dans l'interface de
                            paiement.
                          type: boolean
                        hidden:
                          description: Détermine l'affichage du sous-menu.
                          type: boolean
                        order:
                          description: Position du sous-menu dans le menu.
                          type: integer
                      type: object
                    virtual_items:
                      description: Paramètres du sous-menu des objets virtuels.
                      properties:
                        hidden:
                          description: Détermine l'affichage du sous-menu.
                          type: boolean
                        order:
                          description: Position du sous-menu dans le menu.
                          type: integer
                        selected_group:
                          description: >-
                            Groupe à afficher après l'ouverture de l'onglet des
                            objets virtuels.
                          type: string
                        selected_item:
                          description: >-
                            Objet à afficher après l'ouverture de l'onglet des
                            objets virtuels (UGS de l'objet).
                          type: string
                      type: object
                  type: object
                desktop:
                  description: Paramètres de l'interface pour la version de bureau.
                  properties:
                    header:
                      description: Paramètres de l'en-tête.
                      properties:
                        close_button:
                          description: >-
                            Détermine l'affichage du bouton Fermer sur la
                            version de bureau de Pay Station. Un clic sur ce
                            bouton ferme Pay Station et redirige l'utilisateur
                            vers l'URL passée dans le paramètre
                            `settings.return_url`. Défini sur `false` par
                            défaut.
                          type: boolean
                        is_visible:
                          description: >-
                            Détermine l'affichage de l'en-tête dans l'interface
                            de paiement.
                          type: boolean
                        type:
                          description: >-
                            Apparence de l'en-tête. La valeur peut être
                            `compact` (le nom du projet et l'ID utilisateur ne
                            s'affichent pas) ou `normal` (par défaut).
                          enum:
                            - compact
                            - normal
                          type: string
                        visible_logo:
                          description: >-
                            Si défini sur `true`, votre logo s'affiche dans
                            l'en-tête (vous devez avoir fourni l'image à votre
                            responsable de la réussite client).
                          type: boolean
                        visible_name:
                          description: >-
                            Détermine l'affichage du nom du projet dans
                            l'en-tête.
                          type: boolean
                        visible_purchase:
                          description: >-
                            Détermine l'affichage de la description de l'achat
                            (`purchase.description.value`) dans l'en-tête.
                            Défini sur `true` par défaut.
                          type: boolean
                      type: object
                    subscription_list:
                      description: Paramètres de la liste des plans d'abonnement.
                      properties:
                        description:
                          description: >-
                            Texte à afficher dans l'interface de paiement
                            au-dessus de la liste des plans d'abonnement
                            disponibles.
                          type: string
                        display_local_price:
                          description: "Si défini sur `true`, et que la devise locale de l'utilisateur diffère de la devise de base du plan d'abonnement, l'utilisateur voit deux prix\_: l'un dans la devise locale et l'autre dans la devise de base."
                          type: boolean
                        layout:
                          description: >-
                            Modèle de liste. La valeur peut être `list` (par
                            défaut) ou `grid`.
                          enum:
                            - list
                            - grid
                          type: string
                      type: object
                    virtual_currency_list:
                      description: Paramètres de la liste des monnaies virtuelles.
                      properties:
                        button_with_price:
                          description: >-
                            Si défini sur `true`, le prix s'affiche sur le
                            bouton. Si défini sur `false`, le prix s'affiche à
                            gauche du bouton. Défini sur `false` par défaut.
                          type: boolean
                        description:
                          description: >-
                            Texte à afficher au-dessus de la liste des monnaies
                            virtuelles.
                          type: string
                      type: object
                    virtual_item_list:
                      description: Paramètres de la liste des objets virtuels.
                      properties:
                        button_with_price:
                          description: >-
                            Si défini sur `true`, le prix s'affiche sur le
                            bouton. Si défini sur `false`, le prix s'affiche à
                            gauche du bouton. Défini sur `false` par défaut.
                          type: boolean
                        layout:
                          description: >-
                            Modèle de liste. La valeur peut être `list` (par
                            défaut) ou `grid`.
                          enum:
                            - list
                            - grid
                          type: string
                        view:
                          description: >-
                            Affiche les groupes d'objets virtuels sous la forme
                            d'un menu vertical/horizontal. La valeur peut être
                            `horizontal_navigation` ou `vertical_navigation`
                            (par défaut).
                          enum:
                            - horizontal_navigation
                            - vertical_navigation
                          type: string
                      type: object
                  type: object
                header:
                  properties:
                    visible_virtual_currency_balance:
                      description: >-
                        Détermine l'affichage de cet élément dans l'interface de
                        paiement. Défini sur `true` par défaut.
                      type: boolean
                  type: object
                is_prevent_external_link_open:
                  description: >-
                    Détermine la désactivation des liens de redirection vers une
                    ressource externe. Défini sur `true` par défaut. Un clic sur
                    un lien externe déclenche l'envoi de l'événement
                    `external-link-open` via le mécanisme `postMessage`.
                    L'adresse du lien de redirection est passée dans le
                    paramètre `url`.
                  type: boolean
                license_url:
                  description: Lien vers le CLUF.
                  type: string
                mobile:
                  properties:
                    footer:
                      properties:
                        is_visible:
                          description: >-
                            Détermine l'affichage du pied de page dans la
                            version mobile de l'interface de paiement.
                          type: boolean
                      type: object
                    header:
                      properties:
                        close_button:
                          description: >-
                            Détermine l'affichage du bouton Fermer dans la
                            version mobile de Pay Station. Un clic sur ce bouton
                            ferme Pay Station et redirige l'utilisateur vers
                            l'URL passée dans le paramètre
                            `settings.return_url`. Défini sur `false` par
                            défaut.
                          type: boolean
                      type: object
                    mode:
                      description: >-
                        L'utilisateur ne peut payer qu'en utilisant les modes de
                        paiement enregistrés. L'unique valeur possible est
                        `saved_accounts`.
                      enum:
                        - saved_accounts
                      type: string
                  type: object
                mode:
                  description: >-
                    Mode d'interface dans Pay Station. L'unique valeur possible
                    est `user_account`. Dans ce mode, l'en-tête ne contient que
                    le menu de navigation du compte, et l'utilisateur ne peut ni
                    sélectionner un produit ni effectuer un paiement. Ce mode
                    est disponible uniquement sur la version de bureau.
                  type: string
                size:
                  description: "Taille de l'interface de paiement. La valeur peut être\_:\n  - [small](https://livedemo.xsolla.com/developers/small/)\_: taille minimale possible de l'interface de paiement. Utilisez cette valeur lorsque la taille de la fenêtre est strictement limitée (dimensions\_: 620\_x\_630)\n  - [medium](https://livedemo.xsolla.com/developers/medium/)\_: taille recommandée. Utilisez cette valeur pour afficher l'interface de paiement dans une lightbox (dimensions\_: 740\_x\_760)\n  - [large](https://livedemo.xsolla.com/developers/large/)\_: taille optimale pour afficher l'interface de paiement dans une nouvelle fenêtre ou un nouvel onglet (dimensions\_: 820\_x\_840)"
                  enum:
                    - small
                    - medium
                    - large
                  type: string
                theme:
                  description: >-
                    Thème de l'interface de paiement. La valeur peut être
                    `default` ou `default_dark`.
                  enum:
                    - default
                    - default_dark
                  type: string
                user_account:
                  description: Informations de compte utilisateur.
                  properties:
                    history:
                      allOf:
                        - description: Sous-menu **History**
                        - properties:
                            enable:
                              description: >-
                                Détermine l'affichage du sous-menu. Défini sur
                                `false` par défaut.
                              type: boolean
                            order:
                              description: Position du sous-menu dans le menu.
                              type: integer
                          type: object
                    info:
                      allOf:
                        - description: Page **My account**.
                        - properties:
                            enable:
                              description: >-
                                Détermine l'affichage du sous-menu. Défini sur
                                `false` par défaut.
                              type: boolean
                            order:
                              description: Position du sous-menu dans le menu.
                              type: integer
                          type: object
                    payment_accounts:
                      allOf:
                        - description: Sous-menu **My payment accounts**.
                        - properties:
                            enable:
                              description: >-
                                Détermine l'affichage du sous-menu. Défini sur
                                `false` par défaut.
                              type: boolean
                            order:
                              description: Position du sous-menu dans le menu.
                              type: integer
                          type: object
                    subscriptions:
                      allOf:
                        - description: Sous-menu **Manage subscriptions**.
                        - properties:
                            enable:
                              description: >-
                                Détermine l'affichage du sous-menu. Défini sur
                                `false` par défaut.
                              type: boolean
                            order:
                              description: Position du sous-menu dans le menu.
                              type: integer
                          type: object
                  type: object
                version:
                  description: >-
                    Type d'appareil. La valeur peut être `desktop` (par défaut)
                    ou `mobile`.
                  enum:
                    - desktop
                    - mobile
                  type: string
              type: object
          required:
            - project_id
          type: object
        user:
          description: Informations sur l'utilisateur.
          properties:
            age:
              description: Âge de l'utilisateur.
              type: integer
            attributes:
              description: >-
                Attributs de l'utilisateur nécessaires pour filtrer la liste des
                objets. Ils se présentent sous la forme d'un JSON valide de
                paires clé-valeur.
              type: object
            country:
              properties:
                allow_modify:
                  description: >-
                    Détermine si l'utilisateur peut changer le pays dans
                    l'interface de paiement. Par défaut, si le paramètre
                    `country.value` est passé dans le jeton, la valeur est
                    `false`.
                  type: boolean
                value:
                  description: >-
                    Code pays à deux lettres majuscules selon la norme [ISO
                    3166-1
                    alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
                  type: string
              type: object
            email:
              description: >-
                L'objet `user.email` est essentiel pour construire les modèles
                anti-fraude et permet d'améliorer les taux d'acceptation. C'est
                une exigence à la fois de Xsolla et des systèmes de paiement. Si
                ce paramètre n'est pas passé, un champ obligatoire pour la
                saisie de l'adresse e-mail apparaît sur la page de paiement.
                L'utilisateur reçoit ensuite un reçu d'achat à l'adresse e-mail
                indiquée dans ce paramètre ou celle saisie sur la page de
                paiement.
              properties:
                value:
                  description: >-
                    Adresse e-mail de l'utilisateur. Doit être valide selon le
                    protocole [RFC
                    822](https://www.w3.org/Protocols/rfc822/#z8).
                  type: string
              required:
                - value
              type: object
            id:
              properties:
                value:
                  description: ID utilisateur.
                  type: string
              required:
                - value
              type: object
            is_legal:
              description: Détermine si l'utilisateur est une personne morale.
              type: boolean
            legal:
              allOf:
                - description: >-
                    Informations de la personne morale. L'objet et tous ses
                    paramètres sont requis si `user.is_legal` est défini sur
                    `true`.
                - description: Informations de la personne morale.
                  properties:
                    address:
                      description: Adresse légale complète.
                      type: string
                    country:
                      description: >-
                        Pays de constitution. Code pays à deux lettres
                        majuscules selon la norme [ISO 3166-1
                        alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
                      type: string
                    name:
                      description: Nom légal complet.
                      type: string
                    vat_id:
                      description: Numéro d'identification fiscal.
                      type: string
                  type: object
            name:
              properties:
                value:
                  description: Pseudo de l'utilisateur.
                  type: string
              type: object
            phone:
              properties:
                value:
                  description: Numéro de téléphone de l'utilisateur.
                  type: string
              type: object
            public_id:
              properties:
                value:
                  description: >-
                    Paramètre qui identifie l'utilisateur de manière unique et
                    qui est connu de celui-ci (adresse e-mail, pseudo, etc.).
                    Permet à l'utilisateur d'effectuer des achats en dehors du
                    magasin en jeu (par exemple, via des kiosques de paiement).
                  type: string
              type: object
            steam_id:
              properties:
                value:
                  description: ID Steam.
                  type: string
              type: object
            tracking_id:
              properties:
                value:
                  description: >-
                    ID de suivi unique (utilisé dans les campagnes de
                    marketing).
                  type: string
              type: object
            utm:
              description: Attributs de trafic.
              properties:
                utm_campaign:
                  description: Titre de la campagne translittéré ou traduit en anglais.
                  type: string
                utm_content:
                  description: Contenu de la campagne.
                  type: string
                utm_medium:
                  description: >-
                    Canal de trafic (annonces contextuelles, annonces par
                    affichage, e-mailing, etc.).
                  type: string
                utm_source:
                  description: Source de trafic.
                  type: string
                utm_term:
                  description: >-
                    Mot-clé de la campagne. Si ce paramètre est défini, les
                    statistiques seront basées sur les mots-clés utilisés pour
                    le ciblage des annonces plutôt que sur des requêtes de
                    recherche spécifiques. Dans Google Analytics, le terme
                    `utm_term` spécifié fait partie du rapport général sur les
                    termes de recherche.
                  type: string
              type: object
          required:
            - id
          type: object
      type: object
  securitySchemes:
    basicAuth:
      description: "L'API de Xsolla utilise l'authentification d'accès de base. Toutes les requêtes vers l'API doivent contenir l'en-tête `Authorization: Basic <your_authorization_basic_key>` où `<your_authorization_basic_key>` est la paire `merchant_id:api_key` encodée conformément à la norme Base64.\n\nPour trouver ces paramètres, accédez au [Compte éditeur](https://publisher.xsolla.com/)\_:<ul><li>`merchant_id` est affiché\_:<ul><li>dans la section <b>Company settings > Company</b>\_;</li><li>dans l'URL de la barre d'adresse du navigateur sur n'importe quelle page du compte éditeur. L'URL est au format suivant\_: `https://publisher.xsolla.com/<merchant_id>`.</li></ul></li><li>`api_key` ne s'affiche dans le compte éditeur qu'une seule fois lors de sa création, vous devez donc la conserver de votre côté. Vous pouvez créer une nouvelle clé dans les sections suivantes\_:<ul><li><b>Company settings > API keys</b>\_;</li><li><b>Project settings > API keys</b>.</li></ul></li></ul><br>\nPour plus d'informations sur l'utilisation des clés API, consultez la [référence API](https://developers.xsolla.com/fr/api/getting-started/#api_keys_overview)."
      scheme: basic
      type: http
    subscriptionsManagementJwtAuth:
      scheme: bearer
      type: http
info:
  description: "# Présentation\n\n* **Version\_:** 2.0\n* **Serveurs\_:** `https://api.xsolla.com/merchant/v2/`\n\nCette référence API décrit les endpoints pour la gestion des abonnements, des coupons et des promotions.\nPour plus d'informations sur les abonnements, consultez le [guide du produit](https://developers.xsolla.com/fr/doc/subscriptions) et le [glossaire](https://developers.xsolla.com/fr/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: |-
        Créez une nouvelle campagne de coupons. 
        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>
        </div>
      operationId: create-campaign
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              campaign_code: sample_campaign
              campaign_names:
                en: Campaign Name
                ru: Название кампании
              campaign_redeems_count_for_user: 1
              expiration_date: '2019-12-31'
              project_id: 12345
              redeems_count: 10
              redeems_count_for_user: 1
              subscription_coupon:
                plan_id: 123
                product_id: 456
                trial_period: 30
              virtual_currency_amount: 200
            schema:
              allOf:
                - required:
                    - campaign_code
                    - project_id
                    - campaign_names
                - $ref: '#/components/schemas/Campaign'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  id:
                    example: 9134
                    type: integer
                type: object
          description: Created.
      security:
        - basicAuth: []
      summary: Créer une campagne
      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: |-
        Ajoutez un code promo à une campagne de coupons. 
        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</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: Code de coupon.
                  example: 34bryrb3
                  type: string
              required:
                - coupon_code
              type: object
        required: true
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Ajouter un coupon à une campagne
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions:
    get:
      description: |-
        Liste de toutes les promotions. 
        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</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: Lire la liste des promotions
      tags:
        - promotions
      x-admin: true
      x-server: true
    post:
      description: |-
        Créer une nouvelle promotion. 
        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</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 promotion.
                    type: integer
                type: object
          description: Created.
      security:
        - basicAuth: []
      summary: Créer une promotion
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/promotions/{promotion_id}:
    delete:
      description: >-
        Supprime une promotion. Vous ne pouvez supprimer que les promotions avec
        `enabled` = `false`. 

        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>
        </div>
      operationId: delete-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Supprimer une promotion
      tags:
        - promotions
      x-admin: true
      x-server: true
    get:
      description: |-
        Récupère une promotion. 
        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</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: Lire une promotion
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        Met à jour une promotion. Si la promotion est en lecture seule
        (`read_only` = `true`), vous n'êtes pas autorisé à modifier le paramètre
        `project_id`. 

        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>
        </div>
      operationId: update-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              description:
                en: Promotion with 5% discount
                ru: Акция со скидкой 5%
              label:
                en: 5%
                ru: 5%
              name:
                en: 5% discount
                ru: скидка 5%
              project_id: 40544
              technical_name: Sale promotion
            schema:
              allOf:
                - required:
                    - project_id
                    - technical_name
                - $ref: '#/components/schemas/GetPromotion'
        required: true
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Mettre à jour une promotion
      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: |-
        Associez une campagne de coupons à une promotion spécifique. 
        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</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: Tableau des ID des campagnes.
                  example:
                    - 9135
                  items:
                    type: integer
                  type: array
              required:
                - campaigns
              type: object
        required: true
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Lier une campagne à une promotion
      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: >-
        Obtient les systèmes de paiement pris en charge pour une promotion. Si
        la liste est vide, la promotion s'appliquera à tous les systèmes de
        paiement. 

        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</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: Lire les systèmes de paiement
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: >-
        Définit les systèmes de paiement pris en charge pour une promotion. Si
        la liste est vide, la promotion s'appliquera à tous les systèmes de
        paiement. Si la promotion est en lecture seule (`read_only` = `true`),
        vous ne pouvez pas appeler cette méthode. 

        <div class="notice">
          <p><strong>Remarque</strong></p><p>Cet appel API ne contient pas le paramètre de chemin<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>
        </div>
      operationId: set-payment-systems
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              payment_systems:
                - id: 24
                  name: PayPal
            schema:
              $ref: '#/components/schemas/PromotionPaymentSystem'
        required: true
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Définir les systèmes de paiement
      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: "Obtient les plages de dates/heures pendant lesquelles une promotion est valide. \n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>"
      operationId: get-validity-periods
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                id: 17840
                periods:
                  - from: '2020-02-01T00:00:00+04:00'
                    offset: '+04:00'
                    to: '2020-11-30T01:28:42+04:00'
              schema:
                allOf:
                  - properties:
                      id:
                        type: integer
                    type: object
                  - $ref: '#/components/schemas/PromotionPeriod'
          description: OK.
      security:
        - basicAuth: []
      summary: Lire les périodes de validité
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: "Définit les plages de dates/heures pendant lesquelles une promotion est valide. Si la promotion est en lecture seule (`read_only` = `true`), vous ne pouvez pas modifier les périodes existantes, mais vous pouvez en ajouter de nouvelles. \n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>"
      operationId: set-validity-periods
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              periods:
                - from: '2019-03-02T00:00:00+04:00'
                  to: '2019-04-02T00:00:00+04:00'
            schema:
              $ref: '#/components/schemas/PromotionPeriod'
        required: true
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Définir les périodes de validité
      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: "Vous devez vérifier une promotion avant de l'activer. Cette méthode renvoie la liste des erreurs, le cas échéant. \n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>"
      operationId: review-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - component: rewards
                  message: Please select a reward
              schema:
                items:
                  properties:
                    component:
                      type: string
                    message:
                      type: string
                  type: object
                type: array
          description: OK.
      security:
        - basicAuth: []
      summary: Réviser une promotion
      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: "Obtient la liste des récompenses associées à une promotion. \n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>"
      operationId: get-rewards
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                id: 17840
                item:
                  bonus:
                    - id: 123456
                      localized_name: T-34-3
                      quantity: 2
                      sku: '1234'
                  discount:
                    - discount_percent: 5
                      localized_name: T-34-3
                      max_amount: 10
                      sku: '1234'
                package:
                  bonus_amount: 5
                  bonus_percent: 5
                purchase:
                  discount_percent: 10
                subscription:
                  trial_days: 30
              schema:
                allOf:
                  - properties:
                      id:
                        type: integer
                    type: object
                  - $ref: '#/components/schemas/PromotionReward'
          description: OK.
      security:
        - basicAuth: []
      summary: Lire les récompenses
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: "Définit les récompenses pour une promotion. Si la promotion est en lecture seule (`read_only` = `true`), vous ne pouvez pas mettre à jour les récompenses. \n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>"
      operationId: set-rewards
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              item:
                bonus:
                  - quantity: 2
                    sku: '1234'
                discount:
                  - discount_percent: 5
                    max_amount: 10
                    sku: '1234'
              package:
                bonus_amount: 5
                bonus_percent: 5
              purchase:
                discount_percent: 10
              subscription:
                trial_days: 30
            schema:
              $ref: '#/components/schemas/PromotionReward'
        required: true
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Définir les récompenses
      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: "Obtient des informations sur le sujet d'une promotion. \n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>"
      operationId: get-subject
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '200':
          content:
            application/json:
              example:
                digital_contents: null
                id: 178
                items:
                  - id: 1234
                    localized_name: T-34-3
                    sku: '1234'
                packages: null
                purchase: false
                subscriptions: null
              schema:
                allOf:
                  - $ref: '#/components/schemas/PromotionSubject'
                  - properties:
                      id:
                        type: integer
                    type: object
          description: OK.
      security:
        - basicAuth: []
      summary: Lire le sujet
      tags:
        - promotions
      x-admin: true
      x-server: true
    put:
      description: "Définit le sujet d'une promotion. Si la promotion est en lecture seule (`read_only` = `true`), vous ne pouvez pas mettre à jour le sujet. Le sujet peut prendre les valeurs suivantes\_: `purchase`, `items` ou `packages`. \n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div>"
      operationId: set-subject
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              digital_contents: null
              items:
                - sku: '1234'
              packages: null
              purchase: false
              subscriptions: null
            schema:
              $ref: '#/components/schemas/PromotionSubject'
        required: true
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Définir le sujet
      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: "Bascule le statut d'une promotion de `enabled` à `disabled` et vice versa. \n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div> "
      operationId: toggle-promotion
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/promotion-id-path-param'
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Basculer une promotion
      tags:
        - promotions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/subscriptions:
    get:
      description: "Répertorie tous les abonnements récurrents.<div class=\"notice\"><strong>Remarque</strong><br><br> Cette méthode API ne peut pas être utilisée en cas de charge élevée. La charge maximale est de 20 requêtes par minute.</div>\n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div> "
      operationId: get-subscriptions
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
        - $ref: '#/components/parameters/offset-query-param'
        - $ref: '#/components/parameters/limit-query-param'
        - $ref: '#/components/parameters/user-id-query-param'
        - $ref: '#/components/parameters/array-project-id-query-param'
        - $ref: '#/components/parameters/array-plan-id-query-param'
        - $ref: '#/components/parameters/array-product-id-query-param'
        - $ref: '#/components/parameters/array-group-id-query-param'
        - $ref: '#/components/parameters/status-query-param-array'
        - $ref: '#/components/parameters/datetime-from-query-param'
        - $ref: '#/components/parameters/datetime-to-query-param'
      responses:
        '200':
          content:
            application/json:
              example:
                - charge_amount: 0.03
                  currency: USD
                  date_create: '2013-09-05T15:27:47+04:00'
                  date_end: '2014-02-06T11:32:48+04:00'
                  date_last_charge: null
                  date_next_charge: null
                  id: 45
                  plan:
                    id: 12345
                    project_id: 12345
                  product:
                    id: null
                  status: canceled
                  user:
                    id: User1
                    name: John Smith
              schema:
                items:
                  $ref: '#/components/schemas/SubscriptionResponse'
                type: array
          description: OK.
      security:
        - basicAuth: []
      summary: Lire la liste des abonnements
      tags:
        - subscriptions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /merchants/{merchant_id}/token:
    post:
      description: "Vous pouvez créer un jeton avec des paramètres utilisateur arbitraires. Vous envoyez ces paramètres lors de l'obtention du jeton et les recevez en retour après un paiement réussi. Un jeton ne peut contenir que des paramètres décrits dans ce document ou prédéfinis par vous.\n\nSi un paramètre est envoyé dans un format incorrect ou a un type incorrect, aucun jeton ne sera émis. Vous recevrez un code HTTP 422 avec la description de l'erreur dans le corps JSON. Dans `extended_message`, vous recevrez une information sur les paramètres exacts qui ont été envoyés de manière incorrecte.\n<div class=\"notice\">\n  <p><strong>Remarque</strong></p><p> Cet appel API ne contient pas le paramètre de chemin\_<code>project_id</code>, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.</p>\n</div> "
      operationId: create-token
      parameters:
        - $ref: '#/components/parameters/merchant-id-path-param'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/token'
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                token: eop57k1boA7nnYPtewZ6KEXJyJADEwRT
              schema:
                properties:
                  token:
                    type: string
                type: object
          description: Created.
        '422':
          content:
            application/json:
              example:
                extended_message:
                  global_errors: []
                  property_errors:
                    purchase.checkout.amount:
                      - String value found, but a number is required
                http_status_code: 422
                message: >-
                  JSON is not valid against json schema, please check
                  documentation
                  https://developers.xsolla.com/fr/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: Noms des paramètres avec la description de l'erreur.
                        type: object
                    type: object
                  http_status_code:
                    type: integer
                  message:
                    type: string
                  request_id:
                    type: string
                type: object
          description: Unprocessable Entity.
      security:
        - basicAuth: []
      summary: Créer un jeton
      tags:
        - token
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/coupons/{code}/details:
    get:
      description: Récupération des informations sur le coupon par son code.
      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: Lire un coupon
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/coupons/{code}/redeem:
    post:
      description: Utilisation d'un coupon par son code.
      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 utilisateur.
                  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: Échanger un coupon
      tags:
        - coupons
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/currencies:
    get:
      description: Récupère la liste de toutes les devises d'abonnement prises en charge.
      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: Lire les devises
      tags:
        - payments
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/payments:
    get:
      description: Récupère la liste de tous les paiements d'abonnements.
      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: Lire les paiements
      tags:
        - payments
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/plans:
    get:
      description: Récupère la liste de tous les plans d'abonnement.
      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: >-
                            Nom du plan dans la langue par défaut (en), répète
                            la valeur du paramètre name.en.
                          type: string
                      type: object
                type: array
          description: OK.
      security:
        - basicAuth: []
      summary: Lire les plans
      tags:
        - plans
      x-admin: true
      x-server: true
    post:
      description: Crée un plan d'abonnement.
      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: Сreated.
      security:
        - basicAuth: []
      summary: Créer un plan
      tags:
        - plans
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/plans/{plan_id}:
    delete:
      description: Désactive un plan d'abonnement.
      operationId: disable-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Désactiver un plan
      tags:
        - plans
      x-admin: true
      x-server: true
    patch:
      description: Active un plan d'abonnement.
      operationId: enable-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Activer un plan
      tags:
        - plans
      x-admin: true
      x-server: true
    put:
      description: Met à jour les paramètres d'un plan d'abonnement.
      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: Mettre à jour un plan
      tags:
        - plans
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/plans/{plan_id}/delete:
    delete:
      description: Supprime un plan d'abonnement.
      operationId: delete-plan
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/plan-id-path-param'
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Supprimer un plan
      tags:
        - plans
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/products:
    get:
      description: Récupère la liste de tous les produits par abonnement.
      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: Lire les produits
      tags:
        - products
      x-admin: true
      x-server: true
    post:
      description: Crée un produit par abonnement.
      operationId: create-product
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
      requestBody:
        content:
          application/json:
            example:
              description:
                en: Kids TV
              group_id: charge
              name: Channel2
            schema:
              allOf:
                - required:
                    - name
                    - group_id
                - $ref: '#/components/schemas/SubscriptionsProduct'
        required: true
      responses:
        '201':
          content:
            application/json:
              example:
                product_id: 172003
              schema:
                properties:
                  product_id:
                    type: integer
                type: object
          description: Created.
      security:
        - basicAuth: []
      summary: Créer un produit
      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: Supprime un produit par abonnement.
      operationId: delete-product
      parameters:
        - $ref: '#/components/parameters/project-id-path-param'
        - $ref: '#/components/parameters/product-id-path-param'
      responses:
        '204':
          description: No content.
      security:
        - basicAuth: []
      summary: Supprimer un produit
      tags:
        - products
      x-admin: true
      x-server: true
    put:
      description: Met à jour un produit par abonnement.
      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: Mettre à jour un produit
      tags:
        - products
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
  /projects/{project_id}/subscriptions/{subscription_id}:
    get:
      description: Récupère les informations d'un abonnement spécifique par son 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: Lire un abonnement
      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: >-
        Récupère la liste de tous les paiements effectués par un utilisateur
        spécifique.
      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: Lire les paiements d'un utilisateur
      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: >-
        Met à jour un abonnement en modifiant son statut (`active`, `canceled`
        ou `non_renewing`) ou en reportant la prochaine date de facturation.
      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: Mettre à jour un abonnement
      tags:
        - subscriptions
      x-admin: true
      x-server: true
    servers:
      - url: https://api.xsolla.com/merchant/v2
tags:
  - name: token
    x-displayName: Jeton
  - name: plans
    x-displayName: Plans
  - name: products
    x-displayName: Produits
  - name: subscriptions
    x-displayName: Subscription management
  - name: payments
    x-displayName: Paiements
  - name: promotions
    x-displayName: Promotions
  - name: coupons
    x-displayName: Coupons
  - 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
