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

# Cibler la consommation avec des crédits et engagements

Vous pouvez accorder des crédits et créer des engagements qui ne s'appliquent qu'à un sous-ensemble de la consommation d'un client. Choisissez de cibler la consommation de produits spécifiques, de familles de produits, de dimensions de tarification, et même de dimensions non utilisées pour la tarification. Cela vous donne la flexibilité de négocier des engagements d'entreprise sur n'importe quelle dimension et d'essayer différentes incitations tarifaires.

Metronome offre deux options pour cibler les crédits et engagements :

* Ciblez avec `applicable_product_ids` et `applicable_product_tags` si vous souhaitez filtrer uniquement par identifiant de produit ou famille de produits, et que vous n'avez pas besoin d'une logique AND/OR complexe
* Ciblez avec `specifiers` si vous souhaitez filtrer en fonction des valeurs de groupe de tarification ou des valeurs de groupe de présentation, ou si vous avez besoin d'une logique AND/OR complexe

## Cibler avec `applicable_product_ids` et `applicable_product_tags`​

Pour les cas d'usage simples qui ne nécessitent pas de logique AND/OR complexe, utilisez les champs `applicable_product_ids` et `applicable_product_tags` pour cibler votre crédit ou engagement.

La consommation qui correspond à *l'un quelconque* des identifiants de produits ou étiquettes de produits listés est éligible pour consommer le crédit ou l'engagement.

## Cibler avec `specifiers`​

Les spécificateurs offrent la flexibilité d'alimenter des cas d'usage plus complexes impliquant des valeurs de groupe de tarification, des valeurs de groupe de présentation ou une logique booléenne avancée.

Le champ `specifiers` prend en entrée un tableau d'objets, où chaque objet est appelé un spécificateur. Au sein de chaque spécificateur, tous les champs sont liés par AND. Si les conditions de n'importe quel spécificateur du tableau sont satisfaites, l'élément de ligne est éligible pour consommer l'engagement ou le crédit. Cette logique est identique à [override\_specifiers](/fr/guides/pricing-packaging/make-pricing-changes/edit-or-override-a-contract#target-overrides), que vous pouvez utiliser pour accorder des remises basées sur une logique complexe.

Notez que si vous utilisez des valeurs de groupe de tarification et/ou des valeurs de groupe de présentation dans un spécificateur, seule la consommation des produits avec les valeurs de groupe de tarification et de présentation correspondantes correspondra à ce spécificateur. Par exemple, si vous créez un crédit qui s'applique lorsque la valeur de groupe de tarification `region` = `us-east-1`, les produits qui n'ont pas la clé de groupe de tarification `region` ne consommeront jamais le crédit. Les abonnements et les produits composites n'ont jamais de valeurs de groupe de tarification ou de présentation, donc ne consommeraient pas l'engagement.

### Exemple : L'engagement ne s'applique qu'à deux `regions` (valeur de groupe de tarification)​

Considérez un scénario où vous avez négocié un engagement d'entreprise avec un grand client. Ils prévoient d'utiliser votre produit dans seulement deux `regions` spécifiques, et vous avez négocié que l'engagement ne couvre que la consommation dans ces `regions`. `region` est une clé de groupe de tarification pour vos produits. Vos produits sont disponibles dans de nombreuses régions, et vous utilisez la [tarification dimensionnelle](/fr/guides/implement-metronome/core-concepts/create-manage-rate-cards#how-dimensional-pricing-works%E2%80%8B) pour tarifer différemment un même produit selon la région.

Cet exemple d'appel API crée un contrat qui spécifie les `pricing_group_values` pour les régions `us-east-1` et `us-east-2`.

```bash theme={null}
curl https://api.metronome.com/v1/contracts/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "47e8f505-3c08-4c9d-8323-14d36c21658e",
    "contract_id": "cf4b3e2d-d697-4c4b-869b-5db2dbb224f5",
    "starting_at": "2025-06-01T00:00:00.000Z",
    "commits": [
        {
            "type": "PREPAID",
            "name": "Commit - us-east-1 and us-west-1 only",
            "product_id": "ffa5d53f-0b84-4d8d-bdb4-d21e7e104aa5",
            "access_schedule": {
                "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
                "schedule_items": [
                    {
                        "amount": 50000,
                        "starting_at": "2025-06-01T00:00:00.000Z",
                        "ending_before": "2026-06-01T00:00:00.000Z"
                    }
                ]
            },
            "invoice_schedule": {
                "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
                "schedule_items": [
                    {
                        "amount": 50000,
                        "timestamp": "2025-06-01T00:00:00.000Z"
                    }
                ]
            },
            "specifiers": [
                {
                    "pricing_group_values": {
                        "region":"us-east-1"
                    }
                },
                {
                    "pricing_group_values": {
                        "region":"us-west-1"
                    }
                }
            ]
        }
    ]
}'
```

### Exemple : Le crédit ne s'applique qu'à un seul `user_id` (valeur de groupe de présentation)​

Considérez un scénario où vous souhaitez accorder un crédit qui ne peut être utilisé que pour un `user_id` spécifique au sein d'une organisation. Vous ne tarifez pas différemment en fonction de `user_id`, mais vous voulez accorder à cet utilisateur spécifique un crédit en échange de sa participation à une recherche utilisateur. `user_id` est une clé de groupe de présentation pour vos produits.

Cet exemple d'appel API modifie un contrat pour ajouter des crédits en spécifiant les `presentation_group_values` pour un `user_id` spécifique :

```bash theme={null}
curl https://api.metronome.com/v2/contracts/edit \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "47e8f505-3c08-4c9d-8323-14d36c21658e",
    "contract_id": "cf4b3e2d-d697-4c4b-869b-5db2dbb224f5",
    "add_credits": [
        {
            "type": "PREPAID",
            "name": "Credit - user_123 only only",
            "product_id": "ffa5d53f-0b84-4d8d-bdb4-d21e7e104aa5",
            "access_schedule": {
                "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
                "schedule_items": [
                    {
                        "amount": 500,
                        "starting_at": "2025-06-01T00:00:00.000Z",
                        "ending_before": "2026-06-01T00:00:00.000Z"
                    }
                ]
            },
            "specifiers": [
                {
                    "presentation_group_values": {
                        "user_id": "user_123"
                    }
                }
            ]
        }
    ]
}'
```

### Exemple : L'engagement s'applique aux produits avec les deux étiquettes de produits​

Les étiquettes de produits facilitent grandement le lancement de nouveaux produits. Considérez un scénario où, dans le cadre de la négociation d'un contrat d'entreprise, vous avez convenu qu'un engagement postpayé s'applique à tous les produits de la famille de modèles *Audio* qui sont également des modèles *Basic* (une offre non premium). En utilisant des étiquettes de produits, tout nouveau produit que vous lancez qui est un modèle *Basic*, *Audio* consomme automatiquement l'engagement postpayé, sans travail supplémentaire requis. *Basic* et *Audio* sont tous deux des étiquettes de produits.

Cet exemple d'appel API modifie un contrat pour ajouter un engagement, en spécifiant les `product_tags` `Audio` et `Basic` :

```bash theme={null}
curl https://api.metronome.com/v2/contracts/edit \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "47e8f505-3c08-4c9d-8323-14d36c21658e",
    "contract_id": "cf4b3e2d-d697-4c4b-869b-5db2dbb224f5",
    "starting_at": "2025-06-01T00:00:00.000Z",
        "add_commits": [
        {
            "type": "PREPAID",
            "name": "Commit - basic audio models",
            "product_id": "ffa5d53f-0b84-4d8d-bdb4-d21e7e104aa5",
            "access_schedule": {
                "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
                "schedule_items": [
                    {
                        "amount": 50000,
                        "starting_at": "2025-06-01T00:00:00.000Z",
                        "ending_before": "2026-06-01T00:00:00.000Z"
                    }
                ]
            },
            "invoice_schedule": {
                "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",
                "schedule_items": [
                    {
                        "amount": 50000,
                        "timestamp": "2025-06-01T00:00:00.000Z"
                    }
                ]
            },
            "specifiers": [
                {
                    "product_tags": [
                        "Audio",
                        "Basic"
                    ]
                }
            ]
        }
    ]
}'
```
