---
title: "Solde de devise virtuelle"
description: "Consultez les soldes de devises virtuelles d'un utilisateur sur son profil et examinez chaque changement de solde dans l'historique des événements."
---

:::link
Article principal : [Devises virtuelles](virtual-currencies)
:::

Chaque profil utilisateur dans [Profiles/CRM](profiles-crm) affiche le solde de devises virtuelles de cet utilisateur, ainsi qu'un historique de chaque modification.

## Consulter les soldes dans un profil utilisateur \{#view-balances-in-a-user-profile\}

Ouvrez le [profil](https://app.adapty.io/profiles/users) de l'utilisateur. La carte **Virtual currency** liste toutes les devises que l'utilisateur possède.

Chaque ligne affiche :

- Le **code** de la devise, par exemple `COINS`.
- Le **solde** actuel, sous forme de nombre entier.

Les soldes se mettent à jour au fur et à mesure que l'utilisateur gagne, dépense ou reçoit des crédits. Un solde ne peut pas descendre en dessous de 0 : une transaction qui tente de dépenser plus que ce que l'utilisateur possède échoue avec `insufficient_balance` et ne modifie rien. Un profil sans solde affiche une carte vide.

Pour lire un solde depuis votre propre code, appelez [List virtual currency balances](api-adapty/operations/listVirtualCurrencyBalances) dans l'API côté serveur.

## Consulter l'historique des modifications de solde \{#review-balance-changes-in-the-event-history\}

Chaque modification de solde apparaît dans l'historique des événements du profil, du plus récent au plus ancien. Chaque entrée indique la nature du changement et liste les devises concernées.

L'historique affiche trois types d'événements liés aux devises virtuelles :

- **Virtual currency credited** : un achat, un renouvellement ou le début d'un essai a crédité des points.
- **Virtual currency transaction** : un appel API côté serveur a crédité ou débité le solde.
- **Virtual currency expired** : des crédits avec expiration ont été réinitialisés à la fin d'un cycle de facturation ou à l'expiration de l'abonnement.

Chaque entrée liste, pour chaque devise modifiée :

- **Monnaie virtuelle** : Le nom et le code de la monnaie, par exemple `Gold Coins (COINS)`.
- **Montant** : La variation signée — positive pour un crédit, négative pour un débit.
- **Solde après** : Le solde de la monnaie une fois la modification appliquée.

Un événement peut modifier plusieurs monnaies à la fois — par exemple, une seule [transaction](api-adapty/operations/createVirtualCurrencyTransaction) qui débite une monnaie et en crédite une autre pour les convertir.

## Soldes, profils et appareils \{#balances-profiles-and-devices\}

Un solde appartient toujours à un seul [profil](profiles-crm) et ne peut jamais être transféré vers un autre. Adapty ne partage pas les soldes entre profils, contrairement aux [niveaux d'accès qui peuvent être partagés entre comptes utilisateurs](profiles-crm#sharing-paid-access-between-user-accounts).

En pratique, cela signifie que :

- **Utilisateurs identifiés** : Un identifiant utilisateur personnalisé renvoie toujours au même profil, donc l'utilisateur voit le même solde sur chaque appareil où il se connecte, et le conserve après avoir réinstallé votre application.
- **Utilisateurs anonymes** : Un profil anonyme peut accumuler et dépenser des crédits, mais il est lié à une seule installation de l'application sur un seul appareil. Lorsque le même utilisateur réinstalle votre application, ou l'ouvre sur un autre appareil sans se connecter, Adapty crée un nouveau profil anonyme avec un solde nul. Les crédits restent sur l'ancien profil, auquel l'utilisateur ne peut plus accéder.

Pour gérer une économie de monnaie virtuelle entre les appareils et après les réinstallations, identifiez vos utilisateurs. Vous pouvez les identifier dans le code de l'application via le SDK (voir [Identifier les utilisateurs](ios-quickstart-identify) dans le guide de démarrage rapide) ou depuis votre backend via l'[API côté serveur](getting-started-with-server-side-api).

L'identification tardive d'un utilisateur a son propre inconvénient : si un utilisateur accumule des crédits de façon anonyme puis se connecte avec un identifiant utilisateur qui appartient déjà à un autre profil, l'appareil bascule vers ce profil et son solde. Les crédits accumulés anonymement restent sur l'ancien profil et deviennent inaccessibles. Si l'identifiant utilisateur est nouveau, il est associé au profil actuel et l'utilisateur conserve son solde. Pour plus de sécurité, identifiez les utilisateurs avant qu'ils puissent gagner ou acheter des crédits.

Dans les appels à l'[API côté serveur](getting-started-with-server-side-api), identifiez le profil avec l'en-tête `adapty-profile-id` ou `adapty-customer-user-id` — les deux renvoient à un seul et même profil. Pour les profils anonymes, utilisez `adapty-profile-id`.