# Supprimer un code promo du panier Supprime un code promo d'un panier. Après la suppression du code promo, le prix total de tous les objets du panier sera recalculé sans les bonus et les remises accordés par un code promo. Endpoint: PUT /v2/project/{project_id}/promocode/remove Version: 2.0.0 Security: AuthForCart ## 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): - `cart` (object,null) - `cart.id` (string, required) ID de panier. ## Response 200 fields (application/json): - `cart_id` (string) ID de panier. Example: "cart_id" - `is_free` (boolean) Si ce paramètre est défini sur true, l'objet est gratuit. - `items` (array) Example: [{"attributes":[],"can_be_bought":true,"description":"Take it, take it all! All of Xsolla's riches in one Mega Booster.","groups":[{"external_id":"powerups","name":"Power Ups"}],"image_url":"https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png","is_free":false,"limits":{"per_user":{"available":3,"recurrent_schedule":{"interval_type":"weekly","reset_next_date":1746057600},"total":5}},"name":"Xsolla Booster Mega","periods":[{"date_from":"2020-08-11T10:00:00+03:00","date_until":"2020-08-11T20:00:00+03:00"}],"price":{"amount":"50.0000000000000000","amount_without_discount":"100.0000000000000000","currency":"USD"},"promotions":[{"bonus":[{"image_url":"https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png","name":"Xsolla Minigun","quantity":1,"sku":"com.xsolla.minigun_1","type":"virtual_good"}],"date_end":"2026-04-15T16:16:00+03:00","date_start":"2020-04-15T16:16:00+03:00","discount":{"percent":"50.00"},"name":"Bonus promotion"}],"quantity":123,"sku":"com.xsolla.booster_mega_1","type":"virtual_good","virtual_item_type":"consumable","virtual_prices":[],"vp_rewards":[{"amount":130,"image_url":"https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg","item_id":175232,"name":"Value point","sku":"com.xsolla.value_point_1"},{"amount":50,"image_url":"https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg","is_clan":true,"item_id":186321,"name":"Clan Reward VP 1","sku":"com.xsolla.clan_value_point_1"}]}] - `items.attributes` (array) Liste des attributs et de leurs valeurs correspondantes pour l'objet. Peut être utilisée pour le filtrage du catalogue. Example: {"value":{"external_id":"genre","name":"Жанр","values":[{"external_id":"genre_e3364991f92e751689a68b96598a5a5a84010b85","value":"Casual"},{"external_id":"genre_eba07bfd0f982940773cba3744d97264dd58acd7","value":"Strategy"},{"external_id":"genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8","value":"Mobile"}]}} - `items.attributes.external_id` (string) ID unique de l'attribut. Le external_id ne peut comprendre que des caractères alphanumériques latins minuscules et majuscules, des tirets et des traits bas. Example: "attribute_1" - `items.attributes.name` (string) Nom de l'attribut. Example: "Genre" - `items.attributes.values` (array) - `items.attributes.values.external_id` (string) ID unique de la valeur d'un attribut. Le external_id ne peut comprendre que des caractères alphanumériques latins minuscules, des tirets et des tirets bas. Example: "attribute_value" - `items.attributes.values.value` (string) Valeur de l'attribut. Example: "Strategy" - `items.can_be_bought` (boolean) Si true, l'utilisateur peut acheter l'objet. Example: true - `items.description` (string) - `items.groups` (array) - `items.groups.external_id` (string) - `items.groups.name` (string) - `items.image_url` (string) - `items.limits` (object,null) Limites d'objets. - `items.limits.per_item` (object,null) Informations sur les limites pour un objet. - `items.limits.per_item.available` (integer) Nombre d'objets restants que tous les utilisateurs peuvent acheter. Example: 3 - `items.limits.per_item.total` (integer) Nombre maximal d'objets que tous les utilisateurs peuvent acheter. Example: 5 - `items.limits.per_user` (object,null) Limites d'objets pour un utilisateur. - `items.limits.per_user.available` (integer) Nombre d'objets restants que l'utilisateur actuel peut acheter. Example: 3 - `items.limits.per_user.limit_exceeded_visibility` (string) Détermine la visibilité de l'objet dans le catalogue une fois la limite d'achat atteinte, jusqu'à la prochaine réinitialisation de la limite. S'applique aux objets pour lesquels des réinitialisations de limite récurrentes sont configurées dans le tableau recurrent_schedule. Si aucune réinitialisation de limite n'est configurée, l'objet n'apparaît plus dans le catalogue après l'atteinte de la limite d'achat, quelle que soit la valeur de limit_exceeded_visibility. Enum: "show", "hide" - `items.limits.per_user.recurrent_schedule` (object) Délai d'actualisation récurrent des limites d'un objet pour un utilisateur. - `items.limits.per_user.recurrent_schedule.interval_type` (string) Type de délai d'actualisation récurrent. Enum: "daily", "weekly", "monthly", "hourly" - `items.limits.per_user.recurrent_schedule.reset_next_date` (integer) Date et heure de la réinitialisation des limites (horodatage Unix). Example: 1677553200 - `items.limits.per_user.total` (integer) Nombre maximal d'objets qu'un utilisateur unique peut acheter. Example: 5 - `items.periods` (array,null) Période de vente d'objets. - `items.periods.date_from` (string) Date de mise en vente de l'objet spécifié. Example: "2020-08-11T10:00:00+03:00" - `items.periods.date_until` (string,null) Date de retrait de la vente de l'objet spécifié. Peut prendre la valeur null. Example: "2020-08-11T20:00:00+03:00" - `items.price` (object,null) Prix de l'objet. - `items.price.amount` (string) Prix de l'objet avec remise. Example: "2.9900" - `items.price.amount_without_discount` (string) Prix de l'objet. Example: "2.9900" - `items.price.currency` (string) Devise du prix de l'article. Code à trois lettres selon [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217). Example: "USD" - `items.promotions` (array) Promotions appliquées à des objets spécifiques du panier. Le tableau est renvoyé dans les cas suivants : * Une promotion par réduction est configurée pour un objet spécifique. * Un code promo avec le paramètre Discount on selected items est appliqué. Si aucune promotion de ce type n'est appliquée, un tableau vide est renvoyé. - `items.promotions.bonus` (array) - `items.promotions.bonus.bundle_type` (string) Type de lot bonus. Disponible uniquement pour le type d'objet bundle. Enum: "standard", "virtual_currency_package" - `items.promotions.bonus.image_url` (string) URL de l'image de l'objet bonus. Non disponible pour le type d'objet bonus physical_good. - `items.promotions.bonus.name` (string) Nom de l'objet bonus. Non disponible pour le type d'objet bonus physical_good. - `items.promotions.bonus.quantity` (integer) - `items.promotions.bonus.sku` (string) - `items.promotions.bonus.type` (string) Type d'objet bonus. Enum: "virtual_good", "virtual_currency", "bundle", "physical_good", "game_key", "nft" - `items.promotions.date_end` (string,null) - `items.promotions.date_start` (string,null) - `items.promotions.discount` (object,null) - `items.promotions.discount.percent` (string,null) - `items.promotions.discount.value` (string,null) - `items.promotions.limits` (object) - `items.promotions.limits.per_user` (object) - `items.promotions.limits.per_user.available` (integer) - `items.promotions.limits.per_user.total` (integer) - `items.type` (string) - `items.virtual_item_type` (string) Type d'objet virtuel. Enum: "consumable", "non_consumable", "non_renewing_subscription" - `items.virtual_prices` (array) - `items.vp_rewards` (array) Récompense en points de valeur pour l'objet. - `items.vp_rewards.amount` (integer) Montant des points de valeur. - `items.vp_rewards.image_url` (string) URL de l'image. Example: "https://image.example.com" - `items.vp_rewards.is_clan` (boolean) Détermine l'utilisation du point de valeur dans les chaînes de récompense de clan. Example: true - `items.vp_rewards.item_id` (integer) Internal ID unique de l'objet. Example: 1 - `items.vp_rewards.name` (string) Nom du point de valeur. - `items.vp_rewards.sku` (string) ID unique du point de valeur. - `price` (object,null) Prix du panier. Example: {"amount":"6150.0000000000000000","amount_without_discount":"6150.0000000000000000","currency":"USD"} - `price.amount` (string) Example: "6150.0000000000000000" - `price.amount_without_discount` (string) Example: "6150.0000000000000000" - `price.currency` (string) Example: "USD" ## Response 401 fields (application/json): - `errorCode` (integer) Example: 1501 - `errorMessage` (string) Example: "[0401-1501]: Authorization failed: Provide authorization" - `statusCode` (integer) Example: 401 ## Response 403 fields (application/json): - `errorCode` (integer) - `errorMessage` (string) Example: "Authorization header not sent." - `statusCode` (integer) Example: 403 - `transactionId` (string) Example: "x-x-x-x-transactionId-mock-x-x-x" ## Response 422 fields (application/json): - `errorCode` (integer) Example: 1102 - `errorMessage` (string) Example: "[0401-1102]: Unprocessable Entity. The property `id` is required" - `statusCode` (integer) Example: 422 - `transactionId` (string) Example: "x-x-x-x-transactionId-mock-x-x-x"