# Créer une commande à partir d'un bien gratuit spécifique

Crée une commande pour un objet gratuit spécifique. La commande créée reçoit le statut `done`. <br>
<div class="note">
<strong>Note</strong><br><br>
Cet appel API renvoie des données génériques du catalogue des objets lorsqu'il est utilisé sans
autorisation. Utilisez l'autorisation pour récupérer
<a href="https://developers.xsolla.com/fr/doc/shop-builder/features/personalization/" target="_blank">des données utilisateur personnalisées</a>, telles que les limites et les promotions associées à l'objet.
Pour ce faire, passez le JWT utilisateur dans l'en-tête <code>Authorization</code>.
Pour plus d'informations sur le JWT utilisateur, consultez le bloc <b>Security</b>
pour cet appel.
</div>

Endpoint: POST /v2/project/{project_id}/free/item/{item_sku}
Version: 2.0.0
Security: XsollaLoginUserJWT

## Path parameters:

  - `project_id` (integer, required)
    ID du projet. Vous trouverez ce paramètre dans le [Compte éditeur](https://publisher.xsolla.com/0/projects/0/), à côté du nom du projet, ainsi que dans l'URL affichée dans la barre d'adresse du navigateur lorsque vous utilisez ce projet. L'URL présente le format suivant : `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.

  - `item_sku` (string, required)
    UGS de l'objet.

## Request fields (application/json):

  - `currency` (string)
    Devise du prix de la commande. 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/).

  - `locale` (string)
    Langue de la réponse.

  - `sandbox` (boolean)
    Crée une commande en mode bac à sable. L'option est disponible pour les utilisateurs spécifiés dans la liste des utilisateurs de l'entreprise.

  - `quantity` (integer)
    Quantité de l'objet.

  - `promo_code` (string)
    Échange le code d'une promotion par code promo contre un paiement.

  - `settings` (object)
    Paramètres pour la configuration de la procédure de paiement et de l'interface de paiement pour l'utilisateur.

  - `settings.ui` (object)
    Paramètres d'interface.

  - `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.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.is_visible` (boolean)
    Détermine l'affichage de l'en-tête dans l'interface de paiement.

  - `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.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.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.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.user_account` (object)
    Informations de compte utilisateur.

  - `settings.ui.user_account.payment_accounts` (object)
    Le sous-menu **Mes comptes de paiement**.

  - `settings.ui.user_account.payment_accounts.enable` (boolean, required)
    Détermine l'affichage du sous-menu. La valeur par défaut est `false`.

  - `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.subscriptions` (object)
    Sous-menu **Gestion des abonnements**.

  - `settings.ui.user_account.subscriptions.enable` (boolean, required)
    Détermine l'affichage du sous-menu. La valeur par défaut est `false`.

  - `settings.ui.user_account.subscriptions.order` (integer, required)
    Position du sous-menu dans le menu.

  - `settings.ui.header` (object)

  - `settings.ui.mobile` (object)

  - `settings.ui.mobile.header` (object)

  - `settings.ui.mobile.header.close_button` (boolean)
    Détermine l'affichage du bouton **Fermer** dans l'interface de paiement sur appareil mobile. 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`.

  - `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_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_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.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.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.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.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.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.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.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.redirect_policy` (object)

  - `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.delay` (integer)
    Délai après lequel l'utilisateur est automatiquement redirigé vers l'URL de retour.
    Example: 0

  - `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", "successful", "successful_or_canceled", "any"

  - `settings.redirect_policy.redirect_button_caption` (string)
    Légendes localisées des boutons de redirection.
    Example: Text button

  - `custom_parameters` (object)
    Paramètres spécifiques au projet.

## Response 200 fields (application/json):

  - `order_id` (integer)
    ID de commande.

## Response 422 fields (application/json):

  - `errorCode` (integer)
    Example: 1411

  - `statusCode` (integer)
    Example: 422

  - `errorMessage` (string)
    Example: [0401-1411]: Invalid item

