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

# Mettre à disposition un client

> Dans Metronome, les clients sont les destinataires d'une facture et peuvent représenter des utilisateurs individuels, des entreprises, des clés API, ou toute autre spécification dont votre organisation a besoin. Ce guide décrit comment mettre à disposition un client dans Metronome.

La mise à disposition de votre client comprend la création de l'objet client et la configuration du contrat associé qui décrit ses conditions d'utilisation. Un client doit avoir au moins un contrat mis à sa disposition pour commencer la mesure et la tarification à des fins de facturation. Vous pouvez également configurer plusieurs contrats par client si nécessaire.

## Prérequis

Avant de mettre à disposition un client, vous devez disposer de :

* Vos [événements d'utilisation](/fr/guides/events/design-usage-events) connectés à Metronome
* Un [billable metric](/fr/guides/implement-metronome/core-concepts/create-billable-metrics/)
* Un [produit](/fr/guides/implement-metronome/core-concepts/create-products-contracts)
* Une [rate card](/fr/guides/implement-metronome/core-concepts/create-manage-rate-cards)

## Créer un client

Créez un objet client individuel dans Metronome ou construisez un flux pour créer des clients par programmation à partir de déclencheurs du système.

### Comprendre les ingest aliases

Les ingest aliases mappent vos identifiants client internes à l'ID client de Metronome. Lorsque vous envoyez de l'utilisation indexée sur un ingest alias, Metronome l'associe automatiquement au bon client Metronome. Cela vous permet de conserver vos entités client existantes sans avoir besoin de basculer vers un ID client Metronome.

Les ingest aliases peuvent également être utilisés pour maintenir une hiérarchie de comptes. Les clients d'entreprise ont souvent des sous-organisations qui se rattachent à un seul contrat. Utilisez les ingest aliases pour modéliser ceci. Par exemple, vous pouvez représenter l'organisation entreprise comme un client dans Metronome, chaque sous-organisation étant représentée par un ingest alias attaché à ce client :

```
Parent Account - Metronome Customer e7f893e5-07f7-483b-8c16-6905944c6a89
  + Sub-Org 1 - IngestAlias1
  + Sub-Org 2 - IngestAlias2
  + Sub-Org 3 - IngestAlias3
  + Sub-Org 4 - IngestAlias4
```

Vous pouvez séparer l'utilisation de chaque sous-organisation sur la facture générée par Metronome. Découvrez comment utiliser les [clés de groupe](/fr/guides/implement-metronome/core-concepts/create-billable-metrics#3-define-group-keys%E2%80%8B) pour modifier la présentation de la facture.

Les ingest aliases peuvent être spécifiés sur l'objet client Metronome au moment de la création ou à tout moment ultérieur. L'ajout rétroactif d'un ingest alias sur le client est un moyen de retirer Metronome du chemin critique de l'inscription du client tout en mesurant correctement l'utilisation. Par exemple, si vous envoyez d'abord de l'utilisation indexée sur `IngestAlias1` et ajoutez plus tard cet ingest alias à un client existant, Metronome associe rétroactivement cette utilisation au bon client.

### Créer un client avec l'application Metronome

Pour créer un client à l'aide de l'application :

1. Allez sur la page **Customers** → **Add a customer**.
2. Ajoutez un nom.
3. Ajoutez un ingest alias.
4. (Facultatif) Définissez un champ personnalisé pour le client sur l'onglet **Settings**.

### Créer un flux de création de clients avec l'API

Utilisez l'API Metronome pour construire un flux permettant de créer des clients dans Metronome par programmation, en fonction de motions sales-led ou product-led.

Pour une motion sales-led, vous pouvez utiliser Salesforce CPQ pour saisir les opportunités. Lorsqu'une opportunité se conclut, vous pouvez planifier un job pour créer un client à l'aide de l'API Metronome.

Cet exemple de requête montre comment :

* Créer un client fictif, WidgetsExpress, dans Metronome
* Codifier la relation entre le client Metronome et le compte SFDC en stockant le `sfdc_account_id` dans un champ personnalisé

```bash theme={null}
curl https://api.metronome.com/v1/customers \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "ingest_aliases": [
      "team@widgetsexpress.com"
    ],
    "name": "WidgetsExpress",
    "custom_fields": {
      "sfdc_account_id": "sfdc1001"
    }
  }'
```

Pour une motion de croissance axée produit, créez un workflow similaire où le déclencheur provient d'une inscription sur votre site web. Stockez la relation entre le client Metronome et votre objet client interne.

### Ajouter une configuration de facturation à un client

Un client dans Metronome peut être facturé à différentes destinations, souvent en fonction de votre motion de facturation. Vous devez d'abord créer une `customer_billing_provider_configuration` sur le client, puis l'attribuer à un contrat. Metronome vous permet de configurer plusieurs `customer_billing_provider_configurations` par client, ce qui signifie qu'un client peut être facturé dans plusieurs systèmes — un par contrat.

<Note>
  **INFO**

  Avant de configurer une `customer_billing_provider_configuration`, Metronome doit d'abord être connecté au système concerné. Suivez les étapes dans [Facturer avec Stripe](/fr/integrations/invoice-integrations/stripe) ou [Facturer avec les Marketplaces (AWS et Azure)](/fr/integrations/marketplace-integrations/aws).
</Note>

Metronome recommande de définir les `customer_billing_provider_configurations` lors de la création du client. Par exemple, supposons que WidgetsExpress a acheté votre produit via AWS Marketplace. Modifiez l'appel précédent pour ajouter une `customer_billing_provider_configurations` au client WidgetExpress :

```bash theme={null}
curl https://api.metronome.com/v1/customers \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "ingest_aliases": [
      "team@widgetsexpress.com"
    ],
    "name": "WidgetsExpress",
    "custom_fields": {
      "sfdc_account_id": "sfdc1001"
    },
    "customer_billing_provider_configurations": [
      {
        "billing_provider": "aws_marketplace",
        "configuration": {
          "aws_customer_id": "ABC123ABC12",
          "aws_product_code": "my_product",
          "aws_region": "us-west-1"
        },
        "delivery_method": "direct_to_billing_provider"
      }
    ]
  }'
```

Après soumission, le client sera créé avec la configuration AWS associée. Cependant, il ne sera pas facturé à AWS tant qu'un contrat n'est pas créé avec AWS défini comme `billing_provider_configuration` du contrat. Si vous ne définissez pas de `customer_billing_provider_configuration` lors de la création du client, vous pouvez en ajouter une plus tard à l'aide de l'endpoint `/setCustomerBillingProviderConfigurations`.

<Note>
  **BÊTA**

  Vous pouvez archiver une `customer_billing_provider_configuration` soit en archivant le client, soit en archivant la configuration spécifique via l'endpoint `/archiveCustomerBillingProviderConfigurations`. Lorsque vous archivez une configuration de facturation, elle devient disponible pour être réutilisée sur un nouveau client. Si vous archivez une `customer_billing_provider_configuration` qui est attachée à un contrat actif, la configuration sera archivée sur le contrat immédiatement et ne facturera plus la destination associée. Une nouvelle `billing_provider_configuration` ne peut pas être mise à disposition sur le contrat.
</Note>

## Mettre à disposition un contrat client

Définissez un contrat dans Metronome qui encode les produits auxquels les clients peuvent accéder, les tarifs de chaque produit et la durée d'accès. Tout comme les rate cards sont construites sur les produits, les contrats sont construits sur les rate cards. Un contrat fait référence à une rate card spécifique et la combine avec d'autres modèles Metronome comme les [commits,](/fr/guides/pricing-packaging/apply-credits-and-commits/create-a-pre-paid-commit) les remises, les produits fixes qui ne figurent pas sur la rate card, et plus encore.

Créez des contrats avec l'application Metronome ou avec l'[endpoint /contracts/create](/fr/api-reference/contracts/create-a-contract).

### Créer un contrat

Considérez un exemple où votre client, WidgetsExpress, a acheté un commit prépayé de 10 000 \$ qui s'applique à vos produits cloud via AWS Marketplace. Ce commit dure un an. Dans le cadre du contrat, ils paient également des frais de plateforme de 1 000 \$ chaque trimestre pour utiliser votre service. Ils paient le commit prépayé une seule fois à l'avance et l'utilisation sur une base mensuelle.

Pour mettre à disposition ce contrat avec l'[application Metronome](https://app.metronome.com/) :

1. Accédez à *Customers* et sélectionnez votre client nouvellement créé.
2. Sur l'onglet *Overview*, cliquez sur le bouton **+ Add** sur le côté droit du volet *Contracts*.
3. Renseignez les informations *Basic* du contrat comme le nom du contrat, la date de début et la rate card à utiliser. Assurez-vous de définir le fournisseur de facturation sur AWS.
4. Sous *Terms*, cliquez sur **Add -> Commit** et renseignez les détails du commit prépayé.
5. Sous *Terms*, cliquez sur **Add -> Scheduled charges** et ajoutez les frais de plateforme en tant que charge planifiée.

Le contrat final ressemble à :

<Frame>
  <img src="https://mintcdn.com/metronome-b35a6a36/C_lGxKgdkdHt6xoX/images/manage-customers/provision-contract-fe412f3eebd53427e5c051a091504620.png?fit=max&auto=format&n=C_lGxKgdkdHt6xoX&q=85&s=f65fd32892d905d20bf0223a1c8b6350" alt="Final contract" width="2178" height="1220" data-path="images/manage-customers/provision-contract-fe412f3eebd53427e5c051a091504620.png" />
</Frame>

Pour créer le contrat d'exemple avec l'API `/contracts/create`, exécutez cet appel :

```bash theme={null}
    curl https://api.metronome.com/v1/contracts/create \
      -H "Authorization: Bearer <TOKEN>" \
      -H "Content-Type: application/json" \
      -d '{
        "customer_id": "aa58107d-162f-407e-9f09-940f16adbb1c",
        "rate_card_alias": "base_usage_products",
        "starting_at": "2024-11-01T00:00:00.000Z",
        "billing_provider_configuration": {
          "billing_provider": "aws_marketplace",
          "delivery_method": "direct_to_billing_provider"
        },
        "commits": [
          {
            "type": "prepaid",
            "name": "Contract Prepaid Commit",
            "product_id": "a1f4e40b-f8c4-496b-b687-0a103396b479",
            "access_schedule": {
              "schedule_items": [
                {
                  "amount": 1000000,
                  "starting_at": "2024-11-01T00:00:00.000Z",
                  "ending_before": "2025-11-01T00:00:00.000Z"
                }
              ]
            },
            "invoice_schedule": {
              "schedule_items": [
                {
                  "unit_price": 1000000,
                  "quantity": 1,
                  "timestamp": "2024-11-01T00:00:00.000Z"
                }
              ]
            },
            "applicable_product_tags": ["cloud"],
            "description": "Usage Commit"
          }
        ],
        "scheduled_charges": [
          {
            "product_id": "06cf3703-3f5e-467c-8ba1-0ee934c740b9",
            "name": "Platform Charge",
            "schedule": {
              "recurring_schedule": {
                "starting_at": "2024-11-01T00:00:00.000Z",
                "ending_before": "2025-11-01T00:00:00.000Z",
                "frequency": "quarterly",
                "unit_price": 100000,
                "quantity": 1,
                "amount_distribution": "each"
              }
            }
          }
        ],
        "usage_statement_schedule": {
          "frequency": "monthly",
          "day": "contract_start"
        }
      }'
```

## Consolider les factures d'utilisation et planifiées

Vous avez la possibilité de spécifier si les factures planifiées doivent être consolidées sur les factures d'utilisation d'un client.

Ce paramètre s'applique à toutes les charges (y compris les commits) sur le contrat. Il suit cette logique pour déterminer s'il faut consolider les factures :

* Le dernier jour de la période de service d'utilisation (exclusif) tombe le même jour que la date planifiée pour la facture planifiée.
* La facture d'utilisation correspondante n'a pas été finalisée.

La consolidation se produit au moment de la création du contrat et lors de toute modification future du contrat.

Considérez un exemple où un nouveau client achète le package Best sur votre site web, qui coûte 75 \$ par mois. Dans le cadre de ce package, il reçoit un commit mensuel de 100 \$. Le contrat et le commit récurrent commencent le 1er janvier sans date de fin. Si `scheduled_charges_on_usage_invoices` est défini sur `ALL`, le contrat crée ces factures :

* **Facture 1 :** émise et finalisée le 1er janvier avec une ligne d'article pour la charge mensuelle de 75 \$.
* **Facture 2 :** créée en brouillon avec une ligne d'article pour la charge mensuelle de 75 \$ en février en plus de toutes les charges d'utilisation pour janvier.
* **Facture X :** en supposant qu'il n'y ait pas de modifications du contrat, toutes les factures futures suivront le modèle de la facture 2.

## Ajouter des remises et overrides de contrat

Fournissez des remises lors de la création du contrat ou en modifiant un contrat existant.

Appliquez des remises avec des credits, des [overrides pour les tarifs de produits](/fr/guides/pricing-packaging/make-pricing-changes/edit-or-override-a-contract), des tranches de prix, et plus encore. Si vous utilisez la tarification dimensionnelle, définissez des overrides de prix pour chaque combinaison de clé de groupe et de produit. Pour ajouter des termes supplémentaires comme des credits, commits, overrides pour les tarifs de produits, et plus encore, modifiez le contrat.

Considérez l'exemple avec votre client fictif WidgetsExpress pour voir cela en pratique. Le client a négocié une remise sur les produits cloud. Pour y répondre, modifiez le contrat en surchargeant les produits avec la balise `cloud` à -5 % du tarif de base de la rate card.

Pour modifier un contrat avec l'application Metronome, accédez au client WidgetsExpress → Contracts -> et sélectionnez le contrat que vous souhaitez modifier.

Pour modifier un contrat via l'API, exécutez cet appel :

```bash theme={null}
curl https://api.metronome.com/v2/contracts/edit \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "aa58107d-162f-407e-9f09-940f16adbb1c",
    "contract_id": "0a6180da-336a-40e6-98f4-20b6be08211d",
    "add_overrides": [
      {
        "starting_at": "2024-11-01T00:00:00.000Z",
        "entitled": true,
        "type": "multiplier",
        "multiplier": 0.95,
        "applicable_product_tags": ["cloud"]
      }
    ]
  }'
```

## Créer un filtre d'utilisation

Vous pouvez mettre à disposition d'un client plusieurs contrats simultanément. Ces contrats peuvent utiliser des rate cards distinctes, avoir des dates de début et de fin différentes, des remises et plus encore. Ils peuvent tous être déduits de commits et credits partagés au niveau du client. Pour spécifier que l'utilisation doit être comptée par rapport à un contrat plutôt qu'un autre, créez un filtre d'utilisation pour ce contrat.

Par exemple, votre client fictif WidgetsExpress a trois sous-divisions : US, EU et APAC. Chaque division a négocié des remises différentes. Pour modéliser cela dans Metronome, créez un contrat pour chaque sous-division et utilisez des filtres d'utilisation pour vous assurer que seule l'utilisation appropriée est acheminée vers chaque contrat.

Lors de la création du contrat US, assurez-vous que seuls les événements avec la propriété `region` et la valeur `US` sont inclus dans ce contrat à l'aide de cet appel API :

```bash theme={null}
curl https://api.metronome.com/v1/contracts/create \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",
    "rate_card_id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
    "starting_at": "2024-10-01T00:00:00.000Z",
    "usage_filter": {
      "group_key": "region",
      "group_values": [
        "US"
      ]
    }
  }'
```

Vous pouvez mettre à jour le filtre d'utilisation sur un contrat à tout moment, selon un calendrier. Par exemple, imaginez qu'à partir de 2025, WidgetsExpress ne souhaite plus que l'utilisation au sein de sa division EU soit facturée séparément. Elle doit plutôt être facturée via le contrat US, en utilisant les prix US.

Cet appel API montre comment mettre à jour le filtre d'utilisation, la modification prenant effet le 1er janvier 2025 :

```bash theme={null}
curl https://api.metronome.com/v1/contracts/setUsageFilter \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",
    "contract_id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
    "group_key": "region",
    "group_values": ["US", "EU"],
    "starting_at": "2025-01-01T00:00:00.000Z"
  }'
```

Les filtres d'utilisation présentent ces limitations :

* Pour les [billable metrics en streaming](/fr/guides/implement-metronome/core-concepts/create-billable-metrics/), vous devez définir le filtre d'utilisation comme clé de groupe sur le billable metric sous-jacent. Si vous utilisez également la tarification dimensionnelle et des clés de groupe de présentation, la clé de groupe du filtre d'utilisation doit être définie dans une clé de groupe composée sur le billable metric sous-jacent avec les clés de groupe de tarification dimensionnelle et de présentation.
* Pour les [billable metrics SQL](/fr/guides/implement-metronome/core-concepts/create-billable-metrics#define-group-keys-on-sql-billable-metrics%E2%80%8B/), la clé de groupe pour le filtre d'utilisation doit être présente comme valeur de propriété dans les événements sous-jacents (par exemple, `properties.region`).

## Ajouter des champs personnalisés

Utilisez les [champs personnalisés](/fr/api-reference/custom-fields) pour ajouter des métadonnées supplémentaires au contrat ou au commit. Ces métadonnées peuvent alimenter des processus en aval comme les workflows de reconnaissance des revenus.

Par exemple, si vous vous intégrez à SFDC, vous pouvez créer un champ personnalisé pour `salesforce_opportunity_id` afin de mapper les contrats Metronome, et les revenus qui en découlent, à l'opportunité SFDC associée.
