Passer au contenu

Présentation

  • Version : 2.0
  • Serveurs : https://api.xsolla.com/merchant/v2/

Cette référence API décrit les endpoints pour la gestion des abonnements, des coupons et des promotions. Pour plus d'informations sur les abonnements, consultez le guide du produit et le glossaire.

Télécharger la description d'OpenAPI
Langues
Serveurs
Mock server
https://xsolla.redocly.app/_mock/fr/api/subscriptions/
Opérations

Requête

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.

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

Remarque

Cet appel API ne contient pas le paramètre de chemin project_id, vous devez donc utiliser la clé API valide dans tous les projets de l'entreprise pour l'autorisation.

Sécurité
basicAuth
Chemin
merchant_idintegerobligatoire

ID de commerçant.

Corpsapplication/jsonobligatoire
custom_parametersobject

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.

custom_parameters.​active_datestring

Date de dernière visite selon la norme ISO 8601.

custom_parameters.​additional_verificationboolean

Indique si le joueur utilise des méthodes de vérification de compte.

custom_parameters.​character_customizedboolean

Indique si le joueur a personnalisé son personnage.

custom_parameters.​chat_activityboolean

Indique si le joueur utilise la fonction de chat.

custom_parameters.​completed_tasksinteger

Nombre de tâches/objectifs terminés.

custom_parameters.​forum_activityboolean

Indique si le joueur utilise la fonction forum.

custom_parameters.​items_usedboolean

Indique si le joueur utilise des objets achetés dans le jeu.

custom_parameters.​karma_pointsinteger

Karma du joueur.

custom_parameters.​last_change_password_datestring

Date de dernier changement de mot de passe selon la norme ISO 8601.

custom_parameters.​non_premium_currencyinteger(float)

Quantité de la monnaie non-premium.

custom_parameters.​notifications_enabledboolean

Indique si le joueur a activé les notifications.

custom_parameters.​profile_completedboolean

Indique si le joueur a ajouté des informations supplémentaires à son profil.

custom_parameters.​profile_image_addedboolean

Indique si le joueur a téléchargé une image de profil.

custom_parameters.​pvp_activityboolean

Indique si le joueur participe à des combats JcJ.

custom_parameters.​registration_datestring

Date de création de compte selon la norme ISO 8601.

custom_parameters.​session_timestring

Durée moyenne de session selon la norme ISO 8601.

custom_parameters.​social_networks_addedboolean

Indique si le joueur a connecté des profils de médias sociaux.

custom_parameters.​total_bansinteger

Nombre de fois que le joueur a été banni du chat/forum.

custom_parameters.​total_charactersinteger

Nombre de personnages dans le jeu.

custom_parameters.​total_clansinteger

Nombre de clans dont le joueur est membre.

custom_parameters.​total_friendsinteger

Nombre d'amis.

custom_parameters.​total_game_eventsinteger

Nombre d'événements en jeu auxquels le joueur a participé.

custom_parameters.​total_giftsinteger

Nombre de cadeaux en jeu que le joueur a envoyés/reçus.

custom_parameters.​total_hoursinteger

Nombre total d'heures passées dans le jeu.

custom_parameters.​total_inventory_valueinteger(float)

Valeur totale de l'inventaire en monnaie de jeu.

custom_parameters.​total_suminteger(float)

Montant total des paiements.

custom_parameters.​tutorial_completedboolean

Indique si le joueur a terminé le tutoriel du jeu.

custom_parameters.​unlocked_achievementsinteger

Nombre de réalisations débloquées.

custom_parameters.​user_levelinteger

Niveau, réputation ou rang du joueur.

custom_parameters.​win_rateinteger

Taux de victoire du joueur.

purchaseobject

Informations sur l'achat.

Exemple: {"checkout":{"amount":10,"currency":"USD"},"subscription":{"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}}
purchase.​checkoutobject

Informations sur le paiement.

Exemple: {"amount":10,"currency":"USD"}
purchase.​checkout.​amountinteger(float)

Montant de l'achat.

Exemple: 10
purchase.​checkout.​currencystring

Devise d'achat. Code de devise à trois lettres selon la norme ISO 4217.

Exemple: "USD"
purchase.​subscriptionobject

Données d'abonnement.

Exemple: {"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}
purchase.​subscription.​available_plansArray of strings

Plans d'abonnement à afficher dans l'interface de paiement.

purchase.​subscription.​currencystring

Devise du plan d'abonnement à utiliser dans tous les calculs.

purchase.​subscription.​giftobject

Informations sur l'abonnement cadeau

Exemple: {"email":"recipient_email@email.com","recipient":"test_recipient_v1"}
purchase.​subscription.​gift.​anonymousboolean

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.

purchase.​subscription.​gift.​emailstringobligatoire

Adresse e-mail du destinataire.

Exemple: "recipient_email@email.com"
purchase.​subscription.​gift.​messagestring

Message pour le destinataire.

purchase.​subscription.​gift.​recipientstringobligatoire

ID du destinataire.

Exemple: "test_recipient_v1"
purchase.​subscription.​gift.​redirect_urlstring

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.

purchase.​subscription.​operationstring

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.

purchase.​subscription.​plan_idstring

ID externe du plan d'abonnement. Il se trouve dans le compte éditeur sous la section Subscriptions > Subscription plans.

purchase.​subscription.​product_idstring

ID de produit.

purchase.​subscription.​trial_daysinteger

Période d'essai en jours.

settingsobject

Paramètres personnalisés de projet.

Exemple: {"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"}}
settings.​currencystring

Devise de paiement préférée. Code de devise à trois lettres selon la norme ISO 4217.

Exemple: "USD"
settings.​external_idstring

ID de transaction dans le jeu. Il doit être unique pour chaque paiement d'utilisateur.

settings.​languagestring

Langue d'interface. Code de langue à deux lettres minuscules.

Exemple: "en"
settings.​modestring

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.

settings.​payment_methodinteger

ID de mode de paiement.

settings.​payment_widgetstring

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"
settings.​project_idintegerobligatoire

ID Xsolla du jeu. Il se trouve dans le compte éditeur.

Exemple: 16184
settings.​redirect_policyobject

Paramètres de la politique de redirection.

settings.​redirect_policy.​autoredirect_from_status_pageboolean

Détermine si l'utilisateur doit être redirigé automatiquement à partir de la page d'état.

settings.​redirect_policy.​delayinteger

Délai (en secondes) après lequel l'utilisateur est automatiquement redirigé vers l'URL de retour.

settings.​redirect_policy.​manual_redirection_actionstring

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"
settings.​redirect_policy.​redirect_button_captionstring

Texte du bouton de redirection manuelle.

settings.​redirect_policy.​redirect_conditionsstring

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"
settings.​redirect_policy.​status_for_manual_redirectionstring

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"
settings.​return_urlstring

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.

settings.​uiobject

Paramètres d'interface.

Exemple: {"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"}
settings.​ui.​componentsobject

Paramètres de menu.

Exemple: {"virtual_currency":{"custom_amount":true}}
settings.​ui.​components.​subscriptionsobject

Paramètres du sous-menu des plans d'abonnement.

settings.​ui.​components.​subscriptions.​hiddenboolean

Détermine l'affichage du sous-menu.

settings.​ui.​components.​subscriptions.​orderinteger

Position du sous-menu dans le menu.

settings.​ui.​components.​virtual_currencyobject

Paramètres du sous-menu de la monnaie virtuelle.

Exemple: {"custom_amount":true}
settings.​ui.​components.​virtual_currency.​custom_amountboolean

Détermine si l'utilisateur peut saisir une quantité aléatoire de monnaie virtuelle dans l'interface de paiement.

Exemple: true
settings.​ui.​components.​virtual_currency.​hiddenboolean

Détermine l'affichage du sous-menu.

settings.​ui.​components.​virtual_currency.​orderinteger

Position du sous-menu dans le menu.

settings.​ui.​components.​virtual_itemsobject

Paramètres du sous-menu des objets virtuels.

settings.​ui.​components.​virtual_items.​hiddenboolean

Détermine l'affichage du sous-menu.

settings.​ui.​components.​virtual_items.​orderinteger

Position du sous-menu dans le menu.

settings.​ui.​components.​virtual_items.​selected_groupstring

Groupe à afficher après l'ouverture de l'onglet des objets virtuels.

settings.​ui.​components.​virtual_items.​selected_itemstring

Objet à afficher après l'ouverture de l'onglet des objets virtuels (UGS de l'objet).

settings.​ui.​desktopobject

Paramètres de l'interface pour la version de bureau.

Exemple: {"virtual_item_list":{"button_with_price":true,"layout":"list"}}
settings.​ui.​desktop.​headerobject

Paramètres de l'en-tête.

settings.​ui.​desktop.​header.​close_buttonboolean

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.

settings.​ui.​desktop.​header.​is_visibleboolean

Détermine l'affichage de l'en-tête dans l'interface de paiement.

settings.​ui.​desktop.​header.​typestring

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"
settings.​ui.​desktop.​header.​visible_logoboolean

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

settings.​ui.​desktop.​header.​visible_nameboolean

Détermine l'affichage du nom du projet dans l'en-tête.

settings.​ui.​desktop.​header.​visible_purchaseboolean

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.

settings.​ui.​desktop.​subscription_listobject

Paramètres de la liste des plans d'abonnement.

settings.​ui.​desktop.​subscription_list.​descriptionstring

Texte à afficher dans l'interface de paiement au-dessus de la liste des plans d'abonnement disponibles.

settings.​ui.​desktop.​subscription_list.​display_local_priceboolean

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.

settings.​ui.​desktop.​subscription_list.​layoutstring

Modèle de liste. La valeur peut être list (par défaut) ou grid.

Enum"list""grid"
settings.​ui.​desktop.​virtual_currency_listobject

Paramètres de la liste des monnaies virtuelles.

settings.​ui.​desktop.​virtual_currency_list.​button_with_priceboolean

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.

settings.​ui.​desktop.​virtual_currency_list.​descriptionstring

Texte à afficher au-dessus de la liste des monnaies virtuelles.

settings.​ui.​desktop.​virtual_item_listobject

Paramètres de la liste des objets virtuels.

Exemple: {"button_with_price":true,"layout":"list"}
settings.​ui.​desktop.​virtual_item_list.​button_with_priceboolean

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.

Exemple: true
settings.​ui.​desktop.​virtual_item_list.​layoutstring

Modèle de liste. La valeur peut être list (par défaut) ou grid.

Enum"list""grid"
Exemple: "list"
settings.​ui.​desktop.​virtual_item_list.​viewstring

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"
settings.​ui.​headerobject
settings.​ui.​header.​visible_virtual_currency_balanceboolean

Détermine l'affichage de cet élément dans l'interface de paiement. Défini sur true par défaut.

settings.​ui.​is_prevent_external_link_openboolean

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.

settings.​ui.​license_urlstring

Lien vers le CLUF.

settings.​ui.​mobileobject
settings.​ui.​mobile.​footerobject
settings.​ui.​mobile.​footer.​is_visibleboolean

Détermine l'affichage du pied de page dans la version mobile de l'interface de paiement.

settings.​ui.​mobile.​headerobject
settings.​ui.​mobile.​header.​close_buttonboolean

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.

settings.​ui.​mobile.​modestring

L'utilisateur ne peut payer qu'en utilisant les modes de paiement enregistrés. L'unique valeur possible est saved_accounts.

Valeur"saved_accounts"
settings.​ui.​modestring

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.

settings.​ui.​sizestring

Taille de l'interface de paiement. La valeur peut être :

  • 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)
  • medium : taille recommandée. Utilisez cette valeur pour afficher l'interface de paiement dans une lightbox (dimensions : 740 x 760)
  • 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"
Exemple: "medium"
settings.​ui.​themestring

Thème de l'interface de paiement. La valeur peut être default ou default_dark.

Enum"default""default_dark"
settings.​ui.​user_accountobject

Informations de compte utilisateur.

settings.​ui.​user_account.​historyobject

Sous-menu History

settings.​ui.​user_account.​history.​enableboolean

Détermine l'affichage du sous-menu. Défini sur false par défaut.

settings.​ui.​user_account.​history.​orderinteger

Position du sous-menu dans le menu.

settings.​ui.​user_account.​infoobject

Page My account.

settings.​ui.​user_account.​info.​enableboolean

Détermine l'affichage du sous-menu. Défini sur false par défaut.

settings.​ui.​user_account.​info.​orderinteger

Position du sous-menu dans le menu.

settings.​ui.​user_account.​payment_accountsobject

Sous-menu My payment accounts.

settings.​ui.​user_account.​payment_accounts.​enableboolean

Détermine l'affichage du sous-menu. Défini sur false par défaut.

settings.​ui.​user_account.​payment_accounts.​orderinteger

Position du sous-menu dans le menu.

settings.​ui.​user_account.​subscriptionsobject

Sous-menu Manage subscriptions.

settings.​ui.​user_account.​subscriptions.​enableboolean

Détermine l'affichage du sous-menu. Défini sur false par défaut.

settings.​ui.​user_account.​subscriptions.​orderinteger

Position du sous-menu dans le menu.

settings.​ui.​versionstring

Type d'appareil. La valeur peut être desktop (par défaut) ou mobile.

Enum"desktop""mobile"
userobject

Informations sur l'utilisateur.

Exemple: {"age":19,"country":{"allow_modify":true,"value":"US"},"email":{"value":"john.smith@mail.com"},"id":{"value":"user_2"},"name":{"value":"John Smith"}}
user.​ageinteger

Âge de l'utilisateur.

Exemple: 19
user.​attributesobject

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.

user.​countryobject
Exemple: {"allow_modify":true,"value":"US"}
user.​country.​allow_modifyboolean

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.

Exemple: true
user.​country.​valuestring

Code pays à deux lettres majuscules selon la norme ISO 3166-1 alpha-2.

Exemple: "US"
user.​emailobject

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.

Exemple: {"value":"john.smith@mail.com"}
user.​email.​valuestringobligatoire

Adresse e-mail de l'utilisateur. Doit être valide selon le protocole RFC 822.

Exemple: "john.smith@mail.com"
user.​idobjectobligatoire
Exemple: {"value":"user_2"}
user.​id.​valuestringobligatoire

ID utilisateur.

Exemple: "user_2"
user.​is_legalboolean

Détermine si l'utilisateur est une personne morale.

user.​legalobject

Informations de la personne morale. L'objet et tous ses paramètres sont requis si user.is_legal est défini sur true.

user.​legal.​addressstring

Adresse légale complète.

user.​legal.​countrystring

Pays de constitution. Code pays à deux lettres majuscules selon la norme ISO 3166-1 alpha-2.

user.​legal.​namestring

Nom légal complet.

user.​legal.​vat_idstring

Numéro d'identification fiscal.

user.​nameobject
Exemple: {"value":"John Smith"}
user.​name.​valuestring

Pseudo de l'utilisateur.

Exemple: "John Smith"
user.​phoneobject
user.​phone.​valuestring

Numéro de téléphone de l'utilisateur.

user.​public_idobject
user.​public_id.​valuestring

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

user.​steam_idobject
user.​steam_id.​valuestring

ID Steam.

user.​tracking_idobject
user.​tracking_id.​valuestring

ID de suivi unique (utilisé dans les campagnes de marketing).

user.​utmobject

Attributs de trafic.

user.​utm.​utm_campaignstring

Titre de la campagne translittéré ou traduit en anglais.

user.​utm.​utm_contentstring

Contenu de la campagne.

user.​utm.​utm_mediumstring

Canal de trafic (annonces contextuelles, annonces par affichage, e-mailing, etc.).

user.​utm.​utm_sourcestring

Source de trafic.

user.​utm.​utm_termstring

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.

curl -i -X POST \
  -u <username>:<password> \
  'https://xsolla.redocly.app/_mock/fr/api/subscriptions/merchants/{merchant_id}/token' \
  -H 'Content-Type: application/json' \
  -d '{
    "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"
      }
    }
  }'

Réponses

Created.

Corpsapplication/json
tokenstring
Réponse
application/json
{ "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT" }
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations
Opérations