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

# Engagements conditionnés au paiement

Les organisations mettent couramment en œuvre un modèle prépayé pour leurs clients PLG. Les clients doivent payer la consommation avant d'utiliser le produit, et les organisations conditionnent l'accès au succès du paiement. Cela peut être implémenté dans Metronome à l'aide d'engagements conditionnés au paiement. Lorsqu'un engagement conditionné au paiement est créé, Metronome facilite ce qui suit :

1. Metronome déclenche immédiatement une tentative de paiement basée sur le montant facturé de l'engagement.
2. Si le paiement réussit, Metronome libère l'engagement et le client se voit accorder l'accès au solde associé.
3. Si le paiement échoue, Metronome annule la ressource et envoie une notification webhook.
4. Si une action supplémentaire est requise (par exemple pour l'authentification à deux facteurs), Metronome envoie une notification webhook.

<Note>
  **IMMÉDIATEMENT**

  Metronome initie le paiement avec votre fournisseur de facturation configuré et surveille son achèvement. Dans la plupart des cas de succès, le paiement est terminé et les crédits sont libérés en quelques secondes, mais le délai réel dépend du fournisseur de paiement, du mode de paiement et des éventuels défis d'authentification.
</Note>

## Avant de commencer

* Assurez-vous que le client a un mode de paiement par défaut configuré chez votre fournisseur de paiement (par exemple, Stripe) ; sinon, les paiements échoueront et les engagements ne seront pas créés.
* Capturez et stockez l'adresse du client pendant votre flux de paiement. Si l'adresse est invalide ou manquante, les paiements ultérieurs pour le client échoueront.
* **Mappez le produit Metronome de l'engagement à un produit Stripe.** Les engagements conditionnés au paiement exigent que le produit Metronome utilisé sur l'engagement ait un identifiant de produit Stripe correspondant mappé. Sans ce mappage, Stripe ne peut pas générer l'élément de ligne de la facture et la tentative de paiement échouera. Pour configurer ce mappage, créez un champ personnalisé `stripe_product_id` sur l'entité produit Metronome, définissez sa valeur sur l'identifiant de produit Stripe correspondant et ajoutez une règle de mappage d'intégration Stripe de `stripe_product_id` à `invoiceitem.price`. Voir [Attribuer des éléments de ligne aux produits Stripe](/fr/integrations/invoice-integrations/stripe#create-optional-entity-mapping-rules) dans le guide de facturation Stripe pour des instructions étape par étape.

## Ajouter un engagement conditionné au paiement à un contrat existant​

Les engagements conditionnés au paiement ne peuvent être ajoutés qu'à des contrats existants. Vous pouvez créer un engagement conditionné au paiement en [modifiant le contrat de l'utilisateur](/fr/api-reference/contracts/edit-a-contract). Assurez-vous que le contrat a une configuration de facturation valide.

Voir ci-dessous un exemple d'appel API :

```json theme={null}
{
    "customer_id": "8cecbf69-960f-4f66-9575-edebb7d95e88",
    "contract_id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
    "add_commits": [
        {
            "product_id": "d6be3bf4-1669-40c9-a8b1-388bb167ab16",
            "type": "prepaid",
            "invoice_schedule": {
                "schedule_items": [
                    {
                        "timestamp": "2025-04-01T00:00:00.000Z",
                        "amount": 2000
                    }
                ]
            },
            "access_schedule": {
                "schedule_items": [
                    {
                        "amount": 2000,
                        "starting_at": "2025-04-01T00:00:00.000Z",
                        "ending_before": "2026-04-01T00:00:00.000Z"
                    }
                ]
            },
            "payment_gate_config": {
                "payment_gate_type": "STRIPE",
                "tax_type": "STRIPE"
            },
            "priority": 100
        }
    ]
}
```

## Gérer les notifications​

Deux types de notifications webhook sont émis lors de la création d'un engagement conditionné au paiement :

* `payment_gate.payment_status` après qu'un paiement a été tenté. Le statut de ce paiement, `paid` ou `failed`, est indiqué dans le champ `payment_status`.
* `payment_gate.payment_pending_action_required` si une intervention est requise pour traiter le paiement.

Consultez l'ensemble complet de nos notifications webhook [ici](/fr/guides/platform-configuration/setup-webhooks#payment-gating-notifications).

## Gérer les paiements échoués​

Si le paiement échoue, la facture associée dans Metronome et Stripe est annulée et aucun engagement n'est créé. Pour relancer le paiement, envoyez une nouvelle requête API avec les informations pertinentes sur l'engagement.

<Note>
  **AUCUNE NOUVELLE TENTATIVE AUTOMATIQUE**

  Metronome ne relance pas automatiquement les paiements échoués (car toute nouvelle tentative
  automatique échouerait probablement également).
</Note>
