Passer au contenu principal
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 grilles tarifaires sont construites sur des produits, les contrats sont construits sur des grilles tarifaires. Un contrat référence une grille tarifaire spécifique et la combine à d’autres modèles Metronome comme les engagements, remises, produits fixes qui ne figurent pas sur la grille tarifaire, et plus encore. Créez des contrats avec l’application Metronome ou avec le point de terminaison /contracts/create.

Prérequis

Avant de provisionner un contrat, vous devez disposer :

Créer un contrat

Considérez un exemple où votre client, WidgetsExpress, a acheté un engagement prépayé de 10 000 quisappliqueaˋvosproduitscloudviaAWSMarketplace.Cetengagementdureunan.Danslecadreducontrat,ilspaienteˊgalementdesfraisdeplateformede1000qui s’applique à vos produits cloud via AWS Marketplace. Cet engagement 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 l’engagement prépayé une fois au début et l’usage sur une base mensuelle. Pour provisionner ce contrat avec l’application Metronome :
  1. Accédez à Customers et sélectionnez votre client nouvellement créé.
  2. Dans l’onglet Overview, cliquez sur le bouton + Add sur le côté droit du volet Contracts.
  3. Remplissez les Basic info du contrat comme le nom du contrat, la date de début et la grille tarifaire à utiliser. Assurez-vous de définir le fournisseur de facturation sur AWS.
  4. Sous Terms, cliquez sur Add - > Commit et remplissez les détails de l’engagement 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 à ceci :
Contrat final
Pour créer l’exemple de contrat avec l’API /contracts/create, exécutez cet appel :
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"  
    }  
  }'
BÊTAVous pouvez ajouter une billing_provider_configuration à un contrat qui a été créé sans — potentiellement dans le cadre d’une conversion d’essai gratuit — via l’édition de contrat. La configuration de facturation prendra effet au début de la période de facturation en cours. Pour Stripe, cela signifie que la facture actuelle sera envoyée à Stripe à la fin du mois. Pour les marketplaces, cela signifie que toute la période de facturation sera comptabilisée auprès du marketplace. Pour les cas d’usage d’essai gratuit, assurez-vous que le client est crédité de l’essai gratuit afin que l’usage gratuit ne soit pas facturé.

Consolider les factures d’usage et planifiées

Vous avez la possibilité de spécifier si les factures planifiées doivent être consolidées sur les factures d’usage d’un client. Ce paramètre s’applique à toutes les charges (y compris les engagements) du contrat. Il suit cette logique pour déterminer s’il faut consolider les factures :
  • Le dernier jour de la période de service d’usage (exclusif) tombe le même jour que la date prévue pour la facture planifiée.
  • La facture d’usage correspondante n’a pas été finalisée.
La consolidation se produit au moment de la création du contrat et lors de toute modification ultérieure du contrat. Considérez un exemple où un nouveau client achète le package Best sur votre site web, qui coûte 75 parmois.Danslecadredecepackage,ilsrec\coiventunengagementmensuelde100par mois. Dans le cadre de ce package, ils reçoivent un engagement mensuel de 100. Le contrat et l’engagement 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 un poste pour les frais mensuels de 75 $.
  • Facture 2 : créée en brouillon avec un poste pour les frais mensuels de 75 $ en février en plus de toutes les charges d’usage de janvier.
  • Facture X : en supposant qu’aucune modification ne soit apportée au contrat, toutes les factures futures suivront le modèle de la facture 2.

Ajouter des remises et remplacements de contrat

Fournissez des remises lors de la création du contrat ou en modifiant un contrat existant. Appliquez des remises avec des crédits, des remplacements pour les tarifs des produits, des paliers de prix et plus encore. Si vous utilisez la tarification dimensionnelle, définissez des remplacements de prix pour chaque combinaison de clé de groupe et de produit. Pour ajouter des conditions supplémentaires comme des crédits, engagements, remplacements pour les tarifs des produits, etc., 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 ce faire, modifiez le contrat en remplaçant les produits avec l’étiquette cloud pour qu’ils bénéficient d’une remise de 5 % par rapport à la grille tarifaire de base. Pour modifier un contrat avec l’application Metronome, allez au client WidgetsExpress → Contracts → et sélectionnez le contrat que vous souhaitez modifier. Pour modifier un contrat via l’API, exécutez cet appel :
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’usage

Vous pouvez provisionner un client avec plusieurs contrats simultanément. Ces contrats peuvent utiliser des grilles tarifaires distinctes, avoir des dates de début et de fin différentes, des remises, et plus encore. Ils peuvent tous puiser dans des engagements et crédits partagés au niveau du client. Pour spécifier que l’usage doit être comptabilisé sur un contrat plutôt qu’un autre, créez un filtre d’usage 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’usage pour vous assurer que seul l’usage approprié est routé 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 :
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’usage sur un contrat à tout moment, selon un calendrier. Par exemple, imaginez qu’à partir de 2025, WidgetsExpress ne souhaite plus que l’usage de sa division EU soit facturé séparément. Au lieu de cela, il devrait être facturé via le contrat US, en utilisant les prix US. Cet appel API montre comment mettre à jour le filtre d’usage, la modification prenant effet le 1er janvier 2025 :
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’usage ont ces limitations :
  • Pour les métriques facturables en streaming, vous devez définir le filtre d’usage en tant que clé de groupe sur la métrique facturable sous-jacente. Si vous utilisez également la tarification dimensionnelle et les clés de groupe de présentation, la clé de groupe du filtre d’usage doit être définie dans une clé de groupe composée sur la métrique facturable sous-jacente avec les clés de tarification dimensionnelle et de présentation.
  • Pour les métriques facturables SQL, la clé de groupe du filtre d’usage 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 pour ajouter des métadonnées supplémentaires au contrat ou à l’engagement. Ces métadonnées peuvent alimenter des processus en aval comme les flux de reconnaissance de revenus. Par exemple, si vous vous intégrez à SFDC, vous pouvez créer un champ personnalisé pour salesforce_opportunity_id pour mapper les contrats Metronome, et les revenus qui en découlent, à l’opportunité SFDC associée.