# Créer un jeton 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. Endpoint: POST /merchants/{merchant_id}/token Version: 2.0 Security: basicAuth ## Path parameters: - `merchant_id` (integer, required) ID de commerçant. ## Request fields (application/json): - `custom_parameters` (object) 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/). - `custom_parameters.active_date` (string) Date de dernière visite selon la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.additional_verification` (boolean) Indique si le joueur utilise des méthodes de vérification de compte. - `custom_parameters.character_customized` (boolean) Indique si le joueur a personnalisé son personnage. - `custom_parameters.chat_activity` (boolean) Indique si le joueur utilise la fonction de chat. - `custom_parameters.completed_tasks` (integer) Nombre de tâches/objectifs terminés. - `custom_parameters.forum_activity` (boolean) Indique si le joueur utilise la fonction forum. - `custom_parameters.items_used` (boolean) Indique si le joueur utilise des objets achetés dans le jeu. - `custom_parameters.karma_points` (integer) Karma du joueur. - `custom_parameters.last_change_password_date` (string) Date de dernier changement de mot de passe selon la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.non_premium_currency` (integer) Quantité de la monnaie non-premium. - `custom_parameters.notifications_enabled` (boolean) Indique si le joueur a activé les notifications. - `custom_parameters.profile_completed` (boolean) Indique si le joueur a ajouté des informations supplémentaires à son profil. - `custom_parameters.profile_image_added` (boolean) Indique si le joueur a téléchargé une image de profil. - `custom_parameters.pvp_activity` (boolean) Indique si le joueur participe à des combats JcJ. - `custom_parameters.registration_date` (string) Date de création de compte selon la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.session_time` (string) Durée moyenne de session selon la norme [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). - `custom_parameters.social_networks_added` (boolean) Indique si le joueur a connecté des profils de médias sociaux. - `custom_parameters.total_bans` (integer) Nombre de fois que le joueur a été banni du chat/forum. - `custom_parameters.total_characters` (integer) Nombre de personnages dans le jeu. - `custom_parameters.total_clans` (integer) Nombre de clans dont le joueur est membre. - `custom_parameters.total_friends` (integer) Nombre d'amis. - `custom_parameters.total_game_events` (integer) Nombre d'événements en jeu auxquels le joueur a participé. - `custom_parameters.total_gifts` (integer) Nombre de cadeaux en jeu que le joueur a envoyés/reçus. - `custom_parameters.total_hours` (integer) Nombre total d'heures passées dans le jeu. - `custom_parameters.total_inventory_value` (integer) Valeur totale de l'inventaire en monnaie de jeu. - `custom_parameters.total_sum` (integer) Montant total des paiements. - `custom_parameters.tutorial_completed` (boolean) Indique si le joueur a terminé le tutoriel du jeu. - `custom_parameters.unlocked_achievements` (integer) Nombre de réalisations débloquées. - `custom_parameters.user_level` (integer) Niveau, réputation ou rang du joueur. - `custom_parameters.win_rate` (integer) Taux de victoire du joueur. - `purchase` (object) Informations sur l'achat. Example: {"checkout":{"amount":10,"currency":"USD"},"subscription":{"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}}} - `purchase.checkout` (object) Informations sur le paiement. Example: {"amount":10,"currency":"USD"} - `purchase.checkout.amount` (integer) Montant de l'achat. Example: 10 - `purchase.checkout.currency` (string) Devise d'achat. Code de devise à trois lettres selon la norme [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Example: "USD" - `purchase.subscription` (object) Données d'abonnement. Example: {"gift":{"email":"recipient_email@email.com","recipient":"test_recipient_v1"}} - `purchase.subscription.available_plans` (array) Plans d'abonnement à afficher dans l'interface de paiement. - `purchase.subscription.currency` (string) Devise du plan d'abonnement à utiliser dans tous les calculs. - `purchase.subscription.gift` (object) Informations sur l'abonnement cadeau Example: {"email":"recipient_email@email.com","recipient":"test_recipient_v1"} - `purchase.subscription.gift.anonymous` (boolean) 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.email` (string, required) Adresse e-mail du destinataire. Example: "recipient_email@email.com" - `purchase.subscription.gift.message` (string) Message pour le destinataire. - `purchase.subscription.gift.recipient` (string, required) ID du destinataire. Example: "test_recipient_v1" - `purchase.subscription.gift.redirect_url` (string) 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.operation` (string) 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_id` (string) ID externe du plan d'abonnement. Il se trouve dans le compte éditeur sous la section Subscriptions > Subscription plans. - `purchase.subscription.product_id` (string) ID de produit. - `purchase.subscription.trial_days` (integer) Période d'essai en jours. - `settings` (object) Paramètres personnalisés de projet. Example: {"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.currency` (string) Devise de paiement préférée. Code de devise à trois lettres selon la norme [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Example: "USD" - `settings.external_id` (string) ID de transaction dans le jeu. Il doit être unique pour chaque paiement d'utilisateur. - `settings.language` (string) Langue d'interface. [Code de langue](https://developers.xsolla.com/fr/doc/pay-station/features/localization/) à deux lettres minuscules. Example: "en" - `settings.mode` (string) 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_method` (integer) ID de mode de paiement. - `settings.payment_widget` (string) 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_id` (integer, required) ID Xsolla du jeu. Il se trouve dans le compte éditeur. Example: 16184 - `settings.redirect_policy` (object) Paramètres de la politique de redirection. - `settings.redirect_policy.autoredirect_from_status_page` (boolean) Détermine si l'utilisateur doit être redirigé automatiquement à partir de la page d'état. - `settings.redirect_policy.delay` (integer) Délai (en secondes) après lequel l'utilisateur est automatiquement redirigé vers l'URL de retour. - `settings.redirect_policy.manual_redirection_action` (string) 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_caption` (string) Texte du bouton de redirection manuelle. - `settings.redirect_policy.redirect_conditions` (string) 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_redirection` (string) 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_url` (string) 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.ui` (object) Paramètres d'interface. Example: {"components":{"virtual_currency":{"custom_amount":true}},"desktop":{"virtual_item_list":{"button_with_price":true,"layout":"list"}},"size":"medium"} - `settings.ui.components` (object) Paramètres de menu. Example: {"virtual_currency":{"custom_amount":true}} - `settings.ui.components.subscriptions` (object) Paramètres du sous-menu des plans d'abonnement. - `settings.ui.components.subscriptions.hidden` (boolean) Détermine l'affichage du sous-menu. - `settings.ui.components.subscriptions.order` (integer) Position du sous-menu dans le menu. - `settings.ui.components.virtual_currency` (object) Paramètres du sous-menu de la monnaie virtuelle. Example: {"custom_amount":true} - `settings.ui.components.virtual_currency.custom_amount` (boolean) Détermine si l'utilisateur peut saisir une quantité aléatoire de monnaie virtuelle dans l'interface de paiement. Example: true - `settings.ui.components.virtual_items` (object) Paramètres du sous-menu des objets virtuels. - `settings.ui.components.virtual_items.selected_group` (string) Groupe à afficher après l'ouverture de l'onglet des objets virtuels. - `settings.ui.components.virtual_items.selected_item` (string) Objet à afficher après l'ouverture de l'onglet des objets virtuels (UGS de l'objet). - `settings.ui.desktop` (object) Paramètres de l'interface pour la version de bureau. Example: {"virtual_item_list":{"button_with_price":true,"layout":"list"}} - `settings.ui.desktop.header` (object) Paramètres de l'en-tête. - `settings.ui.desktop.header.close_button` (boolean) 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_visible` (boolean) Détermine l'affichage de l'en-tête dans l'interface de paiement. - `settings.ui.desktop.header.type` (string) 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_logo` (boolean) 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_name` (boolean) Détermine l'affichage du nom du projet dans l'en-tête. - `settings.ui.desktop.header.visible_purchase` (boolean) 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_list` (object) Paramètres de la liste des plans d'abonnement. - `settings.ui.desktop.subscription_list.description` (string) Texte à afficher dans l'interface de paiement au-dessus de la liste des plans d'abonnement disponibles. - `settings.ui.desktop.subscription_list.display_local_price` (boolean) 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.layout` (string) Modèle de liste. La valeur peut être list (par défaut) ou grid. Enum: "list", "grid" - `settings.ui.desktop.virtual_currency_list` (object) Paramètres de la liste des monnaies virtuelles. - `settings.ui.desktop.virtual_currency_list.button_with_price` (boolean) 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.description` (string) Texte à afficher au-dessus de la liste des monnaies virtuelles. - `settings.ui.desktop.virtual_item_list` (object) Paramètres de la liste des objets virtuels. Example: {"button_with_price":true,"layout":"list"} - `settings.ui.desktop.virtual_item_list.view` (string) 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.header` (object) - `settings.ui.header.visible_virtual_currency_balance` (boolean) 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_open` (boolean) 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_url` (string) Lien vers le CLUF. - `settings.ui.mobile` (object) - `settings.ui.mobile.footer` (object) - `settings.ui.mobile.footer.is_visible` (boolean) Détermine l'affichage du pied de page dans la version mobile de l'interface de paiement. - `settings.ui.mobile.mode` (string) L'utilisateur ne peut payer qu'en utilisant les modes de paiement enregistrés. L'unique valeur possible est saved_accounts. Enum: "saved_accounts" - `settings.ui.mode` (string) 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.size` (string) Taille de l'interface de paiement. La valeur peut être : - [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) - [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) - [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" - `settings.ui.theme` (string) Thème de l'interface de paiement. La valeur peut être default ou default_dark. Enum: "default", "default_dark" - `settings.ui.user_account` (object) Informations de compte utilisateur. - `settings.ui.user_account.history` (object) Sous-menu History - `settings.ui.user_account.history.enable` (boolean) Détermine l'affichage du sous-menu. Défini sur false par défaut. - `settings.ui.user_account.info` (object) Page My account. - `settings.ui.user_account.payment_accounts` (object) Sous-menu My payment accounts. - `settings.ui.user_account.subscriptions` (object) Sous-menu Manage subscriptions. - `settings.ui.version` (string) Type d'appareil. La valeur peut être desktop (par défaut) ou mobile. Enum: "desktop", "mobile" - `user` (object) Informations sur l'utilisateur. Example: {"age":19,"country":{"allow_modify":true,"value":"US"},"email":{"value":"john.smith@mail.com"},"id":{"value":"user_2"},"name":{"value":"John Smith"}} - `user.age` (integer) Âge de l'utilisateur. Example: 19 - `user.attributes` (object) 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.country` (object) Example: {"allow_modify":true,"value":"US"} - `user.country.allow_modify` (boolean) 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. Example: true - `user.country.value` (string) Code pays à deux lettres majuscules selon la norme [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). Example: "US" - `user.email` (object) 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. Example: {"value":"john.smith@mail.com"} - `user.email.value` (string, required) Adresse e-mail de l'utilisateur. Doit être valide selon le protocole [RFC 822](https://www.w3.org/Protocols/rfc822/#z8). Example: "john.smith@mail.com" - `user.id` (object, required) Example: {"value":"user_2"} - `user.id.value` (string, required) ID utilisateur. Example: "user_2" - `user.is_legal` (boolean) Détermine si l'utilisateur est une personne morale. - `user.legal` (object) 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.address` (string) Adresse légale complète. - `user.legal.country` (string) 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). - `user.legal.name` (string) Nom légal complet. - `user.legal.vat_id` (string) Numéro d'identification fiscal. - `user.name` (object) Example: {"value":"John Smith"} - `user.name.value` (string) Pseudo de l'utilisateur. Example: "John Smith" - `user.phone` (object) - `user.phone.value` (string) Numéro de téléphone de l'utilisateur. - `user.public_id` (object) - `user.public_id.value` (string) 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_id` (object) - `user.steam_id.value` (string) ID Steam. - `user.tracking_id` (object) - `user.tracking_id.value` (string) ID de suivi unique (utilisé dans les campagnes de marketing). - `user.utm` (object) Attributs de trafic. - `user.utm.utm_campaign` (string) Titre de la campagne translittéré ou traduit en anglais. - `user.utm.utm_content` (string) Contenu de la campagne. - `user.utm.utm_medium` (string) Canal de trafic (annonces contextuelles, annonces par affichage, e-mailing, etc.). - `user.utm.utm_source` (string) Source de trafic. - `user.utm.utm_term` (string) 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. ## Response 200 fields (application/json): - `token` (string) ## Response 422 fields (application/json): - `extended_message` (object) - `extended_message.global_errors` (array) - `extended_message.property_errors` (object) Noms des paramètres avec la description de l'erreur. - `http_status_code` (integer) - `message` (string) - `request_id` (string)