> ## 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.

# Modifications et overrides de contrat

Les [rate cards](/fr/guides/implement-metronome/core-concepts/create-manage-rate-cards) de Metronome contiennent les tarifs par défaut et les états d'éligibilité pour vos clients ou un sous-ensemble de ceux-ci. Des clients individuels peuvent négocier des remises personnalisées lors de la signature d'un contrat, ou vous pouvez accorder des promotions limitées dans le temps à une cohorte de clients. Pour activer ces cas d'usage dans Metronome, utilisez les overrides au niveau du contrat.

## Types d'overrides​

Utilisez les overrides avec les produits d'usage, d'abonnement et composites pour remplacer le tarif ou l'éligibilité d'un produit.

Il existe trois types d'overrides de tarifs :

* **Multiplier** multiplie le tarif de la rate card par le nombre spécifié. Par exemple, un multiplicateur de 0,9 accorde une remise de 10 % sur le tarif de liste. Lorsque le tarif de liste sur la rate card change, le tarif effectif après application du multiplicateur change également.
* **Overwrite** définit un tarif forfaitaire ou par paliers pour le produit. Par exemple, un overwrite peut spécifier que le prix d'un produit est de 3,23 $. Le prix de ce produit reste à 3,23 $ quels que soient les changements du prix de liste sur la rate card.
* **Tiered** multiplie le tarif de la rate card par le nombre spécifié, pour une plage de quantité donnée. Par exemple, spécifiez un multiplicateur de 0,9 avec `size = 5` pour accorder une remise de 10 % sur le tarif de liste uniquement sur les 5 premières utilisations de la période de facturation.

<Info>
  **INFO**

  Vous ne pouvez utiliser les overrides par paliers que lorsque le contrat utilise la priorisation explicite des overrides.
</Info>

Vous pouvez également remplacer l'éligibilité de n'importe quel produit. Par exemple, si un produit donné est désactivé sur la rate card mais qu'un client a un accès anticipé au produit, ajoutez un override pour activer le produit sur la rate card du client. Une fois l'éligibilité d'un produit activée, l'utilisation de ce produit apparaît sur les factures du client.

## Cibler les overrides​

Pour affiner ce à quoi les overrides s'appliquent, ciblez-les sur des ID de produits, des tags de produits ou des valeurs de groupes de tarification et de présentation spécifiques.

Dans la plupart des cas, utilisez les champs `applicable_product_tags` et `product_id` dans l'API ou l'UI. Tout produit ayant un tag de produit inclus dans le tableau `applicable_product_tags`, ou portant l'ID de produit spécifié, est ciblé par l'override.

Si vous avez besoin d'une logique plus complexe, utilisez le champ `override_specifiers` dans l'API pour cibler les overrides en fonction de combinaisons d'ID de produit, de tags de produit et de valeurs de groupes de tarification et de présentation.

Le champ `override_specifiers` accepte un tableau d'objets, où chaque objet est appelé un specifier. Au sein de chaque specifier, tous les champs sont combinés par ET logique. Si les conditions de l'un des specifiers du tableau sont remplies, la ligne est ciblée par l'override.

Par exemple, ce champ `override_specifiers` cible un multiplicateur contre toute utilisation répondant à l'une de ces exigences :

* Le produit a les tags `Read` et `Write` et une valeur de groupe de tarification `resource.region = af-south-1`
* Le produit a le tag `Query` et les valeurs de groupe de tarification `resource.region = uaenorth` et `resource.hardware = gpu1`

```bash theme={null}
curl https://api.metronome.com/v1/contracts/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d 
  '{
  "customer_id": "e15ce0e6-33f0-44bb-89c7-05bc296f5b5e",
  "contract_id": "f9e0b117-42e0-4145-b524-b97302a57518",
  "starting_at": "2024-01-01T00:00:00.000Z",
  "overrides": [
    {
      "starting_at": "2024-01-01T00:00:00.000Z",
      "type": "multiplier",
      "multiplier": 0.7,
      "priority":1,
      "override_specifiers": [
        {
          "product_tags": ["Read", "Write"],
          "pricing_group_values": {
            "resource.region": "af-south-1"
          }
        },
        {
          "product_tags": ["Query"],
          "pricing_group_values": {
            "resource.region": "uaenorth",
            "resource.hardware":"gpu1"
          }
        }
      ]
    }
  ]
}'
```

<Info>
  **INFO**

  Vous ne pouvez pas utiliser les tags de produits pour cibler les overrides de type overwrite. Lorsque vous utilisez la tarification dimensionnelle, vous devez utiliser l'ID du produit avec ou sans valeurs de groupe de tarification et spécifier toutes les valeurs de groupe de tarification pour appliquer l'override. Par exemple, si le tarif est spécifique à la région `us-east1` et au type de matériel `gpu1`, vous devez spécifier l'ID du produit et les deux valeurs de groupe de tarification dans les `override_specifiers`.
</Info>

## Exemple : remise limitée dans le temps sur un tag de produit​

Pour créer des remises limitées dans le temps, spécifiez les dates `starting_at` et `ending_before` sur l'override. De plus, l'utilisation de tags de produits pour cibler les overrides facilite le lancement de nouveaux produits. Ajoutez les tags de produits pertinents à un nouveau produit lors de sa création, et toutes les remises s'appliquent automatiquement.

Cet appel API accorde une remise de 30 % sur tous les produits ayant soit le tag de produit `Read` soit le tag `Write` pour l'ensemble de l'année 2024. Cet exemple a une logique de ciblage simple, il utilise donc le champ `applicable_product_tags`. Pour cibler les produits qui ont à la fois les tags `Read` et `Write`, vous utiliseriez plutôt le champ `override_specifiers`.

```bash theme={null}
curl https://api.metronome.com/v1/contracts/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d
'{
  "customer_id": "e15ce0e6-33f0-44bb-89c7-05bc296f5b5e",
  "contract_id": "f9e0b117-42e0-4145-b524-b97302a57518",
  "starting_at": "2024-01-01T00:00:00.000Z",
  "overrides": [
    {
      "starting_at": "2024-01-01T00:00:00.000Z",
      "ending_before": "2025-01-01T00:00:00.000Z",
      "type": "multiplier",
      "multiplier": 0.7,
      "priority":1,
      "applicable_product_tags":["Read", "Write"]
    }
  ]
}'
```

## Exemple : remise sur la tarification dimensionnelle​

Lorsque vous utilisez la [tarification dimensionnelle](/fr/guides/implement-metronome/core-concepts/create-manage-rate-cards#dimensional-pricing%E2%80%8B), vous pouvez vouloir accorder une remise sur un sous-ensemble de tarifs associés à un produit sans accorder de remise sur tous les tarifs.

Par exemple, un client peut savoir qu'il n'utilise des ressources que dans les régions `af-south-1` et `uaenorth`. Il négocie donc une remise pour l'utilisation de votre produit uniquement dans ces deux régions. S'il utilise des ressources dans d'autres régions, il est facturé au tarif de liste. Cet appel API accorde une remise sur les tarifs associés à l'utilisation dans des régions spécifiques.

```bash theme={null}
curl https://api.metronome.com/v1/contracts/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d
'{
  "customer_id": "e15ce0e6-33f0-44bb-89c7-05bc296f5b5e",
  "contract_id": "f9e0b117-42e0-4145-b524-b97302a57518",
  "starting_at": "2024-01-01T00:00:00.000Z",
  "overrides": [
    {
      "starting_at": "2024-01-01T00:00:00.000Z",
      "type": "multiplier",
      "multiplier": 0.7,
      "priority":1,
      "override_specifiers": [
        {
          "product_id": "329e6313-ecda-4548-bb71-750ecc2af11a",
          "pricing_group_values": {
            "resource.region": "af-south-1"
          }
        },
        {
          "product_id": "329e6313-ecda-4548-bb71-750ecc2af11a",
          "pricing_group_values": {
            "resource.region": "uaenorth"
          }
        }
      ]
    }
  ]
}'
```

Les valeurs de groupe de tarification spécifiées dans l'override peuvent être un sous-ensemble de toutes les valeurs de groupe de tarification associées à un produit. Par exemple, imaginez que le produit comporte deux clés de groupe de tarification, `resource.region` et `resource.hardware`. L'ajout de l'override ci-dessus garantit que l'utilisation dans `af-south-1` et `uaenorth` reçoit une remise de 30 %, quel que soit le type de matériel.

## Exemple : remise sur l'utilisation pour un ID de cluster spécifique​

Certains clients ont un modèle économique dans lequel ils accordent à leurs clients des remises pour l'utilisation de ressources spécifiques, comme la tarification de type bring-your-own-model. Ces ressources ne sont pas définies comme clés de groupe de tarification afin de permettre une tarification distincte pour tous les clients. Elles sont plutôt définies comme clés de groupe de présentation.

Cet appel API accorde 20 % de remise sur un produit lors de l'utilisation d'une combinaison spécifique `cluster_id` et `resource_id`.

```bash theme={null}
curl https://api.metronome.com/v1/contracts/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d
'{
  "customer_id": "e15ce0e6-33f0-44bb-89c7-05bc296f5b5e",
  "contract_id": "f9e0b117-42e0-4145-b524-b97302a57518",
  "starting_at": "2024-01-01T00:00:00.000Z",
  "overrides": [
    {
      "starting_at": "2024-01-01T00:00:00.000Z",
      "type": "multiplier",
      "multiplier": 0.8,
      "priority":1,
      "override_specifiers": [
        {
          "product_id": "329e6313-ecda-4548-bb71-750ecc2af11a",
          "presentation_group_values": {
            "cluster_id":"43145",
            "resource_id":"5436436"
          }
        }
      ]
    }
  ]
}'
```

## Exemple : remise basée sur la quantité consommée​

Utilisez les overrides par paliers pour inciter à l'utilisation et accorder à un client des remises basées sur la quantité qu'il consomme.

Cet appel API accorde une remise de 20 % sur les prix de liste pour les 10 premières utilisations d'un produit dans la période de facturation, et une remise plus importante de 30 % pour les 10 utilisations suivantes.

```bash theme={null}
curl https://api.metronome.com/v1/contracts/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d
'{
  "customer_id": "e15ce0e6-33f0-44bb-89c7-05bc296f5b5e",
  "contract_id": "f9e0b117-42e0-4145-b524-b97302a57518",
  "starting_at": "2025-01-01T00:00:00.000Z",
  "overrides": [
    {
      "starting_at": "2024-01-01T00:00:00.000Z",
      "type": "tiered",
      "priority":1,
      "product_id": "2fc7d449-2e30-4d7d-accb-37835722a313",
      "tiers": [
        {
          "size":10,
          "multiplier":0.8
        },
        {
          "size":10,
          "multiplier":0.7
        }
      ]
    }
  ]
}'
```

## Priorisation des overrides​

Pour une ligne donnée sur une facture d'utilisation, un seul override est prioritaire. Les overrides ne se cumulent pas.

Les overrides de type overwrite ont la priorité la plus élevée et prennent toujours le pas sur les overrides de type multiplier ou tiered. Dans le cas où plusieurs overrides de type overwrite s'appliquent, le dernier override de type overwrite ajouté s'applique.

Spécifiez comment prioriser les overrides de type multiplier lors de la création du contrat.

* **Multiplicateur le plus bas** : le multiplicateur applicable qui accorde la plus grande remise est appliqué.
* **Explicite** : spécifiez une priorité sur chaque override de type multiplier. L'override avec la valeur de priorité la plus basse est priorisé.
