# LiveOps API # Aperçu * **Version :** 2.0.0 * **Serveurs** : `https://store.xsolla.com/api` * **[Contactez-nous par e-mail](mailto:integration@xsolla.com)** * **URL de contact :** https://xsolla.com/ * **Version TLS requise :** 1.2 LiveOps est un ensemble d'outils permettant de stimuler l'engagement continu des joueurs grâce à des promotions et des offres personnalisées. Utilisez l'API pour gérer les fonctionnalités suivantes : * **Promotions** — créez et gérez des campagnes par coupons, codes promo, réductions et bonus. * **Personnalisation** — spécifiez les conditions d'affichage du catalogue des objets et appliquez des promotions uniquement pour certains utilisateurs autorisés. * **Limites de promotion** — définissez une limite sur le nombre d'utilisations d'une promotion par utilisateur et configurez des réinitialisations planifiées de ces limites. * **Chaînes de récompenses et points de valeur** — configurez des parcours de récompenses débloqués progressivement selon l'accumulation de points de valeur. * **Chaînes quotidiennes** — configurez des récompenses quotidiennes récurrentes pour encourager les connexions régulières. * **Chaînes d'offres** — créez des offres d'achat séquentielles avec une tarification par paliers et des options de récompense gratuite. * **Upsell** — méthode de vente consistant à proposer à l'utilisateur l'achat d'un objet à valeur ajoutée. ## Appels API L'API est divisée en **groupes suivants** : * **Admin** — appels pour créer, mettre à jour, activer et supprimer des campagnes et des configurations de chaînes. Authentifié via [authentification d'accès de base](https://developers.xsolla.com/fr/payment-ui-and-flow/payment-ui/how-to-get-payment-token/#payments_solution_get_user_auth_token_basic_auth) avec vos identifiants de commerçant ou de projet. * **Client** — appels pour récupérer les promotions disponibles, obtenir des chaînes actives, utiliser des codes et réclamer des récompenses au nom des utilisateurs finaux authentifiés. Authentifié via JWT utilisateur. # Authentification Les appels API nécessitent une authentification au nom d'un utilisateur ou d'un projet. Le schéma d'authentification à utiliser figure dans la section **Security** de la description de chaque appel. ## Authentification à l'aide du JWT utilisateur L'authentification par JWT utilisateur est utilisée lorsqu'une requête provient d'un navigateur, d'une application mobile ou d'un jeu. Par défaut, le schéma `XsollaLoginUserJWT` s'applique. Pour savoir comment créer un jeton, consultez la [documentation de l'API Xsolla Login](/fr/api/login/authentication-schemes#getting-user-token). Transmettez le jeton dans l'en-tête `Authorization` au format suivant : `Authorization: Bearer `, où `` représente le jeton utilisateur. Ce jeton identifie l'utilisateur et donne accès à ses données personnalisées. Vous pouvez également utiliser un [jeton pour ouvrir l’interface de paiement](/fr/api/pay-station/token/create-token). ## Authentification HTTP basique L'authentification HTTP basique est utilisée pour les interactions serveur à serveur, lorsqu'un appel API est envoyé directement depuis votre serveur plutôt que depuis le navigateur ou l'application mobile d'un utilisateur. Elle repose généralement sur une [clé API](/fr/api/getting-started/#api_keys_overview).
Note

La clé API est confidentielle et ne doit jamais être stockée ni utilisée dans une application cliente.
Avec l'authentification basique côté serveur, toutes les requêtes API doivent inclure l'en-tête suivant : - pour `basicAuth` — `Authorization: Basic `, où `your_authorization_basic_key` est la paire `project_id:api_key` encodée en Base64 - pour `basicMerchantAuth` — `Authorization: Basic `, où `your_authorization_basic_key` est la paire `merchant_id:api_key` encodée en Base64 Vous trouverez les valeurs des paramètres dans le [Compte éditeur](https://publisher.xsolla.com/) : - `merchant_id` s'affiche : - Dans **Company settings > Company***. - Dans l'URL dans la barre d'adresse du navigateur sur n'importe quelle page du Compte éditeur. L'URL a le format suivant : `https://publisher.xsolla.com/`. - `project_id` s'affiche : - À côté du nom du projet dans le Compte éditeur. - Dans l'URL dans la barre d'adresse du navigateur lors de l'utilisation d'un projet dans le Compte éditeur. L'URL a le format suivant : `https://publisher.xsolla.com//projects/`. - `api_key` s'affiche dans le Compte éditeur uniquement au moment de la création et doit être stockée en toute sécurité de votre côté. Vous pouvez créer une clé API dans les sections suivantes : - [Company settings > API keys](https://publisher.xsolla.com/0/settings/api_key) - [Project settings > API key](https://publisher.xsolla.com/0/projects/0/edit/api_key)
Remarque

Si un appel API requis n'inclut pas le paramètre de chemin project_id, utilisez une clé API valide pour l'ensemble des projets de l'entreprise pour l'autorisation.
Pour plus d'informations sur l'utilisation des clés API, consultez les [références API](/fr/api/getting-started/#api_keys_overview). ## Authentification avec prise en charge de l'accès invité Le schéma d’authentification `AuthForCart` est utilisé pour les achats via le panier et prend en charge deux modes : 1. **Authentification par JWT utilisateur.** Le jeton est passé dans l'en-tête `Authorization` au format suivant : `Authorization: Bearer `, où `` est le jeton utilisateur. Le jeton identifie l'utilisateur et donne accès aux données personnalisées. Vous pouvez également utiliser un [jeton pour ouvrir l'interface de paiement](/fr/api/pay-station/token/create-token). 2. **Mode simplifié sans en-tête Authorization.** Ce mode est réservé aux utilisateurs non authentifiés et peut être utilisé uniquement pour la [vente de clés de jeu](/fr/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users). Au lieu d'un jeton, la requête doit inclure les en-têtes suivants : - `x-unauthorized-id` avec un identifiant de requête - `x-user` avec l'adresse e-mail de l'utilisateur encodée en Base64 ## Liens utiles - [Appels API par modèle d'interaction](https://developers.xsolla.com/fr/api/catalog/) - [Types de enpoints](https://developers.xsolla.com/fr/api/catalog/) - [Gestion des erreurs](https://developers.xsolla.com/fr/api/catalog/) - [Clés API](https://developers.xsolla.com/fr/api/catalog/) # Structure de l'entité principale Les objets de tous types (objets virtuels, lots, monnaie virtuelle et clés) partagent une structure de données similaire. Comprendre cette structure de base facilite l’utilisation de l'API et la navigation dans la documentation.
Note

Certains appels peuvent inclure des champs supplémentaires, mais ils ne modifient pas la structure de base.
**Identification** - `merchant_id` — ID de l'entreprise dans le [Compte éditeur](https://publisher.xsolla.com/) - `project_id` — ID de projet dans le Compte éditeur - `sku` — UGS de l'objet, unique au sein du projet **Affichage en magasin** - `name` — nom de l'objet - `description` — description de l'objet - `image_url` — URL de l'image - `is_enabled` — disponibilité de l'objet - `is_show_in_store` — affichage de l'objet dans le catalogue Pour plus d'informations sur la gestion de la disponibilité des objets dans le catalogue, consultez la [documentation](/fr/items-catalog/catalog-features/items-availability/). **Organisation** - `type` — type d'objet, par exemple, un objet virtuel (`virtual_item`) ou un lot (`bundle`) - `groups` — groupes auxquels l'objet appartient - `order` — ordre d'affichage dans le catalogue **Conditions de vente** - `prices` — prix en devise réelle ou monnaie virtuelle - `limits` — limites d'achat - `periods` — périodes de disponibilité - `regions` — restrictions régionales **Exemple de structure d'entité principale :** ```json { "attributes": [], "bundle_type": "virtual_currency_package", "content": [ { "description": { "en": "Main in-game currency" }, "image_url": "https://.../image.png", "name": { "en": "Crystals", "de": "Kristalle" }, "quantity": 500, "sku": "com.xsolla.crystal_2", "type": "virtual_currency" } ], "description": { "en": "Crystals x500" }, "groups": [], "image_url": "https://.../image.png", "is_enabled": true, "is_free": false, "is_show_in_store": true, "limits": { "per_item": null, "per_user": null, "recurrent_schedule": null }, "long_description": null, "media_list": [], "name": { "en": "Medium crystal pack" }, "order": 1, "periods": [ { "date_from": null, "date_until": "2020-08-11T20:00:00+03:00" } ], "prices": [ { "amount": 20, "country_iso": "US", "currency": "USD", "is_default": true, "is_enabled": true } ], "regions": [], "sku": "com.xsolla.crystal_pack_2", "type": "bundle", "vc_prices": [] } ``` # Processus d'achat de base L'API Xsolla vous permet d'implémenter la logique de magasin en jeu, notamment la récupération du catalogue des objets, la gestion du panier, la création de commandes et le suivi de leur statut. Selon le scénario d'intégration, les appels API sont répartis en sections **Administrateur** et **Catalogue**, qui utilisent différents [schémas d'authentification](/fr/api/catalog/section/authentication). L'exemple suivant montre un processus de base pour configurer et exploiter un magasin, de la création d'objets à l'achat. ## Création d'objets et de groupes (Administrateur) Créez un catalogue des objets pour votre magasin, tels que des objets virtuels, des lots ou de la monnaie virtuelle. Exemples d'appels API : - [Créer un objet virtuel](/fr/api/catalog/virtual-items-currency-admin/admin-create-virtual-item) - [Créer un lot](/fr/api/catalog/bundles-admin/admin-create-bundle) - [Créer une monnaie virtuelle](/fr/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency) ## Configuration de promotions, chaînes et limites (Administrateur) Configurez des outils d'acquisition d'utilisateurs et de monétisation, tels que des remises, des bonus, des récompenses quotidiennes ou des chaînes d'offres. Exemples d'appels API : - [Créer une promotion de bonus](/fr/api/liveops/promotions-bonuses/create-bonus-promotion) - [Créer une récompense quotidienne](/fr/api/liveops/daily-chain-admin/admin-create-daily-chain) - [Créer une offre de catalogue unique](/fr/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer) ## Récupération d'informations sur un objet (Client) Configurez l'affichage des objets dans l'application.
Remarque

N'utilisez pas les appels API de la sous-section Administrateur pour créer un catalogue utilisateur. Ces appels API présentent des limites de taux et ne sont pas destinés au trafic utilisateur.

Exemples d'appels API : - [Lire la liste des objets virtuels](/fr/api/catalog/virtual-items-currency-catalog/get-virtual-items) - [Lire la liste des groupes d'objets](/fr/api/catalog/virtual-items-currency-catalog/get-item-groups) - [Lire la liste des lots](/fr/api/catalog/bundles-catalog/get-bundle-list) - [Lire la liste des objets vendables](/fr/api/catalog/common-catalog/get-sellable-items)
Note

Par défaut, les appels API du catalogue renvoient les objets disponibles dans la boutique au moment de la requête. Pour récupérer les objets inactifs ou à durée limitée, ajoutez le paramètre "show_inactive_time_limited_items": 1 dans la requête du catalogue.
## Vente des objets Vous pouvez vendre des objets en utilisant les méthodes suivantes : - Achat rapide — vendre une UGS plusieurs fois. - Achat via le panier — l'utilisateur ajoute des objets au panier, supprime des objets et modifie les quantités dans une seule commande. Si un objet est acheté en utilisant de la monnaie virtuelle au lieu des devises réelles, utilisez l'appel API [Créer une commande à partir d'un objet spécifique en monnaie virtuelle](/fr/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency). L'interface de paiement n'est pas requise, car le coût est traité lors de l'exécution de l'appel API. Pour l'achat d'un objet gratuit, utilisez l'appel API [Créer une commande avec un bien gratuit spécifique](/fr/api/catalog/free-item/create-free-order-with-item) ou l'appel API [Créer une commande à partir d'un panier gratuit](/fr/api/catalog/free-item/create-free-order). L'interface de paiement n'est pas requise, la commande est immédiatement définie sur le statut done. ### Achat rapide Utilisez l'appel API côté client pour [créer une commande à partir d'un objet spécifique](/fr/api/catalog/payment-client-side/create-order-with-item). L'appel renvoie un jeton utilisé pour ouvrir l'interface de paiement.
Note

Les informations sur les remises sont disponibles pour l'utilisateur uniquement dans l'interface de paiement. Les codes promo ne sont pas pris en charge.
### Achat via le panier La configuration et les achats du panier peuvent être gérés côté client ou côté serveur. **Configuration et achat du panier côté client** Implémentez vous-même la logique d'ajout et de suppression des objets. Avant d'appeler l'API pour configurer un panier, vous ne disposerez pas d'informations sur les promotions qui s'appliqueront à l'achat. Le coût total ainsi que les informations des objets bonus ajoutés ne seront donc pas encore connus. Implémentez la logique suivante pour le panier : 1. Après que le joueur a rempli un panier, utilisez l'appel API [Remplir le panier d'objets](/fr/api/shop-builder/operation/cart-fill/). L'appel renvoie les informations actuelles sur les objets sélectionnés (prix avant et après remises, objets bonus). 2. Mettez à jour le contenu du panier en fonction des actions utilisateur : - Pour ajouter un objet ou modifier la quantité de l'objet, utilisez l'appel API [Mettre à jour un objet du panier par ID de panier](/fr/api/shop-builder/operation/put-item-by-cart-id/). - Pour supprimer un objet, utilisez l'appel API [Supprimer un objet du panier par ID de panier](/fr/api/shop-builder/operation/delete-item-by-cart-id/).
Note

Pour obtenir le statut actuel du panier, utilisez l'appel API Lire le panier de l'utilisateur actuel.
3. Utilisez l'appel API [Créer une commande à partir de tous les objets du panier actuel](/fr/api/shop-builder/operation/create-order/). L'appel renvoie l'ID de commande et le jeton de paiement. La commande nouvellement créée est définie sur le statut new par défaut. **Configuration et achat du panier côté serveur** Cette approche peut nécessiter davantage de temps pour configurer le panier, car chaque modification doit être effectuée via des appels API. Implémentez la logique suivante pour le panier : 1. Après que le joueur a rempli un panier, utilisez l'appel API [Remplir le panier d'objets](/fr/api/catalog/cart-server-side). L'appel renvoie les informations à jour sur les objets sélectionnés (prix avant et après remises, objets bonus). 2. Utilisez l'appel API [Créer une commande à partir de tous les objets du panier actuel](/fr/api/shop-builder/operation/create-order/). L'appel renvoie l'ID de commande et le jeton de paiement. La commande nouvellement créée est définie sur le statut new par défaut. ## Ouverture de l'interface de paiement Utilisez le jeton renvoyé pour ouvrir l'interface de paiement dans une nouvelle fenêtre. D'autres méthodes d'ouverture de l'interface de paiement sont décrites dans la [documentation](/fr/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui). | Action | Endpoint | |:--------------------------------|:--------------------------------------------------------------------------| | Ouverture dans l'environnement de production. | https://secure.xsolla.com/paystation4/?token={token} | | Ouverture en mode bac à sable. | https://sandbox-secure.xsolla.com/paystation4/?token={token} |
Note

Utilisez le mode bac à sable pendant le développement et les tests. Les achats de test n'entraînent aucun débit sur des comptes réels. Vous pouvez utiliser des cartes bancaires de test. Après le premier paiement réel, une politique stricte du mode bac à sable s'applique. Les paiements en mode bac à sable sont disponibles uniquement pour les utilisateurs spécifiés dans la section [Company settings > Users](https://publisher.xsolla.com/0/settings/users) du Compte éditeur. L'achat de monnaie virtuelle et d'objets en devise réelle n'est possible qu'après la signature d'un contrat de licence avec Xsolla. Pour cela, dans le [Compte éditeur](https://publisher.xsolla.com/), accédez à **Agreements & Taxes > Agreements**, complétez le formulaire et attendez la validation. Le traitement du contrat peut prendre jusqu'à 3 jours ouvrés.
Pour activer ou désactiver le mode bac à sable, modifiez la valeur du paramètre `sandbox` dans la requête pour l'achat rapide et l'achat via le panier. Le mode bac à sable est désactivé par défaut. Statuts de commande possibles : - `new` — commande créée - `paid` — paiement reçu - `done` — objet attribué - `canceled` — commande annulée - `expired` — commande expirée Suivez le statut de la commande en utilisant l'une des méthodes suivantes : - [webhooks configurés sur votre serveur](/fr/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking) - [short-polling](/fr/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_short_polling) - [API WebSocket](/fr/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_websocket_api) ## Liens utiles - Authentification - [Appels API par modèle d'interaction](/fr/api/catalog/section/authentication) - [Test de paiement](/fr/dev-resources/testing/general-info/#general_overview) - [Configurer le suivi du statut de la commande](/fr/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking) - [Webhooks](/fr/webhooks/overview) - [Limites de taux](/fr/api/login/rate-limits) - [Gestion des erreurs](/fr/api/getting-started/#api_errors_handling) - [Clés API](/fr/api/getting-started/#api_keys_overview) # Pagination Les appels API qui renvoient de grands ensembles d'enregistrements (par exemple lors de la création d'un catalogue) utilisent la pagination. La pagination est un mécanisme qui limite le nombre d'objets renvoyés dans une seule réponse et permet de récupérer les pages suivantes de manière séquentielle. Utilisez les paramètres suivants pour contrôler le nombre d'objets renvoyés : - `limit` — nombre d'objets par page - `offset` — indice du premier objet sur la page (la numérotation commence à 0) - `has_more` — indique si une autre page est disponible - `total_items_count` — nombre total d'objets Exemple de requête : ``` GET /items?limit=20&offset=40 ``` Exemple de réponse : ```json { "items": [...], "has_more": true, "total_items_count": 135 } ``` Il est recommandé d'envoyer des requêtes successives jusqu'à ce que la réponse renvoie `has_more = false`. # Format de date et d'heure Les dates et les valeurs temporelles sont transmises au format [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). Les valeurs suivantes sont prises en charge : - Décalage UTC - Valeur `null` lorsqu'il n'y a pas de restriction temporelle pour l'affichage d'un objet - [Horodatage Unix](https://www.unixtimestamp.com/) (en secondes) utilisé dans certains champs Format : `YYYY-MM-DDTHH:MM:SS±HH:MM` Exemple : `2026-03-16T10:00:00+03:00` # Localisation Xsolla prend en charge la localisation des champs destinés aux utilisateurs, tels que le nom et la description de l'objet. Les valeurs localisées sont transmises sous forme d'objet, où le code de langue est utilisé comme clé. La liste complète des langues prises en charge est disponible dans la [documentation](/fr/doc/shop-builder/references/supported-languages/). **Champs pris en charge** Les paramètres suivants peuvent être localisés : - `name` - `description` - `long_description` **Format de langue** La clé de la langue peut être spécifiée dans l'un des formats suivants : - Code de langue à deux lettres : `en`, `ru` - Code de langue à cinq lettres : `en-US`, `ru-RU`, `de-DE` **Exemples** Exemple avec un code de langue à deux lettres : ```json { "name": { "en": "Starter Pack", "ru": "Стартовый набор" } } ``` Exemple avec un code de langue à cinq lettres : ```json { "description": { "en-US": "Premium bundle", "de-DE": "Premium-Paket" } } ``` # Format de réponse d'erreur En cas d'erreur, l'API renvoie un statut HTTP ainsi qu'un corps de réponse au format JSON. La liste complète des erreurs liées au magasin est disponible dans la [documentation](/fr/dev-resources/references/errors/store-errors/). **Exemple de réponse :** ```json { "errorCode": 1102, "errorMessage": "Validation error", "statusCode": 422, "transactionId": "c9e1a..." } ``` - `errorCode` — code d'erreur. - `errorMessage` — courte description de l'erreur. - `statusCode` — statut de la réponse HTTP. - `transactionId` — ID de la requête. Retourné uniquement dans certains cas. - `errorMessageExtended` — informations supplémentaires sur l'erreur, telles que les paramètres de la requête. Retournées uniquement dans certains cas. **Exemple de réponse détaillée :** ```json { "errorCode": 7001, "errorMessage": "Chain not found", "errorMessageExtended": { "chain_id": "test_chain_id", "project_id": "test_project_id", "step_number": 2 }, "statusCode": 404 } ``` **Codes de statut HTTP courants** - `400` — requête non valide - `401` — erreur d'authentification - `403` — permissions insuffisantes - `404` — ressource non trouvée - `422` — erreur de validation - `429` — limite de taux dépassée **Recommandations** - Gérez ensemble le statut HTTP et le corps de la réponse. - Utilisez `errorCode` pour traiter les erreurs liées à la logique de l'application. - Utilisez `transactionId` pour identifier plus rapidement les requêtes lors de l'analyse des erreurs. Version: 2.0.0 ## Servers ``` https://store.xsolla.com/api ``` ## Security ### basicAuth Les appels côté serveur utilisent le schéma d'authentification `basicAuth`. Toutes les requêtes à l'API doivent contenir l'en-tête `Authorization: Basic ` où `your_authorization_basic_key` est la paire `project_id:api_key` encodée en Base64. Vous pouvez utiliser `merchant_id` au lieu de `project_id` si nécessaire. Cela n'affecte pas la fonctionnalité. Accédez au [Compte éditeur](https://publisher.xsolla.com/) pour trouver les valeurs des paramètres : * `merchant_id` s'affiche : * Dans la section **Company settings > Company** * Dans l'URL dans la barre d'adresse du navigateur sur n'importe quelle page du Compte éditeur. L'URL présente le format suivant : `https://publisher.xsolla.com/`. * `api_key` s'affiche dans le Compte éditeur une seule fois lors de sa création et doit être stockée de votre côté. Vous pouvez créer une nouvelle clé dans les sections suivantes : * [Company settings > API keys](https://publisher.xsolla.com/0/settings/api_key) * [Project settings > API keys](https://publisher.xsolla.com/0/projects/0/edit/api_key) {% html name="div" attrs={"class": "notice"} %} **Remarque** Si un appel API requis n'inclut pas le paramètre de chemin `project_id`, utilisez une clé API valide pour tous les projets de l'entreprise pour l'autorisation. {% /html %} * `project_id` s'affiche : * Dans le Compte éditeur à côté du nom du projet. * Dans l'URL dans la barre d'adresse du navigateur lorsque vous utilisez le projet dans le Compte éditeur. L'URL a le format suivant : `https://publisher.xsolla.com//projects/`. Pour plus d'informations sur l'utilisation des clés API, voir la [référence API](https://developers.xsolla.com/fr/api/getting-started/#api_keys_overview). Type: http Scheme: basic ### XsollaLoginUserJWT Les appels côté client utilisent le schéma d’authentification `XsollaLoginUserJWT`. La requête doit inclure le JWT utilisateur dans l’en-tête `Authorization` au format suivant : Bearer ``. Ce jeton identifie l’utilisateur et donne accès à des données personnalisées. Pour découvrir comment créer un jeton, consultez la [documentation Xsolla Login API](/fr/api/login/authentication-schemes#getting-user-token). Vous pouvez également utiliser un [jeton pour ouvrir l’interface de paiement](/fr/api/pay-station/token/create-token). Type: http Scheme: bearer Bearer Format: JWT ### AuthForCart Le schéma d’authentification `AuthForCart` est utilisé pour les achats via le panier et prend en charge deux modes : 1. Authentification par JWT utilisateur. Le jeton est passé dans l'en-tête Authorization au format suivant : `Authorization: Bearer `, où `` est le jeton utilisateur. Le jeton identifie l'utilisateur et donne accès à des données personnalisées. Vous pouvez également utiliser un [jeton pour ouvrir l’interface de paiement](/fr/api/pay-station/token/create-token). 2. Mode simplifié sans en-tête `Authorization`. Ce mode est uniquement destiné aux utilisateurs non authentifiés et peut être utilisé uniquement pour la [vente de clés de jeu](/fr/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users). Au lieu d’un jeton, la requête doit inclure les en-têtes suivants : * `x-unauthorized-id` avec un ID de requête * `x-user` avec l’adresse e-mail de l’utilisateur encodée en Base64. Type: http Scheme: bearer ### basicMerchantAuth Les appels côté serveur utilisent le schéma d'authentification `basicMerchantAuth`. Toutes les requêtes à l'API doivent contenir l'en-tête `Authorization: Basic ` où `your_authorization_basic_key` est la paire `merchant_id:api_key` encodée en Base64. Accédez au [Compte éditeur](https://publisher.xsolla.com/) pour trouver les valeurs des paramètres : * `merchant_id` s'affiche : * Dans la section **Company settings > Company** * Dans l'URL dans la barre d'adresse du navigateur sur n'importe quelle page du Compte éditeur. L'URL présente le format suivant : `https://publisher.xsolla.com/` * `api_key` est affiché dans le Compte éditeur une seule fois lors de sa création et doit être stocké de votre côté. Vous pouvez créer une nouvelle clé dans la section [Company settings > API keys](https://publisher.xsolla.com/0/settings/api_key). Pour plus d'informations sur l'utilisation des clés API, voir la [référence API](https://developers.xsolla.com/fr/api/getting-started/#api_keys_overview). Type: http Scheme: basic ## Download OpenAPI description [LiveOps API](https://xsolla.redocly.app/_bundle/@l10n/fr/api/liveops/index.yaml) ## Appels API communs Appelez les méthodes API de cette sous-section pour gérer différents types de promotions. ### Lire la liste de toutes les promotions - [GET /v3/project/{project_id}/admin/promotion](https://xsolla.redocly.app/fr/api/liveops/promotions-common/get-promotion-list.md): Récupère la liste des promotions d'un projet. ### Activer une promotion - [PUT /v2/project/{project_id}/admin/promotion/{promotion_id}/activate](https://xsolla.redocly.app/fr/api/liveops/promotions-common/activate-promotion.md): Active une promotion. ### Désactiver une promotion - [PUT /v2/project/{project_id}/admin/promotion/{promotion_id}/deactivate](https://xsolla.redocly.app/fr/api/liveops/promotions-common/deactivate-promotion.md): Désactive une promotion. ### Lire une promotion utilisable par code - [GET /v3/project/{project_id}/admin/promotion/redeemable/code/{code}](https://xsolla.redocly.app/fr/api/liveops/promotions-common/get-redeemable-promotion-by-code.md): Récupère des informations sur la promotion par un code promo ou un code de coupon. ### Vérifier un code promotionnel - [GET /v2/project/{project_id}/promotion/code/{code}/verify](https://xsolla.redocly.app/fr/api/liveops/promotions-common/verify-promotion-code.md): Détermine si le code est un code promo ou un code coupon et si l'utilisateur peut l'appliquer. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ## Coupons Appelez les méthodes API de cette sous-section pour configurer et gérer les promotions par coupon.

Note

Consultez notre documentation pour obtenir des informations détaillées sur les coupons.

### Échanger un code de coupon - [POST /v2/project/{project_id}/coupon/redeem](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/redeem-coupon.md): Utilise un code de coupon. L'utilisateur reçoit un bonus après l'utilisation d'un coupon. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Lire les récompenses d'un coupon - [GET /v2/project/{project_id}/coupon/code/{coupon_code}/rewards](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/get-coupon-rewards-by-code.md): Récupère les récompenses associées à un coupon à partir de son code. Peut être utilisé pour permettre aux utilisateurs de choisir un objet parmi plusieurs bonus disponibles. Un cas courant consiste à choisir un DRM lorsque le coupon inclut un jeu comme bonus (type=unit). Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Créer une promotion par coupon - [POST /v3/project/{project_id}/admin/coupon](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/admin-create-coupon.md): Crée une promotion par coupon. ### Lire la liste des promotions par coupon - [GET /v3/project/{project_id}/admin/coupon](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/get-coupons.md): Récupère la liste des promotions par coupon d'un projet. ### Mettre à jour une promotion par coupon - [PUT /v3/project/{project_id}/admin/coupon/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/update-coupon-promotion.md): Met à jour une promotion par coupon ### Lire une promotion par coupon - [GET /v3/project/{project_id}/admin/coupon/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/get-coupon.md): Récupère des informations sur une promotion par coupon spécifique. ### Supprimer une promotion par coupon - [DELETE /v3/project/{project_id}/admin/coupon/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/delete-coupon-promotion.md): Supprime la promotion par coupon. Les conséquences suivantes s'en suivent : * La promotion disparaît de la liste des promotions configurées dans votre projet ; * Elle n'est plus appliquée au catalogue des objets. L'utilisateur ne peut plus obtenir d'objets bonus à travers cette promotion. Après la suppression, la promotion ne peut pas être restaurée. Les coupons de la promotion supprimée peuvent être ajoutés à des promotions existantes. ### Activer une promotion par coupon - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/activate](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/activate-coupon.md): Active une promotion par coupon. Par défaut, une promotion par coupon créée est désactivée. Pour permettre l'échange de coupons, vous devez l'activer. Utilisez cet endpoint pour activer une promotion par coupon. ### Désactiver une promotion par coupon - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/deactivate](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/deactivate-coupon.md): Désactive une promotion par coupon. Par défaut, une promotion par coupon créée est désactivée. Pour permettre l'échange de coupons, vous devez l'activer. Utilisez cet endpoint pour désactiver une promotion par coupon. ### Créer un code de coupon - [POST /v2/project/{project_id}/admin/coupon/{external_id}/code](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/create-coupon-code.md): Crée un code de coupon. ### Lire les codes de coupon - [GET /v2/project/{project_id}/admin/coupon/{external_id}/code](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/get-coupon-codes.md): Récupère les codes de coupon. La réponse comprend le nombre total de codes de la promotion (total_count) et les codes de la page actuelle (codes). Pour récupérer la page suivante, augmentez la valeur offset de limit (par exemple, “offset”: 100, puis “offset”: 200) jusqu'à récupérer tous les codes. Dans la plupart des cas, "limit": 100 ou "limit": 1000 suffit. Réservez les valeurs plus élevées, telles que "limit": 10000, aux exportations en masse ponctuelles, et évitez d'utiliser "limit": 50000` sauf en cas de nécessité. ### Générer des codes de coupon - [PUT /v2/project/{project_id}/admin/coupon/{external_id}/code/generate](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/generate-coupon-codes.md): Génère des codes de coupon. Lignes directrices pour la génération de code : * Aucune limite maximale ne s'applique au nombre total de codes par promotion, mais chaque requête est limitée à 50 000 codes. Les requêtes dépassant cette limite renvoient une erreur 422 Unprocessable Entity. Si vous avez besoin de plus de 50 000 codes, envoyez plusieurs requêtes. * Pour une meilleure fiabilité, il est recommandé de générer les codes par lots plus petits, jusqu'à 10 000 par requête. Par exemple, pour créer 100 000 codes, envoyez 10 requêtes avec "count": 10000 plutôt que 2 requêtes avec "count": 50000. Attendez une réponse réussie pour chaque requête avant d'envoyer la suivante. * N'oubliez pas que la limite de débit est fixée à 15 requêtes par seconde. Lorsque vous générez de grands volumes, envoyez les requêtes les unes après les autres afin d'éviter de dépasser cette limite et de recevoir une erreur 429. * Pour récupérer la liste des codes, appelez la méthode Lire des codes promo. | Paramètre | Valeur | |---|---| | Nombre minimum de codes par requête. | 1 | | Nombre maximum de codes par requête. Utilisez uniquement lorsque vous avez besoin du plus grand lot unique possible. | 50 000 | | Nombre recommandé de codes par requête. | Jusqu'à 10 000. Si vous devez en créer davantage, envoyez plusieurs requêtes consécutives. | ### Lire la limite de coupon pour un utilisateur spécifique - [GET /v2/project/{project_id}/admin/user/limit/coupon/external_id/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/get-coupon-user-limit.md): Récupère le nombre restant de fois qu'un utilisateur spécifique peut utiliser le coupon. L'API des limites utilisateur vous permet de limiter le nombre de fois que les utilisateurs peuvent utiliser un coupon. Pour configurer les limites utilisateur, référez-vous à la section Administrateur : * Coupons ### Lire les limites pour les code de coupon uniques - [GET /v2/project/{project_id}/admin/code/limit/coupon/external_id/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-coupons/get-coupon-code-limit.md): Récupère le nombre restant de fois que les codes peuvent être utilisés. Pour filtrer les codes, utilisez le paramètre de requête codes. Pour configurer la limite de codes elle-même, accédez à la section Administrateur : * Codes promo ## Codes promo Appelez les méthodes API de cette sous-section pour configurer et gérer les promotions par code promo.

Note

Consultez notre documentation pour obtenir des informations détaillées sur les codes promo.

### Échanger un code promo - [POST /v2/project/{project_id}/promocode/redeem](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/redeem-promo-code.md): Échange un code d'une promotion par code promo. Après avoir échangé un code de promo, l'utilisateur reçoit des biens gratuits et/ou le prix du panier et/ou des objets spécifiques sera réduit. ### Supprimer un code promo du panier - [PUT /v2/project/{project_id}/promocode/remove](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/remove-cart-promo-code.md): 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. ### Lire les récompenses d'un code promo - [GET /v2/project/{project_id}/promocode/code/{promocode_code}/rewards](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/get-promo-code-rewards-by-code.md): Récupère les récompenses associées à un code promo à partir de son code. Peut être utilisé pour permettre aux utilisateurs de choisir un objet parmi plusieurs bonus disponibles. Un cas courant consiste à choisir un DRM lorsque le code promo inclut un jeu comme bonus (type=unit). Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Créer une promotion par code promo - [POST /v3/project/{project_id}/admin/promocode](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/create-promo-code.md): Crée une promotion par code promo. ### Lire la liste des promotions par code promo - [GET /v3/project/{project_id}/admin/promocode](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/get-promo-codes.md): Récupère la liste des codes promo d'un projet. ### Mettre à jour une promotion par code promo - [PUT /v3/project/{project_id}/admin/promocode/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/update-promo-code.md): Met à jour une promotion par code promo. ### Lire une promotion par code promo - [GET /v3/project/{project_id}/admin/promocode/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/get-promo-code.md): Récupère des informations sur une promotion par code promo spécifique. ### Supprimer une promotion par code promo - [DELETE /v3/project/{project_id}/admin/promocode/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/delete-promo-code.md): Supprime la promotion par code promo. Les conséquences suivantes s'en suivent : * La promotion disparaît de la liste des promotions configurées dans votre projet ; * Elle n'est plus appliquée au catalogue des objets ni au panier. L'utilisateur ne peut plus obtenir d'objets bonus ou acheter des objets à travers cette promotion. Après la suppression, la promotion ne peut pas être restaurée. Les codes promo de la promotion supprimée peuvent être ajoutés à des promotions existantes. ### Activer une promotion par code promo - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/activate](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/activate-promo-code.md): Active une promotion par code promo. Par défaut, une promotion par code promo créée est désactivée. Pour permettre l'échange de coupons, vous devez l'activer. Utilisez cet endpoint pour activer une promotion par code promo. ### Désactiver une promotion par code promo - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/deactivate](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/deactivate-promo-code.md): Désactive une promotion par code promo. Par défaut, une promotion par code promo créée est désactivée. Pour permettre l'échange de coupons, vous devez l'activer. Utilisez cet endpoint pour désactiver une promotion par code promo. ### Créer un code pour une promotion par code promo - [POST /v2/project/{project_id}/admin/promocode/{external_id}/code](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/create-promo-code-code.md): Crée un code pour une promotion par code promo. ### Lire les codes d'une promotion par code promo - [GET /v2/project/{project_id}/admin/promocode/{external_id}/code](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/get-promocode-codes.md): Récupère les codes d'une promotion par code promo. La réponse comprend le nombre total de codes de la promotion (total_count) et les codes de la page actuelle (codes). Pour récupérer la page suivante, augmentez la valeur offset de limit (par exemple, “offset”: 100, puis “offset”: 200) jusqu'à récupérer tous les codes. Dans la plupart des cas, "limit": 100 ou "limit": 1000 suffit. Réservez les valeurs plus élevées, telles que "limit": 10000, aux exportations en masse ponctuelles, et évitez d'utiliser "limit": 50000` sauf en cas de nécessité. ### Générer des codes pour une promotion par code promo - [PUT /v2/project/{project_id}/admin/promocode/{external_id}/code/generate](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/generate-promo-code-codes.md): Génère des codes pour une promotion par code promo. Lignes directrices pour la génération de code : * Aucune limite maximale ne s'applique au nombre total de codes par promotion, mais chaque requête est limitée à 50 000 codes. Les requêtes dépassant cette limite renvoient une erreur 422 Unprocessable Entity. Si vous avez besoin de plus de 50 000 codes, envoyez plusieurs requêtes. * Pour une meilleure fiabilité, il est recommandé de générer les codes par lots plus petits, jusqu'à 10 000 par requête. Par exemple, pour créer 100 000 codes, envoyez 10 requêtes avec "count": 10000 plutôt que 2 requêtes avec "count": 50000. Attendez une réponse réussie pour chaque requête avant d'envoyer la suivante. * N'oubliez pas que la limite de débit est fixée à 15 requêtes par seconde. Lorsque vous générez de grands volumes, envoyez les requêtes les unes après les autres afin d'éviter de dépasser cette limite et de recevoir une erreur 429. * Pour récupérer la liste des codes, appelez la méthode Lire les codes d'une promotion par code promo | Paramètre | Valeur | |---|---| | Nombre minimum de codes par requête. | 1 | | Nombre maximum de codes par requête. Utilisez uniquement lorsque vous avez besoin du plus grand lot unique possible. | 50 000 | | Nombre recommandé de codes par requête. | Jusqu'à 10 000. Si vous devez en créer davantage, envoyez plusieurs requêtes consécutives. | ### Lire la limite de code promo pour un utilisateur spécifique - [GET /v2/project/{project_id}/admin/user/limit/promocode/external_id/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/get-promo-code-user-limit.md): Récupère le nombre de fois restant qu'un utilisateur spécifique peut utiliser le code promo. L'API des limites utilisateur vous permet de limiter le nombre de fois que les utilisateurs peuvent utiliser un code promo. Pour configurer les limites utilisateur, référez-vous à la section Administrateur : * Codes promo ### Lire les limites pour les codes promo - [GET /v2/project/{project_id}/admin/code/limit/promocode/external_id/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-promo-codes/get-promo-code-code-limit.md): Récupère le nombre restant de fois que les codes peuvent être utilisés. Pour filtrer les codes, utilisez le paramètre de requête codes. Pour configurer la limite de codes elle-même, accédez à la section Administrateur : * Codes promo ## Offres uniques du catalogue Appelez les méthodes API de cette sous-section pour configurer et gérer les offres de catalogue uniques.

Note

Consultez notre documentation pour des informations détaillées sur les offres uniques.

### Créer une offre promotionnelle unique dans le catalogue - [POST /v3/project/{project_id}/admin/unique_catalog_offer](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer.md): Crée une offre promotionnelle unique dans le catalogue. ### Lire la liste des offres promotionnelles uniques du catalogue - [GET /v3/project/{project_id}/admin/unique_catalog_offer](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/get-unique-catalog-offers.md): Récupère la liste des offres promotionnelles uniques d'un projet. ### Mettre à jour une promotion par offre unique du catalogue - [PUT /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/update-unique-catalog-offer-promotion.md): Met à jour une promotion par offre unique du catalogue. ### Lire une promotion par offre unique du catalogue - [GET /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/get-unique-catalog-offer.md): Récupère une promotion par offre unique du catalogue spécifique. ### Supprimer une promotion par offre unique du catalogue - [DELETE /v3/project/{project_id}/admin/unique_catalog_offer/{external_id}](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/delete-unique-catalog-offer-promotion.md): Supprime la promotion par offre unique du catalogue. Les conséquences suivantes s'en suivent : * La promotion disparaît de la liste des promotions configurées dans votre projet ; * Elle n'est plus appliquée au catalogue des objets ni au panier. L'utilisateur ne peut plus acheter d'objets à travers cette promotion. Après la suppression, la promotion ne peut pas être restaurée. ### Activer une offre promotionnelle unique du catalogue - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/activate](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/activate-unique-catalog-offer.md): Active une offre promotionnelle unique du catalogue. Une offre promotionnelle unique créée dans le catalogue est désactivée par défaut. Elle ne peut pas être utilisée tant que vous ne l'avez pas activée. Utilisez cet endpoint pour activer une promotion par coupon. ### Désactiver une offre promotionnelle unique du catalogue - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/deactivate](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/deactivate-unique-catalog-offer.md): Désactive une offre promotionnelle unique du catalogue. Une offre promotionnelle unique créée dans le catalogue est désactivée par défaut. Elle ne peut pas être utilisée tant que vous ne l'avez pas activée. Utilisez cet endpoint pour désactiver une promotion par coupon. ### Créer un code pour une offre unique du catalogue - [POST /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/create-unique-catalog-offer-code.md): Crée un code pour une offre unique du catalogue ### Lire les codes d'une offre unique du catalogue - [GET /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/get-unique-catalog-offer-codes.md): Récupère les codes d'une offre unique du catalogue. ### Générer des codes pour une offre unique du catalogue - [PUT /v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code/generate](https://xsolla.redocly.app/fr/api/liveops/promotions-unique-catalog-offers/generate-unique-catalog-offer-codes.md): Génère des codes pour une offre unique du catalogue. ## Remises Appelez les méthodes API de cette sous-section pour configurer et gérer les promotions par réduction.

Note

Consultez notre documentation pour obtenir des informations détaillées sur les remises.

### Créer une promotion par réduction pour un objet - [POST /v3/project/{project_id}/admin/promotion/item](https://xsolla.redocly.app/fr/api/liveops/promotions-discounts/create-item-promotion.md): Crée une promotion par réduction pour un objet. Les promotions offrent une remise (%) sur les objets. La remise s'applique à tous les prix des objets spécifiés. ### Lire la liste des promotions sur des objets - [GET /v3/project/{project_id}/admin/promotion/item](https://xsolla.redocly.app/fr/api/liveops/promotions-discounts/get-item-promotion-list.md): Récupère la liste des promotions sur les objets d'un projet. Les promotions offrent une remise (%) sur les objets. La remise s'applique à tous les prix des objets spécifiés. ### Mettre à jour une promotion sur les objets - [PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://xsolla.redocly.app/fr/api/liveops/promotions-discounts/update-item-promotion.md): Met à jour une promotion. NoteLes nouvelles données remplaceront les anciennes. Si vous souhaitez mettre à jour une promotion partiellement, assurez-vous de passer toutes les données requises dans la requête. Les promotions offrent une remise (%) sur les objets. La remise s'applique à tous les prix des objets spécifiés. ### Lire une promotion sur les objets - [GET /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://xsolla.redocly.app/fr/api/liveops/promotions-discounts/get-item-promotion.md): Récupère des informations sur les promotions qui s'appliquent à des objets spécifiques. Les promotions offrent une remise (%) sur les objets. La remise s'applique à tous les prix des objets spécifiés. ### Supprimer une promotion sur les objets - [DELETE /v3/project/{project_id}/admin/promotion/{promotion_id}/item](https://xsolla.redocly.app/fr/api/liveops/promotions-discounts/delete-item-promotion.md): Supprime la promotion par réduction. Les conséquences suivantes s'en suivent : * La promotion disparaît de la liste des promotions configurées dans votre projet ; * Elle n'est plus appliquée au catalogue des objets ni au panier. L'utilisateur ne peut plus acheter d'objets à travers cette promotion. Après la suppression, la promotion ne peut pas être restaurée. ## Bonus Appelez les méthodes API de cette sous-section pour configurer et gérer les promotions par bonus.

Note

Consultez notre documentation pour obtenir des informations détaillées sur les bonus.

### Créer une promotion par bonus - [POST /v3/project/{project_id}/admin/promotion/bonus](https://xsolla.redocly.app/fr/api/liveops/promotions-bonuses/create-bonus-promotion.md): Crée une promotion par bonus. La promotion ajoute des objets bonus gratuits à l'achat effectué par l'utilisateur. La promotion peut être appliquée à chaque achat au sein d'un projet ou à un achat comprenant des objets particuliers. ### Lire la liste des promotions par bonus - [GET /v3/project/{project_id}/admin/promotion/bonus](https://xsolla.redocly.app/fr/api/liveops/promotions-bonuses/get-bonus-promotion-list.md): Récupère la liste des promotions par bonus au sein d'un projet. La promotion ajoute des objets bonus gratuits à l'achat effectué par l'utilisateur. La promotion peut être appliquée à chaque achat au sein d'un projet ou à un achat comprenant des objets particuliers. ### Mettre à jour une promotion par bonus - [PUT /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://xsolla.redocly.app/fr/api/liveops/promotions-bonuses/update-bonus-promotion.md): Met à jour une promotion. NoteLes nouvelles données remplaceront les anciennes. Si vous souhaitez mettre à jour une promotion partiellement, assurez-vous de passer toutes les données requises dans la requête. La promotion ajoute des objets bonus gratuits à l'achat effectué par l'utilisateur. La promotion peut être appliquée à chaque achat au sein d'un projet ou à un achat comprenant des objets particuliers. ### Lire une promotion par bonus - [GET /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://xsolla.redocly.app/fr/api/liveops/promotions-bonuses/get-bonus-promotion.md): Récupère des informations sur une promotion par bonus. La promotion ajoute des objets bonus gratuits à l'achat effectué par l'utilisateur. La promotion peut être appliquée à chaque achat au sein d'un projet ou à un achat comprenant des objets particuliers. ### Supprimer une promotion par bonus - [DELETE /v3/project/{project_id}/admin/promotion/{promotion_id}/bonus](https://xsolla.redocly.app/fr/api/liveops/promotions-bonuses/delete-bonus-promotion.md): Supprime la promotion par bonus. Les conséquences suivantes s'en suivent : * La promotion disparaît de la liste des promotions configurées dans votre projet ; * Elle n'est plus appliquée au catalogue des objets ni au panier. L'utilisateur ne peut plus obtenir d'objets bonus à travers cette promotion. Après la suppression, la promotion ne peut pas être restaurée. ## Catalogue personnalisé La personnalisation permet de définir des conditions d’affichage du catalogue d’objets et d’appliquer des promotions uniquement à certains utilisateurs autorisés. Ces conditions, basées sur les attributs utilisateur, permettent de proposer des objets et des promotions adaptés à des profils spécifiques. Les types de personnalisation suivants sont disponibles : * [Personnalisation côté Xsolla](/fr/liveops/promotion-tools/personalization/#guides_personalization_on_xsolla_side) — les règles et la logique de personnalisation sont configurées et stockées côté Xsolla. Vous transmettez les attributs utilisateur, puis Xsolla les utilise pour générer un catalogue personnalisé. * [Personnalisation côté partenaire](/fr/liveops/promotion-tools/personalization/#guides_personalization_on_partner_side) — vous configurez les règles et la logique de personnalisation de votre côté, puis envoyez à Xsolla la charge utile du catalogue final pour un utilisateur spécifique.
Note

Vous ne pouvez utiliser qu'un seul type de personnalisation. Pour le changer, suivez les instructions.
Pour configurer la personnalisation côté Xsolla en utilisant l'API Xsolla : 1. Créez des objets via les appels API de la sous-section **Administrateur** des groupes [Objets et monnaie virtuels](/fr/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Lots](/fr/api/catalog/bundles-admin/admin-create-bundle) ou [Clés de jeu](/fr/api/catalog/game-keys-admin). 2. [Configurez les attributs utilisateur en utilisant Xsolla Login API](/fr/liveops/promotion-tools/personalization/#web_shop_guide_personalization_setting_attributes) et maintenez-les synchronisés en mettant à jour les données dans Xsolla à chaque changement dans votre jeu. 3. Configurez la personnalisation pour les objets ou les promotions : * Pour personnaliser le catalogue des objets, définissez les règles d'affichage du catalogue via l'appel API [Créer une règle de filtrage du catalogue](/fr/api/liveops/personalized-catalog/create-filter-rule) : * Dans le tableau [attribute_conditions](/fr/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=attribute_conditions), spécifiez les conditions qui déterminent la disponibilité des objets en fonction des attributs utilisateur. * Dans le tableau [items](/fr/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=items), fournissez la liste des objets qui sont visibles pour l'utilisateur si ses attributs correspondent aux conditions spécifiées. * Pour configurer des promotions personnalisées, utilisez les appels API de [création et de mise à jour pour le type de promotion requis](/fr/api/liveops/promotions-discounts/create-item-promotion). Dans le tableau [attribute_conditions](/fr/api/liveops/promotions-discounts/create-item-promotion), spécifiez les conditions qui déterminent la disponibilité de la promotion en fonction des attributs utilisateur. 4. Passez le [JWT utilisateur](/fr/api/login/getting-user-token?#getting-user-token) avec les attributs utilisateur aux [appels API de récupération du catalogue](https://developers.xsolla.com/fr/api/catalog/virtual-items-currency-catalog/get-virtual-items) pour recevoir un catalogue personnalisé. **Séquence pour configurer et appliquer la personnalisation côté Xsolla pour le catalogue des objets :** ![Personnalisation pour le catalogue des objets](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-catalog.png) **Séquence pour configurer et appliquer la personnalisation côté Xsolla pour les promotions :** ![Personnalisation pour les promotions](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-liveops.png)
Note

Des informations détaillées sont fournies :
### Lire la liste des règles de filtrage du catalogue - [GET /v2/project/{project_id}/admin/user/attribute/rule](https://xsolla.redocly.app/fr/api/liveops/personalized-catalog/get-filter-rules.md): Récupère toutes les règles s'appliquant aux attributs utilisateur. ### Créer une règle de filtrage du catalogue - [POST /v2/project/{project_id}/admin/user/attribute/rule](https://xsolla.redocly.app/fr/api/liveops/personalized-catalog/create-filter-rule.md): Crée une règle pour les attributs utilisateur. ### Lire toutes les règles du catalogue pour une recherche côté client - [GET /v2/project/{project_id}/admin/user/attribute/rule/all](https://xsolla.redocly.app/fr/api/liveops/personalized-catalog/get-all-filter-rules.md): Récupère une liste de toutes les règles du catalogue pour la recherche côté client. AttentionRetourne uniquement l'ID de la règle, le nom et is_enabled ### Lire une règle de filtrage du catalogue - [GET /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/fr/api/liveops/personalized-catalog/get-filter-rule-by-id.md): Récupère des informations sur une règle spécifique s'appliquant aux attributs utilisateur. ### Mettre à jour une règle de filtrage du catalogue - [PUT /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/fr/api/liveops/personalized-catalog/update-filter-rule-by-id.md): Met à jour une règle spécifique s'appliquant aux attributs utilisateur. La valeur par défaut sera utilisée pour une propriété non spécifiée (si la propriété n'est pas requise). ### Appliquer une règle de filtrage de catalogue - [PATCH /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/fr/api/liveops/personalized-catalog/patch-filter-rule-by-id.md): Met à jour une règle spécifique s'appliquant aux attributs utilisateur. La valeur actuelle sera utilisée pour une propriété non spécifiée. ### Supprimer une règle de filtrage du catalogue - [DELETE /v2/project/{project_id}/admin/user/attribute/rule/{rule_id}](https://xsolla.redocly.app/fr/api/liveops/personalized-catalog/delete-filter-rule-by-id.md): Supprime une règle spécifique. ## Gestion ### Actualiser toutes les limites de promotion pour un utilisateur spécifique - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/all](https://xsolla.redocly.app/fr/api/liveops/user-limits-admin/reset-all-user-promotions-limit.md): Actualise toutes les limites de toutes les promotions pour un utilisateur spécifique afin qu'il puisse à nouveau utiliser ces promotions. L'API des limites utilisateur vous permet de limiter le nombre de fois qu'un utilisateur peut utiliser une promotion. Pour configurer les limites utilisateur, accédez à la section Administrateur du type de promotion souhaité : * Promotions par réduction * Promotions par bonus ### Actualiser la limite d'une promotion pour les utilisateurs - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}/all](https://xsolla.redocly.app/fr/api/liveops/user-limits-admin/reset-user-promotion-limit.md): Actualise la limite de la promotion afin que l'utilisateur puisse à nouveau utiliser cette promotion. Si le paramètre user est défini sur null, cet appel actualise cette limite pour tous les utilisateurs. L'API des limites utilisateur vous permet de limiter le nombre de fois qu'un utilisateur peut utiliser une promotion. Pour configurer les limites utilisateur, accédez à la section Administrateur du type de promotion souhaité : * Promotions par réduction * Promotions par bonus ### Lire la limite de promotion pour un utilisateur spécifique - [GET /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/fr/api/liveops/user-limits-admin/get-user-promotion-limit.md): Récupère le nombre de fois qu'un utilisateur spécifique peut utiliser la promotion dans la limite appliquée. L'API des limites utilisateur vous permet de limiter le nombre de fois qu'un utilisateur peut utiliser une promotion. Pour configurer les limites utilisateur, accédez à la section Administrateur du type de promotion souhaité : * Promotions par réduction * Promotions par bonus ### Augmenter la limite de promotion pour un utilisateur spécifique - [POST /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/fr/api/liveops/user-limits-admin/add-user-promotion-limit.md): Augmente le nombre de fois qu'un utilisateur spécifique peut utiliser la promotion dans la limite appliquée. L'API des limites utilisateur vous permet de limiter le nombre de fois qu'un utilisateur peut utiliser une promotion. Pour configurer les limites utilisateur, accédez à la section Administrateur du type de promotion souhaité : * Promotions par réduction * Promotions par bonus ### Définir la limite de promotion pour un utilisateur spécifique - [PUT /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/fr/api/liveops/user-limits-admin/set-user-promotion-limit.md): Définit le nombre de fois qu'un utilisateur spécifique peut utiliser une promotion dans la limite appliquée après une augmentation ou une diminution. L'API des limites utilisateur vous permet de limiter le nombre de fois qu'un utilisateur peut utiliser une promotion. Pour configurer les limites utilisateur, accédez à la section Administrateur du type de promotion souhaité : * Promotions par réduction * Promotions par bonus ### Réduire la limite de promotion pour un utilisateur spécifique - [DELETE /v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}](https://xsolla.redocly.app/fr/api/liveops/user-limits-admin/remove-user-promotion-limit.md): Réduit le nombre d'utilisations restantes d'une promotion pour un utilisateur spécifié dans le cadre de la limite appliquée. L'API des limites utilisateur vous permet de limiter le nombre de fois qu'un utilisateur peut utiliser une promotion. Pour configurer les limites utilisateur, accédez à la section Administrateur du type de promotion souhaité : * Promotions par réduction * Promotions par bonus ## Administrateur ### Lire la liste des points de valeur - [GET /v2/project/{project_id}/admin/items/value_points](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-get-value-points-list.md): Récupère la liste des points de valeur au sein d'un projet à des fins d'administration.e ### Créer un point de valeur - [POST /v2/project/{project_id}/admin/items/value_points](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-create-value-points.md): Crée un point de valeur. ### Lire un point de valeur - [GET /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-get-value-point.md): Récupère des informations sur un point de valeur par son UGS au sein d'un projet à des fins d'administration. ### Mettre à jour un point de valeur - [PUT /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-update-value-point.md): Met à jour un point de valeur spécifique par son UGS. ### Supprimer des points de valeur - [DELETE /v2/project/{project_id}/admin/items/value_points/sku/{item_sku}](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-delete-value-point.md): Supprime un point de valeur spécifique par son UGS. ### Lire la liste des objets ayant des points de valeur - [GET /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-get-items-value-point-reward.md): Récupère la liste de tous les objets ayant des points de valeur au sein d'un projet à des fins d'administration. ### Définir des points de valeur pour les objets - [PUT /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-set-items-value-point-reward.md): Attribue des points de valeur à un ou plusieurs objets par UGS. Les utilisateurs reçoivent des points de valeur en achetant ces objets. Notez que cette requête PUT écrase tous les points de valeur précédemment définis pour les objets du projet. Pour éviter la suppression involontaire de points de valeur, incluez tous les objets et leurs points de valeur respectifs dans chaque requête PUT. Si vous souhaitez uniquement mettre à jour les points de valeur d'un objet spécifique tout en préservant les points de valeur des autres objets, vous devez récupérer l'ensemble actuel des points de valeur à l'aide d'une requête GET, modifier les points de valeur de l'objet souhaité, puis renvoyer l'ensemble modifié des points de valeur avec les points de valeur mis à jour pour l'objet spécifique. ### Mettre à jour partiellement les points de valeur des objets - [PATCH /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-patch-items-value-point-reward.md): Met à jour partiellement le nombre de points de valeur pour un ou plusieurs objets par UGS. Les utilisateurs reçoivent ces points de valeur après l'achat des objets spécifiés. Principes de mise à jour des points de valeur : * Si un objet ne possède pas encore de points de valeur, l'envoi d'une valeur non nulle dans le champ amounten crée. * Si un objet possède déjà des points de valeur, l'envoi d'une valeur non nulle dans le champ amount les met à jour. * Si le champ amount est fixé à 0, les points de valeur existants pour cet objet sont supprimés. Contrairement à la méthode PUT (Définir des points de valeur pour les objets), cette méthode PATCH n'écrase pas tous les points de valeur existants du projet, elle met uniquement à jour les objets spécifiés. Une seule requête peut mettre à jour jusqu'à 100 objets. Les UGS en double ne sont pas autorisés dans la même requête. ### Supprimer les points de valeur des objets - [DELETE /v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-delete-items-value-point-reward.md): Supprime les récompenses en points de valeur de TOUS les objets. ### Lire une liste de chaînes de récompenses - [GET /v3/project/{project_id}/admin/reward_chain](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-get-reward-chains.md): Récupère une liste de chaînes de récompenses. AttentionTous les projets sont soumis à une limite de nombre d'objets que vous pouvez obtenir dans la réponse. La valeur par défaut et la valeur maximale sont 10 éléments par réponse. Pour obtenir plus de données page par page, utilisez les champs limit et offset. ### Créer une chaîne de récompenses - [POST /v3/project/{project_id}/admin/reward_chain](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-create-reward-chain.md): Crée une chaîne de récompenses. ### Lire une chaîne de récompenses - [GET /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-get-reward-chain.md): Récupère des informations sur une chaîne de récompenses spécifique. ### Mettre à jour une chaîne de récompenses - [PUT /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-update-reward-chain.md): Met à jour une chaîne de récompenses spécifique. ### Supprimer une chaîne de récompenses - [DELETE /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-delete-reward-chain.md): Supprime une chaîne de récompenses spécifique. ### Basculer une chaîne de récompenses - [PUT /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/toggle](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-toggle-reward-chain.md): Active/désactive la chaîne de récompenses. ### Réinitialiser la chaîne de récompenses - [POST /v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/reset](https://xsolla.redocly.app/fr/api/liveops/reward-chain-value-points-admin/admin-reset-reward-chain.md): Réinitialise le solde de points de valeur et la progression de tous les utilisateurs dans la chaîne de récompenses. Le solde est lié au type de points de valeur, et non à une chaîne spécifique. Si ces points sont utilisés dans d’autres chaînes, le solde sera réinitialisé dans toutes celles qui les utilisent. Après la réinitialisation, vous pouvez mettre à jour la période de validité de la chaîne, et les utilisateurs pourront progresser à nouveau. Le solde du clan correspond à la somme des soldes de ses membres et sera donc également réinitialisé. Cette opération est irréversible et concerne tous les utilisateurs du projet. Avis Ne réinitialisez pas la chaîne de récompenses pendant sa période de validité. Dans ce cas, les utilisateurs risquent de perdre des points de valeur gagnés avant de réclamer leur récompense. ## Client ### Lire les chaînes de récompenses de l'utilisateur actuel - [GET /v2/project/{project_id}/user/reward_chain](https://xsolla.redocly.app/fr/api/liveops/reward-chain-client/get-reward-chains-list.md): Endpoint client. Récupère des informations sur les chaînes de récompenses de l'utilisateur actuel. Attention Tous les projets sont soumis à une limite de nombre d'objets pouvant être retourné dans une réponse. La valeur par défaut et maximale est de 50 objets par réponse. Pour récupérer davantage de données page par page, utilisez les champs limit et offset. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Lire le solde de points de valeur de l'utilisateur actuel - [GET /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/balance](https://xsolla.redocly.app/fr/api/liveops/reward-chain-client/get-user-reward-chain-balance.md): Endpoint client. Récupère le solde actuel des points de valeur de l'utilisateur. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Réclamer la récompense d'une étape - [POST /v2/project/{project_id}/user/reward_chain/{reward_chain_id}/step/{step_id}/claim](https://xsolla.redocly.app/fr/api/liveops/reward-chain-client/claim-user-reward-chain-step-reward.md): Endpoint client. Réclame la récompense d'étape actuelle de l'utilisateur dans une chaîne de récompenses. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ## Client clans ### Lire les 10 premiers contributeurs à la chaîne de récompense au sein du clan - [GET /v2/project/{project_id}/user/clan/contributors/{reward_chain_id}/top](https://xsolla.redocly.app/fr/api/liveops/clan-reward-chain-client/get-user-clan-top-contributors.md): Récupère la liste des 10 principaux contributeurs de la chaîne de récompenses associée au clan de l'utilisateur actuel. Si l'utilisateur n'appartient pas à un clan, l'appel renvoie un tableau vide. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Mise à jour du clan de l'utilisateur actuel - [PUT /v2/project/{project_id}/user/clan/update](https://xsolla.redocly.app/fr/api/liveops/clan-reward-chain-client/user-clan-update.md): Met à jour le clan de l'utilisateur actuel via les attributs utilisateur. Réclame toutes les récompenses non réclamées des chaînes de récompenses associées à un clan précédent et les renvoie dans la réponse. Si l'utilisateur appartenait à un clan et n'en fait plus partie, son appartenance est révoquée. Si l'utilisateur a changé de clan, celui-ci est mis à jour. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ## Administrateur ### Lire une liste de récompenses quotidiennes - [GET /v2/project/{project_id}/admin/daily_chain](https://xsolla.redocly.app/fr/api/liveops/daily-chain-admin/admin-get-daily-chains.md): Récupère une liste de récompenses quotidiennes à des fins d'administration. RemarqueLa méthode renvoie une liste paginée d'objets. La valeur maximale et par défaut est de 50 objets par réponse. Pour obtenir d'autres objets de la liste, utilisez les paramètres limit et offset, et récupérez d'autres pages. Par exemple, avec limit = 25 et offset = 100, la réponse renvoie 25 objets à partir du 101e objet de la liste globale. ### Créer une récompense quotidienne - [POST /v2/project/{project_id}/admin/daily_chain](https://xsolla.redocly.app/fr/api/liveops/daily-chain-admin/admin-create-daily-chain.md): Crée une récompense quotidienne. ### Lire une récompense quotidienne - [GET /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://xsolla.redocly.app/fr/api/liveops/daily-chain-admin/admin-get-daily-chain.md): Récupère une récompense quotidienne spécifique pour administration. ### Mettre à jour la récompense quotidienne - [PUT /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://xsolla.redocly.app/fr/api/liveops/daily-chain-admin/admin-update-daily-chain.md): Met à jour une récompense quotidienne spécifique. ### Supprimer la récompense quotidienne - [DELETE /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}](https://xsolla.redocly.app/fr/api/liveops/daily-chain-admin/admin-delete-daily-chain.md): Supprime une récompense quotidienne spécifique. ### Basculer une récompense quotidienne - [PUT /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/toggle](https://xsolla.redocly.app/fr/api/liveops/daily-chain-admin/admin-toggle-daily-chain.md): Active ou désactive une récompense quotidienne. ### Réinitialiser la récompense quotidienne - [POST /v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/reset](https://xsolla.redocly.app/fr/api/liveops/daily-chain-admin/admin-reset-daily-chain.md): Réinitialise la progression de tous les utilisateurs pour cette récompense quotidienne. Applicable uniquement aux récompenses de type rolling. ## Client ### Lire les récompenses quotidiennes de l'utilisateur actuel - [GET /v2/project/{project_id}/user/daily_chain](https://xsolla.redocly.app/fr/api/liveops/daily-chain-client/get-daily-chains-list.md): Endpoint client. Récupère les récompenses quotidiennes de l'utilisateur actuel. RemarqueLa méthode renvoie une liste paginée d'objets. La valeur maximale et par défaut est de 50 objets par réponse. Pour obtenir d'autres objets de la liste, utilisez les paramètres limit et offset, et récupérez d'autres pages. Par exemple, avec limit = 25 et offset = 100, la réponse renvoie 25 objets à partir du 101ᵉ objet de la liste globale. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Lire la récompense quotidienne de l'utilisateur actuel par son ID - [GET /v2/project/{project_id}/user/daily_chain/{daily_chain_id}](https://xsolla.redocly.app/fr/api/liveops/daily-chain-client/get-user-daily-chain-by-id.md): Endpoint client. Récupère la récompense quotidienne de l'utilisateur actuel par son ID. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Réclamer une étape de récompense quotidienne - [POST /v2/project/{project_id}/user/daily_chain/{daily_chain_id}/step/number/{step_number}/claim](https://xsolla.redocly.app/fr/api/liveops/daily-chain-client/claim-user-daily-chain-step-reward.md): Endpoint client. Réclame la récompense d'une étape d'une récompense quotidienne de l'utilisateur actuel. Les étapes doivent être réclamées dans l'ordre séquentiel. Une récompense d'étape manquée ne peut être récupérée ni en monnaie virtuelle ou réelle, ni en regardant une publicité Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ## Administrateur ### Lire une liste de chaînes d'offres - [GET /v2/project/{project_id}/admin/offer_chain](https://xsolla.redocly.app/fr/api/liveops/offer-chain-admin/admin-get-offer-chains.md): Récupère une liste de chaînes d'offres à des fins d'administration. AttentionTous les projets sont soumis à une limite de nombre d'objets pouvant être renvoyés dans une seule réponse. La valeur par défaut et la valeur maximale sont de 10 objets par réponse. Pour obtenir plus de données, utilisez les paramètres de requête limit et offset pour la pagination. ### Créer une chaîne d'offres - [POST /v2/project/{project_id}/admin/offer_chain](https://xsolla.redocly.app/fr/api/liveops/offer-chain-admin/admin-create-offer-chain.md): Crée une chaîne d'offres ### Lire une chaîne d'offre - [GET /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://xsolla.redocly.app/fr/api/liveops/offer-chain-admin/admin-get-offer-chain.md): Récupère une chaîne d'offres spécifique à des fin d'administration. ### Mettre à jour une chaîne - [PUT /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://xsolla.redocly.app/fr/api/liveops/offer-chain-admin/admin-update-offer-chain.md): Met à jour une chaîne d'offres spécifique. ### Supprimer une chaîne d'offres - [DELETE /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}](https://xsolla.redocly.app/fr/api/liveops/offer-chain-admin/admin-delete-offer-chain.md): Supprime une chaîne d'offres spécifique. Après la suppression :Toutes les récompenses déjà reçues par les utilisateurs sont conservées.Les étapes non achevées deviennent indisponibles et les récompenses correspondantes ne peuvent plus être obtenues. Contrairement à la désactivation de la chaîne d'offres via l'appel Activer/désactiver une chaîne d'offres, la suppression est irréversible et la progression de l'utilisateur n'est pas préservée. ### Activer/désactiver une chaîne d'offres - [PUT /v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}/toggle](https://xsolla.redocly.app/fr/api/liveops/offer-chain-admin/admin-toggle-offer-chain.md): Active ou désactive une chaîne d'offres. Lorsque la chaîne d'offres est désactivée, les utilisateurs n'y ont temporairement plus accès, mais leur progression est préservée. Lorsque la chaîne d'offres est réactivée, les utilisateurs peuvent continuer à partir de l'étape où ils se sont arrêtés. ## Client ### Lire les chaînes d'offres de l'utilisateur actuel - [GET /v2/project/{project_id}/user/offer_chain](https://xsolla.redocly.app/fr/api/liveops/offer-chain-client/get-offer-chains-list.md): Récupère les chaînes d'offres de l'utilisateur actuel. AttentionTous les projets sont soumis a une limite de nombre d'objets pouvant être renvoyés dans une seule réponse. La valeur par défaut et la valeur maximale sont de 30 objets par réponse. Pour obtenir plus de données, utilisez les paramètres de requête limit et offset pour la pagination. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Lire une chaîne d'offres de l'utilisateur actuel par ID - [GET /v2/project/{project_id}/user/offer_chain/{offer_chain_id}](https://xsolla.redocly.app/fr/api/liveops/offer-chain-client/get-user-offer-chain-by-id.md): Récupère la chaîne d'offres de l'utilisateur actuel par ID de chaîne d'offres. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Réclamer une étape de chaîne d'offres gratuite - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/claim](https://xsolla.redocly.app/fr/api/liveops/offer-chain-client/claim-user-offer-chain-step-reward.md): Termine la progression de l'utilisateur actuel dans l'étape de la chaîne d'offres et attribue la récompense associée. Attention Utilisez cet appel uniquement pour les étapes gratuites de la chaîne d’offres. Pour les étapes nécessitant un paiement en devises réelles, utilisez plutôt l'appel Créer une commande pour une étape payante de la chaîne d'offres. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Créer une commande pour une étape payante de la chaîne d'offres - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://xsolla.redocly.app/fr/api/liveops/offer-chain-client/order-user-offer-chain-step-reward.md): Crée une commande pour l'objet associé à une étape payante spécifique de la chaîne d'offres. La commande créée obtient le statut new. 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}. Attention Cette méthode doit être utilisée côté client. L'adresse IP de l'utilisateur permet de déterminer son pays, ce qui influence la devise et les modes de paiement disponibles. Utiliser cette méthode côté serveur peut entraîner une détection incorrecte de la devise et affecter les modes de paiement dans Pay Station. Attention Utilisez cet appel uniquement pour les étapes payantes de la chaîne d'offres. Pour les étapes gratuites, utilisez plutôt l'appel Réclamer une étape de chaîne d'offres gratuite. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ## payment-client-side ### Créer une commande pour une étape payante de la chaîne d'offres - [POST /v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order](https://xsolla.redocly.app/fr/api/liveops/offer-chain-client/order-user-offer-chain-step-reward.md): Crée une commande pour l'objet associé à une étape payante spécifique de la chaîne d'offres. La commande créée obtient le statut new. 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}. Attention Cette méthode doit être utilisée côté client. L'adresse IP de l'utilisateur permet de déterminer son pays, ce qui influence la devise et les modes de paiement disponibles. Utiliser cette méthode côté serveur peut entraîner une détection incorrecte de la devise et affecter les modes de paiement dans Pay Station. Attention Utilisez cet appel uniquement pour les étapes payantes de la chaîne d'offres. Pour les étapes gratuites, utilisez plutôt l'appel Réclamer une étape de chaîne d'offres gratuite. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ## Administrateur ### Lire les informations sur les ventes incitatives dans le projet - [GET /v2/project/{project_id}/admin/items/upsell](https://xsolla.redocly.app/fr/api/liveops/upsell-admin/get-upsell-configurations-for-project-admin.md): Récupère les informations relatives à la vente incitative dans le projet : si elle est activée, le type de vente incitative et la liste des UGS des objets concernés par cette vente. ### Créer une vente incitative - [POST /v2/project/{project_id}/admin/items/upsell](https://xsolla.redocly.app/fr/api/liveops/upsell-admin/post-upsell.md): Crée un upsell pour un projet. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Mettre à jour une vente incitative - [PUT /v2/project/{project_id}/admin/items/upsell](https://xsolla.redocly.app/fr/api/liveops/upsell-admin/put-upsell.md): Met à jour un upsell pour un projet. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ### Activer/désactiver la vente incitative d'un projet - [PUT /v2/project/{project_id}/admin/items/upsell/{toggle}](https://xsolla.redocly.app/fr/api/liveops/upsell-admin/put-upsell-toggle-active-inactive.md): Change le statut d'un upsell dans un projet pour le rendre actif ou inactif. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ## Client ### Lire la liste des objets de vente incitative dans le projet - [GET /v2/project/{project_id}/items/upsell](https://xsolla.redocly.app/fr/api/liveops/upsell-client/get-upsell-for-project-client.md): Récupère la liste des objets d'un upsell dans un projet, s'ils ont déjà été configurés. Note Cet appel API utilise un JWT utilisateur pour l'autorisation. Incluez le jeton dans l'en-tête Authorization au format suivant : Bearer <user_JWT>. Pour plus d'informations sur le JWT utilisateur, consultez le bloc Security pour cet appel. ## Administrateur ### Lire le solde de points de fidélité de l'utilisateur - [GET /projects/{project_id}/users/{user_id}/points/{point_id}/balance](https://xsolla.redocly.app/fr/api/liveops/loyalty-program-admin/loyalty-get-user-point-balance.md): Renvoie le solde actuel des points de fidélité spécifiés. ### Débiter le solde de points de fidélité de l'utilisateur - [POST /projects/{project_id}/users/{user_id}/points/{point_id}/balance/debit](https://xsolla.redocly.app/fr/api/liveops/loyalty-program-admin/loyalty-debit-user-point-balance.md): Débite le solde de points de fidélité de l'utilisateur du montant spécifié. ### Créditer le solde de points de fidélité de l'utilisateur - [POST /projects/{project_id}/users/{user_id}/points/{point_id}/balance/credit](https://xsolla.redocly.app/fr/api/liveops/loyalty-program-admin/loyalty-credit-user-point-balance.md): Crédite le solde de points de fidélité de l'utilisateur du montant spécifié.