> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metronome.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Trackers de dépenses

<Note>
  **Bêta publique**

  Les trackers de dépenses sont actuellement en bêta publique. Des changements incompatibles peuvent survenir entre maintenant et la disponibilité générale. Veuillez contacter votre représentant Metronome pour y accéder.
</Note>

Pour certains modèles de facturation, il peut être utile de suivre les dépenses d'un client au fil du temps. Ces trackers peuvent être utilisés pour informer des schémas de remise ou fournir de la visibilité au client final. Créez un `spend_tracker` sur le contrat pour suivre les dépenses totales pour des charges spécifiques au fil du temps.

## Créer un tracker de dépenses

Les trackers de dépenses renvoient la somme des charges spécifiées sur une période de temps — `spend_tracker.reset_frequency`. Les trackers de dépenses peuvent être définis lors de la création d'un Package, de la création d'un contrat ou de l'édition d'un contrat. D'autres configurations sur le contrat peuvent pointer vers le tracker de dépenses pour gérer les seuils basés sur les dépenses. Par exemple, nous pouvons créer un tracker de dépenses pour plafonner le montant des achats de commits prépayés remisés qu'un client peut obtenir sur un seul mois.

`applicable_spend_specifiers` spécifie quelles charges doivent compter par rapport au tracker de dépenses :

* *`spend_type` :* aujourd'hui, seuls les achats de commits peuvent compter pour un tracker de dépenses.
* *`sources` :* spécifiez si les commits créés manuellement et/ou les commits de facturation par seuil comptent pour le tracker de dépenses.
* *`discounted` :* spécifiez facultativement si les commits marqués comme « discounted » comptent pour le tracker de dépenses. Pour les commits manuels, cela est défini via `spend_tracker_attributes.count_as_discounted`. Pour les commits de facturation par seuil, cela est défini via le `discount_config`.

Voir le contrat d'exemple ci-dessous :

```bash theme={null}
    curl https://api.metronome.com/v1/contracts/create \
      -H "Authorization: Bearer <TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
            "customer_id": "8cecbf69-960f-4f66-9575-edebb7d95e88",
            "rate_card_id": "a7bc3775-b651-46b6-b7e4-d225a7e55c4c",
            "starting_at": "2025-04-01T00:00:00.000Z",
            ...
            "spend_trackers": [
              {
                "alias": "promo-cap",
                "credit_type_id": "usd_credit_type_id",
                "reset_frequency": "BILLING_PERIOD",
                "applicable_spend_specifiers": [
                  {
                    "spend_type": "COMMIT_PURCHASE",
                    "sources": ["THRESHOLD_RECHARGE", "MANUAL"],
                    "discounted": "DISCOUNTED_ONLY"
                  }
                ]
              }
            ],
            "prepaid_balance_threshold_configuration": {
              "commit": {
                "product_id": "d6be3bf4-1669-40c9-a8b1-388bb167ab16",
                "name": "prepaid-balance",
                "description": "threshold billing recharges"
              },
              "discount_config": {
                "fraction": 0.90,
                "cap": {
                  "spend_tracker_alias": "promo-cap",
                  "amount": 20000
                }
              },
              "is_enabled": true,
              "payment_gate_config": {
                "payment_gate_type": "STRIPE",
                  "stripe_config": {
                    "payment_type": "INVOICE"
                  }
              },
              "threshold_amount": 500,
              "recharge_to_amount": 2000
            }
          }'
```

Pour ce contrat, nous avons un tracker de dépenses dont la portée inclut les commits manuels et de facturation par seuil remisés. Le `discount_config` sur le `prepaid_balance_threshold_configuration` pointe vers ce tracker de dépenses pour appliquer un plafond. Lorsque le plafond est atteint, les nouveaux commits par seuil ne seront plus remisés jusqu'au début de la prochaine période de facturation.

## Obtenir le total du tracker de dépenses

Une fois configuré, vous pouvez interroger le contrat pour obtenir les dépenses actuelles comptées dans le tracker pour la période en cours. Voir un exemple ci-dessous :

```bash theme={null}
    curl https://api.metronome.com/v2/contracts/get \
      -H "Authorization: Bearer <TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
            "data": {
            "id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
            "customer_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",
            ...
            "spend_trackers": [
              {
                "alias": "promo-cap",
                "credit_type_id": "usd_credit_type_id",
                "reset_frequency": "BILLING_PERIOD",
                "accumulated_spend": {
                  "amount": 14253.22,
                  "period_starting_at": "2026-05-01T00:00:00.000Z",
                  "period_ending_before": "2026-06-01T00:00:00.000Z"
                },
                "applicable_spend_specifiers": [
                  {
                    "spend_type": "COMMIT_PURCHASE",
                    "sources": ["THRESHOLD_RECHARGE", "MANUAL"],
                    "discounted": "DISCOUNTED_ONLY"
                  }
                ]
              }
            ]
          }
        }'
```

Bien que les trackers de dépenses puissent être utilisés pour déclencher dynamiquement certaines configurations, comme la configuration de remise de facturation par seuil illustrée ci-dessus, les utilisateurs peuvent exploiter ce tracker de dépenses pour appliquer des schémas de tarification internes. Par exemple, si vous souhaitez appliquer un plafond de dépenses pour les [commits avec passerelle de paiement](/fr/guides/pricing-packaging/apply-credits-and-commits/manual-payment-gated-commits), vous pouvez vérifier le tracker de dépenses avant d'émettre le commit pour appliquer un plafond.
