# Créer un jeton de paiement pour un achat Génère une commande et un jeton de paiement pour celle-ci. La commande est générée sur la base des objets passés dans le corps de la requête. Pour ouvrir l'interface de paiement dans une nouvelle fenêtre, utilisez le lien suivant : https://secure.xsolla.com/paystation4/?token={token}, où {token} est le jeton reçu. À des fins de test, utilisez cette URL : https://sandbox-secure.xsolla.com/paystation4/?token={token}. Remarque Le paramètre user.country.value est utilisé pour sélectionner une devise pour la commande. Si le pays de l'utilisateur est inconnu, fournir l'adresse IP de l'utilisateur dans l'en-tête X-User-Ip est une option alternative. L'une de ces deux options est nécessaire au bon fonctionnement de cette méthode. La devise sélectionnée est utilisée pour les méthodes de paiement sur Pay Station. Endpoint: POST /v3/project/{project_id}/admin/payment/token Version: 2.0.0 Security: basicAuth ## Path parameters: - `project_id` (integer, required) ID de projet. Ce paramètre se trouve dans le Compte éditeur à côté du nom du projet. Example: 44056 ## Request fields (application/json): - `custom_parameters` (object,null) Vos paramètres personnalisés représentés sous la forme d'un JSON valide de paires clé-valeur. Pour configurer des filtres anti-fraude, passez des paramètres supplémentaires via ce champ. [Voir la documentation de Pay Station](https://developers.xsolla.com/fr/doc/pay-station/features/antifraud/). Example: {"custom_parameters":{"bool_param":true,"int_param":100,"null_param":null,"string_param":"example"}} - `promo_code` (string) Code unique sensible à la casse. Comprend des lettres et des chiffres. Example: "WINTER2021" - `purchase` (object, required) - `purchase.items` (array, required) - `purchase.items.quantity` (number, required) Quantité de l'objet. Example: 2 - `purchase.items.sku` (string, required) ID unique de l'objet. L'UGS ne peut comprendre que des caractères alphanumériques latins minuscules et majuscules, des points, des tirets et des traits bas. Example: "t-shirt" - `sandbox` (boolean) Passez la valeur true 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` (object) Paramètres pour la configuration de la procédure de paiement et de l'interface de paiement pour l'utilisateur. - `settings.currency` (string) Devise de paiement préférée. Code de devise à trois lettres selon [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Consultez la documentation pour obtenir des informations détaillées sur les devises [prises en charge par Xsolla](https://developers.xsolla.com/fr/doc/pay-station/references/supported-currencies/). - `settings.external_id` (string) External ID de la transaction. - `settings.language` (string) Langue d'interface. [Code de langue](https://developers.xsolla.com/fr/doc/pay-station/features/localization/) à deux lettres minuscules. - `settings.payment_method` (integer) ID du mode de paiement. Il détermine l'affichage de la devise dans l'interface de paiement, car certains modes de paiement ne prennent en charge que certaines devises. - `settings.redirect_policy` (object) - `settings.redirect_policy.delay` (integer) Délai après lequel l'utilisateur est automatiquement redirigé vers l'URL de retour. - `settings.redirect_policy.redirect_button_caption` (string) Légendes localisées des boutons de redirection. Example: "Text button" - `settings.redirect_policy.redirect_conditions` (string) Statut du paiement déclenchant la redirection de l'utilisateur vers l'URL de retour. Enum: "none", "successful", "successful_or_canceled", "any" - `settings.redirect_policy.status_for_manual_redirection` (string) Statut de paiement déclenchant l'affichage d'un bouton de redirection de l'utilisateur vers l'URL de retour. Enum: "none", "vc", "successful", "successful_or_canceled", "any" - `settings.return_url` (string) Page vers laquelle l'utilisateur est redirigé après un paiement. Les paramètres user_id, foreigninvoice, invoice_id et status sont automatiquement ajoutés au lien. - `settings.ui` (object) Paramètres d'interface. - `settings.ui.currency_format` (string) Définissez sur code pour afficher un code de devise à trois lettres selon la norme [ISO 4217](https://developers.xsolla.com/fr/doc/pay-station/references/supported-currencies/) dans l'interface de paiement. Par défaut, le symbole de la devise est affiché à la place du code de devise à trois lettres. - `settings.ui.desktop` (object) Paramètres de l'interface pour la version de bureau. - `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 dans l'interface de paiement sur ordinateur. Un clic sur ce bouton ferme l'interface de paiement 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 true, le logo est affiché dans l'en-tête. Pour télécharger l'image, ouvrez votre projet dans [Publisher Account](https://publisher.xsolla.com/) et allez dans la section Pay Station > Settings. - `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.header` (object) - `settings.ui.header.visible_virtual_currency_balance` (boolean) Détermine l'affichage de cet élément dans l'interface de paiement. - `settings.ui.is_cart_open_by_default` (boolean) Affichage de la liste des objets dans le panier lors de l'ouverture de la version mobile de l'interface de paiement. Si true, la liste s'affiche dans une vue étendue. Si false(valeur par défaut) ou si le paramètre n'est pas passé, la liste s'affiche dans une vue réduite. - `settings.ui.is_independent_windows` (boolean) Détermine la redirection des utilisateurs du navigateur du lanceur intégré (WebView) vers leur navigateur par défaut pour effectuer un achat. - `settings.ui.is_payment_methods_list_mode` (boolean) Détermine l'affichage de la liste des modes de paiement disponibles dans le pays de l'utilisateur à l'ouverture de l'interface de paiement. Si false (par défaut), le mode de paiement passé dans le paramètre settings.payment_method ou le mode sélectionné selon l'[algorithme du PayRank](https://developers.xsolla.com/fr/solutions/payments/payment-ui-management/top-payment-methods-management/) s'affiche. - `settings.ui.is_prevent_external_link_open` (boolean) Détermine la désactivation des liens de redirection vers une ressource externe. 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.is_show_close_widget_warning` (boolean) Détermine l'affichage d'une infobulle sur le traitement de la transaction au passage de la souris sur l'icône × avant la fermeture de la page de paiement. Défini sur false, ou si le paramètre n'est pas passé, l'infobulle ne s'affiche pas. - `settings.ui.is_three_ds_independent_windows` (boolean) Détermine l'ouverture de la vérification 3-D Secure dans une nouvelle fenêtre du navigateur. Définissez sur true, si votre configuration applique une politique de sécurité du contenu (CSP). - `settings.ui.layout` (string) Emplacement des principaux éléments de l'interface de paiement. Vous pouvez ouvrir l'interface de paiement à l'intérieur de votre jeu et/ou permuter les colonnes contenant des informations sur la commande et les modes de paiement. Reportez-vous aux [instructions de customisation](https://developers.xsolla.com/fr/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_layout) pour des informations détaillées. Enum: "embed", "column_reverse", "embed_column_reverse" - `settings.ui.mobile` (object) - `settings.ui.mode` (string) Mode d'interface dans l'interface de paiement. 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. Enum: "user_account" - `settings.ui.theme` (string) Thème d'interface de paiement. Les valeurs possibles sont : 63295a9a2e47fab76f7708e1 pour le thème clair (par défaut) ou 63295aab2e47fab76f7708e3 pour le thème foncé. Vous pouvez également [créer un thème personnalisé](https://developers.xsolla.com/fr/doc/pay-station/features/ui-theme-customization/#pay_station_ui_theme_customization_in_token) et passez son ID dans ce paramètre. Enum: "63295a9a2e47fab76f7708e1", "63295aab2e47fab76f7708e3" - `settings.ui.user_account` (object) Informations de compte utilisateur. - `settings.ui.user_account.info` (object) Page My account. - `settings.ui.user_account.info.enable` (boolean, required) Détermine l'affichage du sous-menu. La valeur par défaut est false. - `settings.ui.user_account.info.order` (integer, required) Position du sous-menu dans le menu. - `settings.ui.user_account.payment_accounts` (object) Le sous-menu Mes comptes de paiement. - `settings.ui.user_account.subscriptions` (object) Sous-menu Gestion des abonnements. - `user` (object, required) - `user.age` (integer) Âge de l'utilisateur. - `user.country` (object) - `user.country.allow_modify` (boolean) Indique si l'utilisateur peut changer de pays dans l'interface de paiement. - `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). Requis si l'adresse IP n'est pas passée dans l'en-tête X-User-Ip. Consultez la documentation pour obtenir des informations détaillées sur les [pays pris en charge par Xsolla](https://developers.xsolla.com/fr/doc/shop-builder/references/supported-countries/). Exemple : country=US Example: "US" - `user.email` (object) - `user.email.value` (string) Adresse e-mail utilisateur. Doit être valide selon le protocole RFC 822. - `user.id` (object, required) - `user.id.value` (string) ID utilisateur. Pour les tests, passez une valeur aléatoire. Pour accepter des paiements réels, utilisez la valeur de l'ID utilisateur dans votre système. Cet ID est passé dans le webhook [User validation](https://developers.xsolla.com/fr/webhooks/operation/user-validation/). - `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) - `user.name.value` (string) Pseudo de l'utilisateur. - `user.phone` (object) - `user.phone.allow_modify` (boolean) Détermine si l'utilisateur peut changer de téléphone dans l'interface de paiement. Si le paramètre phone.value est passé dans le jeton, la valeur est false. - `user.phone.hidden` (boolean) - `user.phone.value` (string, required) Numéro de téléphone de l'utilisateur. - `user.steam_id` (object) - `user.steam_id.value` (string, required) ID Steam. - `user.tracking_id` (object) - `user.tracking_id.value` (string, required) ID unique de suivi (utilisé dans les campagnes de marketing). ## Response 201 fields (application/json): - `order_id` (integer) ID de commande. Example: 1 - `token` (string) Jeton de paiement. ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1020 - `errorMessage` (string) Example: "[0401-1020]: Error in Authentication method occurred" - `statusCode` (integer) Example: 401 ## Response 422 fields (application/json): - `errorCode` (number) Code d'erreur. Example: 1102 - `errorMessage` (string) Message d'erreur lisible. Example: "[0401-1102]: Unprocessable Entity. The property `external_id` is required" - `statusCode` (number) Code d'état de la réponse. Example: 422 - `transactionId` (string) ID unique de la demande. Example: "da145238620011eb8e24fe6913ff226a"