---
title: "Démarrage rapide avec les monnaies virtuelles"
description: "Configurez une monnaie virtuelle de bout en bout : créez une monnaie en jetons, accordez des jetons avec un abonnement et dépensez-les via l'API côté serveur."
---

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

Ce guide de démarrage rapide configure une monnaie en jetons de bout en bout : un abonnement accorde aux utilisateurs 1 000 jetons par mois, et les actions payantes dans votre application coûtent des jetons. Adapty gère chaque solde, votre backend n'a qu'à les lire et les dépenser.

1. Suivez le guide [Créer une devise virtuelle](create-virtual-currency) pour créer une devise `TOKENS`. Associez-la à votre abonnement Pro et définissez **Credit per cycle** sur 1000. Pour vendre des tokens supplémentaires, associez également des produits d'achat unique de packs de tokens.

   

2. Appelez [List virtual currency balances](api-adapty/operations/listVirtualCurrencyBalances) pour lire le solde de l'utilisateur, par exemple avant de lancer une génération :

```bash title="Read balances"
   curl https://api.adapty.io/api/v2/server-side-api/vc/balances/ \
     -H "Authorization: Api-Key {your secret key}" \
     -H "adapty-customer-user-id: user-42"
   ```

   La réponse liste toutes les devises que possède l'utilisateur, par exemple 1000 `TOKENS` :

```json title="Response"
   {
     "data": [
       { "code": "TOKENS", "name": "Tokens", "balance": 1000, "held": 0, "available": 1000 }
     ]
   }
   ```
3. Lorsque l'utilisateur lance une génération, dépensez les tokens en appelant [Créer une transaction en devise virtuelle](api-adapty/operations/createVirtualCurrencyTransaction) avec un `amount` négatif. Dans cet exemple, la génération d'une image coûte 100 tokens :

   ```bash title="Spend tokens"
   curl -X POST https://api.adapty.io/api/v2/server-side-api/vc/transactions/ \
     -H "Authorization: Api-Key {your secret key}" \
     -H "adapty-customer-user-id: user-42" \
     -H "Content-Type: application/json" \
     -d '{"items": [{"currency_code": "TOKENS", "amount": -100}]}'
   ```

La transaction est atomique et retourne le solde mis à jour. Si l'utilisateur ne peut pas couvrir le coût, la requête retourne `insufficient_balance` et rien ne change. Incluez un en-tête `Idempotency-Key` pour relancer les requêtes en toute sécurité.
4. Pour lancer une promo de reconquête, accordez des tokens via le même endpoint avec un `amount` positif. Les crédits accordés de cette façon n'expirent jamais. Pour donner un solde aux utilisateurs avant leur premier achat, consultez [Accorder un solde initial](grant-initial-balance).
5. Consultez chaque modification dans le [profil](virtual-currency-balance) de l'utilisateur ou dans l'[historique des transactions](api-adapty/operations/listVirtualCurrencyTransactions), afin de pouvoir auditer l'économie à tout moment.