# Créer des abonnements avec Stripe Billing

Grâce à Connect, vous pouvez créer des abonnements pour vos clients ou des comptes connectés.

Pour en savoir plus sur *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients), consultez la [présentation](https://docs.stripe.com/connect.md). Les transactions des *abonnements* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) sont soumises à la [tarification Stripe Billing](https://stripe.com/billing/pricing).

Les SaaS (Software as a Service) et les places de marché ont recours à Stripe Connect pour acheminer les paiements entre leur plateforme, les clients et les comptes connectés. Vous pouvez utiliser Connect pour acheminer des paiements ou des *virements* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit) et Stripe Billing pour prendre en charge votre modèle de revenus récurrents.

## Cas d’usage

Vous pouvez créer des [abonnements](https://docs.stripe.com/billing/subscriptions/overview.md) pour des comptes Connect, avec plusieurs approches d’encaissement des paiements prises en charge. Vous pouvez créer des abonnements pour les clients de vos comptes connectés en utilisant des paiements directs ou indirects, pour que vos clients finaux puissent traiter des transactions directement avec votre plateforme et débiter vos comptes connectés de frais d’utilisation de votre plateforme.
 (See full diagram at https://docs.stripe.com/connect/subscriptions)
Les cas d’usage suivants expliquent comment utiliser Stripe Billing pour créer des abonnements depuis les clients finaux aux comptes connectés, pour facturer les clients finaux de la plateforme et les comptes connectés.

| Cas d’usage                                                                                                                                   | Description                                                                                                                                                                                                                                    |
| --------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Abonner le client final au compte connecté](https://docs.stripe.com/connect/subscriptions.md#customer-connected-account)                     | Créez des abonnements à vos comptes connectés pour les clients finaux, ce qui permet de collecter les paiements de plusieurs façons. Dans cet exemple, les [tarifs](https://docs.stripe.com/api/prices.md) se trouvent sur le compte connecté. |
| [Créer des abonnements pour facturer les clients finaux de la plateforme](https://docs.stripe.com/connect/subscriptions.md#customer-platform) | Les places de marché peuvent proposer des abonnements sans faire intervenir votre compte connecté. Dans cet exemple, les [tarifs](https://docs.stripe.com/api/prices.md) se trouvent sur la plateforme.                                        |
| [Créer des abonnements pour facturer des comptes connectés](https://docs.stripe.com/connect/subscriptions.md#connected-account-platform)      | Les plateformes peuvent créer des abonnements pour leurs comptes connectés. Dans cet exemple, les [tarifs](https://docs.stripe.com/api/prices.md) se trouvent sur la plateforme.                                                               |

### Restrictions

Les restrictions suivantes s’appliquent à l’utilisation de Connect pour les abonnements&nbsp;:

- Votre plateforme ne peut pas modifier ni annuler un abonnement qu’elle n’a pas créé.
- Votre plateforme ne peut pas ajouter un `application_fee_amount` à une facture qu’elle n’a pas créée, ou à une facture contenant des postes qu’elle n’a pas créés.
- Seuls les comptes connectés ayant accès à l’intégralité du Dashboard Stripe peuvent gérer les abonnements de leurs clients. Pour les autres comptes connectés, la plateforme doit gérer les abonnements de leurs clients.
- Les abonnements ne sont pas annulés automatiquement lors de la déconnexion de la plateforme. Vous devez procéder à l’annulation après la déconnexion. Vous pouvez utiliser les [webhooks pour surveiller l’activité du compte connecté](https://docs.stripe.com/connect/webhooks.md).

## Créer des abonnements pour le client final d’un compte connecté

Si vous développez une plateforme, vous pouvez créer des abonnements pour les clients de vos comptes connectés. Vous pouvez éventuellement prélever une commission de plateforme à chaque paiement.
 (See full diagram at https://docs.stripe.com/connect/subscriptions)
Dans cet exemple, une plateforme de publication en ligne permet aux clients de s’abonner à leurs auteurs préférés et de leur verser un abonnement mensuel afin de recevoir des articles de blog premium.

## Before you begin

Avant de pouvoir créer des abonnements pour vos clients ou vos comptes connectés, vous devez&nbsp;:

1. Créer un [compte connecté](https://docs.stripe.com/connect/accounts.md) pour chaque personne qui reçoit de l’argent sur votre plateforme. Dans notre exemple de publication en ligne, un compte connecté représente un auteur.
1. Créer un modèle tarifaire. Pour cet exemple, nous créons un [modèle tarifaire](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) à taux fixe pour débiter des frais aux clients de manière récurrente, mais les tarifs par utilisateur et à l’usage sont également pris en charge.
1. Créez un [objet Customer avec le moyen de paiement souhaité](https://docs.stripe.com/billing/customer.md#manage-customers) pour chaque personne qui s’abonne à un compte connecté. Dans notre exemple de publication en ligne, vous créez un objet Customer pour chaque lecteur qui s’abonne à un auteur.

### Choisir entre les paiements directs et indirects

Vous pouvez utiliser des paiements directs ou indirects pour fractionner le paiement d’un client entre le compte connecté et votre plateforme.

Si les paiements sont directs, les clients ne sont pas conscients de l’existence de votre plateforme car c’est le nom de l’auteur, et non celui de votre plateforme, qui apparaît sur le libellé de relevé bancaire. Dans notre exemple de publication en ligne, les lecteurs interagissent directement avec les auteurs.

Les paiements directs sont recommandés pour les comptes connectés ayant accès à l’intégralité du Dashboard Stripe, ce qui inclut les comptes Standard.

Si vous souhaitez que votre plateforme soit responsable des frais Stripe, remboursements et contestations de paiement, utilisez les paiements directs. Dans notre exemple de publication en ligne, les clients s’inscrivent à votre plateforme de publication, et non directement à des auteurs spécifiques.

Les paiements indirects sont recommandés pour les comptes connectés avec accès au Dashboard Express ou les comptes connectés sans accès à un tableau de bord hébergé par Stripe, ce qui inclut les comptes Express et Custom.

Pour en savoir plus sur les différents types de paiements Connect, veuillez consulter la section concernant les [types de paiements](https://docs.stripe.com/connect/charges.md#types).

### Utiliser les paiements directs pour créer un abonnement

Pour créer un abonnement avec des [paiements](https://docs.stripe.com/api/charges/object.md) associés au compte connecté, [créez un abonnement](https://docs.stripe.com/api.md#create_subscription) [en tant que compte connecté](https://docs.stripe.com/connect/authentication.md#stripe-account-header). Assurez-vous de définir le client avec un moyen de paiement par défaut, et le [tarif](https://docs.stripe.com/api/prices.md) du compte connecté. Pour utiliser un client sans moyen de paiement par défaut, définissez `payment_behavior: "default_incomplete"`. En savoir plus sur le [comportement de paiement](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior).

Développez `latest_invoice.confirmation_secret` pour inclure le composant Element Payment, dont vous avez besoin pour confirmer le paiement. En savoir plus sur le [composant Elements Payment ](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=elements&api-integration=paymentintents#add-the-payment-element-to-your-page).

Pour voir un exemple illustrant l’implémentation d’un flux d’inscription pour les abonnements et d’un tunnel de paiement dans votre application, veuillez consulter le guide sur l’[intégration des abonnements](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md).

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "expand[0]=latest_invoice.confirmation_secret"
```

### Utiliser les paiements indirects pour créer un abonnement

Pour créer un abonnement avec des [paiements](https://docs.stripe.com/api/charges/object.md) associés à la plateforme, ainsi que des transferts automatiques vers un compte connecté, effectuez un appel de [création d’abonnement](https://docs.stripe.com/api.md#create_subscription) en fournissant l’identifiant du compte connecté comme [valeur](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-transfer_data) pour le paramètre `transfer_data[destination]`.

Développez `latest_invoice.confirmation_secret` pour inclure le composant Element Payment, dont vous avez besoin pour confirmer le paiement. En savoir plus sur le [composant Elements Payment ](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=elements&api-integration=paymentintents#add-the-payment-element-to-your-page).

Vous avez la possibilité de spécifier un paramètre [application_fee_percent](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-application_fee_percent). Pour en savoir plus, veuillez consulter la section concernant la [perception de frais](https://docs.stripe.com/connect/subscriptions.md#collect-fees).

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "expand[0]=latest_invoice.confirmation_secret" \
  -d "transfer_data[destination]={{CONNECTEDACCOUNT_ID}}"
```

### Mesures supplémentaires à prendre avant de créer un abonnement

Pour créer un paiement indirect, définissez à la fois le client et le tarif sur le compte de la plateforme. Vous devez avoir créé un compte connecté sur la plateforme. Le client doit exister au sein du compte de la plateforme. Lorsque vous utilisez des paiements indirects, la plateforme est le *marchand officiel* (The legal entity responsible for facilitating the sale of products to a customer that handles any applicable regulations and liabilities, including sales taxes. In a Connect integration, it can be the platform or a connected account).

## Créer des abonnements pour facturer les clients finaux de la plateforme

Vous pouvez utiliser Stripe Billing pour créer des abonnements afin que vos clients finaux puissent effectuer des transactions directement avec votre plateforme sans impliquer vos comptes connectés.
 (See full diagram at https://docs.stripe.com/connect/subscriptions)
Dans cet exemple, une place de marché est créée pour permettre aux clients de se faire livrer à la demande par des restaurants. Cette place de marché propose aux clients un abonnement mensuel premium qui les dispense des frais de livraison. Les clients qui s’abonnent à l’offre premium paient directement la place de marché et ne s’abonnent pas à un service de livraison ou à un restaurant particulier.

## Before you begin

Avant de créer des abonnements pour vos clients, vous devez&nbsp;:

1. Créer un modèle tarifaire. Pour cet exemple, nous créons un [modèle tarifaire](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) à taux fixe pour débiter des frais aux clients de manière récurrente, mais les tarifs par utilisateur et à l’usage sont également pris en charge.
1. Créer un [client](https://docs.stripe.com/billing/customer.md#manage-customers) pour chaque personne que vous souhaitez facturer.

Vous pouvez également créer un [compte connecté](https://docs.stripe.com/connect/accounts.md) pour chaque utilisateur qui reçoit de l’argent provenant de votre place de marché. Dans notre exemple de livraison de repas à la demande, un compte connecté représente un restaurant ou un service de livraison. Cependant, cette étape n’est pas nécessaire pour l’inscription de nouveaux clients à votre place de marché.

### Créer un abonnement

Pour créer un abonnement et définir votre plateforme comme destinataire des fonds (sans qu’ils transitent par les comptes connectés), suivez les instructions du [guide des abonnements](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md) pour créer un abonnement avec Stripe&nbsp;Billing.

### Créer des paiements et transferts distincts

Si vous souhaitez transférer manuellement une partie des fonds reçus par votre plateforme vers vos comptes connectés, utilisez [Paiements et transferts distincts](https://docs.stripe.com/connect/separate-charges-and-transfers.md). Dans notre exemple de service de livraison de restauration à la demande, vous pouvez utiliser des frais et des transferts distincts pour verser une commission d’affiliation à un livreur ou à un restaurant ayant recommandé à un client de s’abonner au service de livraison premium.

## Créer des abonnements pour facturer des comptes connectés

Vous pouvez utiliser Stripe Billing pour créer des abonnements afin de prélever une commission sur vos comptes connectés pour l’utilisation de votre plateforme.
 (See full diagram at https://docs.stripe.com/connect/subscriptions)
Cet exemple présente une plateforme logicielle de gestion de salles de sport. En contrepartie d’une commission mensuelle, ces entreprises peuvent utiliser le logiciel pour gérer la planification et les horaires de cours. Les frais d’inscription incombent aux salles de sport, et non à leurs clients.

Le logiciel de gestion de salles de sport simplifie les paiements ponctuels entre les usagers et les entreprises pour chaque cours auquel un usager s’inscrit. Cet abonnement mensuel lie le compte connecté et la plateforme, l’usager de la salle de sport n’est donc pas impliqué dans cette transaction.

Dans le diagramme ci-dessus, la salle de sport représente le compte connecté et l’usager est le client final.

## Before you begin

Avant de créer des abonnements pour vos comptes connectés, vous devez&nbsp;:

1. Créer un modèle tarifaire. Pour cet exemple, nous créons un [modèle tarifaire](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) à taux fixe pour débiter des frais aux clients de manière récurrente, mais les tarifs par utilisateur et à l’usage sont également pris en charge.
1. Créez un client sur la plateforme avec le moyen de paiement prévu pour chaque compte connecté que vous souhaitez facturer. Dans l’exemple du logiciel de gestion de salles de sport, vous devez créer un client pour chaque entreprise de fitness&nbsp;:

### Créer un objet Customer pour représenter le compte connecté

Pour créer un abonnement permettant au compte connecté de payer des frais récurrents à la plateforme, vous devez créer un objet [Client](https://docs.stripe.com/api/customers/create.md) représentant le compte connecté. L’objet Compte permet au compte connecté de collecter les paiements de ses clients, mais la plateforme ne peut pas l’utiliser pour collecter les paiements récurrents du compte connecté. Créez un seul client pour représenter chaque entité commerciale au lieu de créer un client pour représenter chaque propriétaire, gestionnaire ou exploitant de l’entreprise.

### Créer un abonnement pour le compte connecté

Pour créer un abonnement où votre plateforme reçoit les fonds de vos comptes connectés, suivez le [guide des abonnements](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md) pour créer un abonnement avec Stripe Billing. Transmettez l’objet Customer représentant le compte connecté dans le paramètre `client`.

## Activer votre intégration pour recevoir des notifications d’événement

Stripe crée des notifications d’événement lorsque des changements sont apportés à votre compte, par exemple lorsqu’un paiement récurrent aboutit ou qu’un virement échoue. Afin de recevoir ces notifications et les utiliser pour automatiser votre intégration, configurez un *endpoint de webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests). Par exemple, vous pouvez donner accès à votre service lorsque vous recevez l’événement `invoice.paid`.

### Notifications d’événements pour Connect et les intégrations d’abonnements

Voici les notifications d’événements généralement utilisées par les intégrations Connect.

| Événement                          | Type de data.object                                 | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ---------------------------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `account.application.deauthorized` | `application`                                       | Se produit lorsqu’un compte connecté se déconnecte de votre plateforme. Vous pouvez l’utiliser pour déclencher un nettoyage sur votre serveur. Disponible pour les comptes connectés ayant accès au Dashboard Stripe, ce qui inclut les [comptes Standard](https://docs.stripe.com/connect/standard-accounts.md).                                                                                                                                                                                                                                                                                         |
| `account.external_account.updated` | Un compte externe, tel que `card` ou `bank_account` | Se produit lorsqu’[un compte bancaire associé ou une carte de débit associée à un compte connecté est modifié(e)](https://docs.stripe.com/connect/payouts-bank-accounts.md), ce qui peut avoir des conséquences sur les virements. Disponible pour les comptes connectés contrôlés par votre plateforme, comptes Custom et Express compris, et pour les comptes Standard dont les [contrôles de la plateforme](https://docs.stripe.com/connect/platform-controls-for-stripe-dashboard-accounts.md) sont activés.                                                                                          |
| `account.updated`                  | `account`                                           | Permet de surveiller les évolutions des exigences relatives aux comptes connectés et les changements d’état. Disponible pour tous les comptes connectés.                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `balance.available`                | `balance`                                           | Se produit lorsque votre solde Stripe est mis à jour. Par exemple, lorsque les [fonds rechargés depuis votre compte bancaire](https://docs.stripe.com/connect/top-ups.md) sont disponibles pour un virement vers votre compte connecté.                                                                                                                                                                                                                                                                                                                                                                   |
| `payment_intent.succeeded`         | `payment_intent`                                    | Se produit lorsqu’un Payment Intent aboutit à un paiement réussi. Disponible pour tous les paiements, y compris les paiements de [destination](https://docs.stripe.com/connect/destination-charges.md) et [directs](https://docs.stripe.com/connect/direct-charges.md).                                                                                                                                                                                                                                                                                                                                   |
| `payout.failed`                    | `payout`                                            | Se produit quand [un virement échoue](https://docs.stripe.com/connect/payouts-connected-accounts.md#webhooks). Lorsqu’un virement échoue, le compte externe concerné est désactivé. Aucun virement automatique ou manuel ne peut être traité tant que le compte externe n’a pas été mis à jour.                                                                                                                                                                                                                                                                                                           |
| `person.updated`                   | `person`                                            | Se produit lorsqu’une `Person` associé au `Account` est modifiée. Si vous [utilisez l’API Persons pour gérer les exigences](https://docs.stripe.com/connect/handling-api-verification.md#verification-process), écoutez cet événement pour surveiller les évolutions des exigences et les changements d’état des personnes. Disponible pour les comptes connectés contrôlés par votre plateforme, comptes Custom et Express compris, et pour les comptes Standard dont les [contrôles de la plateforme](https://docs.stripe.com/connect/platform-controls-for-stripe-dashboard-accounts.md) sont activés. |

Voici les notifications d’événements généralement utilisées par les intégrations d’abonnements.

> L’API Accounts v2 est en disponibilité générale (GA) pour les utilisateurs de Connect, et en version bêta publique pour les autres utilisateurs Stripe.
> 
> Que vous utilisiez des objets [Accounts&nbsp;v2](https://docs.stripe.com/connect/use-accounts-as-customers.md) ou [Customer](https://docs.stripe.com/api/customers.md) pour représenter les comptes connectés ou les clients de votre plateforme, utilisez les événements `customer.subscription` pour suivre les événements d’abonnement.

| Événement                                         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `v2.core.account.created`                         | Envoyé lorsqu’un [Compte&nbsp;v2](https://docs.stripe.com/api/v2/core/accounts/object.md) est créé avec succès.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `customer.created`                                | Envoyé lorsqu’un objet [Customer](https://docs.stripe.com/api/customers/object.md) a bien été créé.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `customer.subscription.created`                   | Envoyé lors de la création de l’abonnement. Le `status` de l’abonnement peut être `incomplete` si l’authentification du client est demandée pour finaliser le paiement ou si le paramètre `payment_behavior` est défini sur [default_incomplete](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `customer.subscription.deleted`                   | Envoyé lorsque l’abonnement d’un client prend fin.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `customer.subscription.paused`                    | Envoyé lorsque l’`état` d’un abonnement passe à `paused`. Par exemple, nous l’envoyons lorsque vous [configurez](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-trial_settings-end_behavior-missing_payment_method) un abonnement pour qu’il soit suspendu lorsqu’une [période d’essai gratuite se termine sans moyen de paiement](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#create-free-trials-without-payment). Invoicing remporté(e) n’aura lieu qu’une fois l’abonnement [repris(/API/abonnement/reprise). Nous n’envoyons pas cet événement si vous [suspendez le recouvrement](https://docs.stripe.com/billing/subscriptions/pause-payment.md) car les factures continuent d’être créées pendant cette période.                                                                                                                                                                                                                                                            |
| `customer.subscription.resumed`                   | Envoyé lorsque vous reprenez un abonnement précédemment à l’état `paused`. Cela ne s’applique pas lorsque vous [interrompez le recouvrement des paiements](https://docs.stripe.com/billing/subscriptions/pause-payment.md#unpausing).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `customer.subscription.trial_will_end`            | Envoyé trois&nbsp;jours avant la [fin de la période d’essai](https://docs.stripe.com/billing/subscriptions/trials.md). Si la période d’essai est inférieure à trois&nbsp;jours, l’événement est déclenché.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `customer.subscription.updated`                   | Envoyé lorsqu’un abonnement démarre ou [est modifié](https://docs.stripe.com/billing/subscriptions/change.md). Par exemple, le renouvellement d’un abonnement, l’ajout d’un bon de réduction, l’application d’une réduction, l’ajout d’un poste de facture et le changement de plan déclenchent sont des situations qui déclenchent cet événement.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `entitlements.active_entitlement_summary.updated` | Envoyé lorsque les droits actifs d’un client sont mis à jour. Lorsque vous recevez cet événement, vous pouvez donner ou retirer l’accès aux fonctionnalités de votre produit. En savoir plus sur l’[intégration des droits](https://docs.stripe.com/billing/entitlements.md).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `invoice.created`                                 | Envoyé lorsqu’une facture est créée pour un nouvel abonnement ou un renouvellement. Si Stripe ne reçoit pas une réponse positive à `invoice.created`, la finalisation de toutes les factures avec l’[encaissement automatique](https://docs.stripe.com/invoicing/integration/automatic-advancement-collection.md) est retardée de 72&nbsp;heures au maximum. Renseignez-vous sur la [finalisation des factures](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized).
  - Répondez à la notification en envoyant une requête à l’API [de finalisation des factures](https://docs.stripe.com/api/invoices/finalize.md).                                                                                                                                                                                                                                                                                                                                                                                  |
| `invoice.finalized`                               | Envoyé lorsqu’une facture est finalisée et prête à être payée.
  - Vous pouvez envoyer la facture au client. Familiarisez-vous avec la [finalisation des factures](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized) pour en savoir plus.
  - Selon vos paramètres, nous débitons automatiquement le moyen de paiement par défaut ou tentons un encaissement. Renseignez-vous sur les [e-mails après la finalisation](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#emails) pour en savoir plus.                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `invoice.finalization_failed`                     | La facture n’a pas pu être finalisée. Découvrez [comment gérer les échecs de finalisation](https://docs.stripe.com/tax/customer-locations.md#finalizing-invoices-with-finalization-failures) et [la finalisation](https://docs.stripe.com/invoicing/integration/workflow-transitions.md#finalized) des factures.
  - Inspectez la [last_finalization_error](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) de la facture pour déterminer la cause de l’erreur.
  - Si vous utilisez Stripe Tax, vérifiez le champ [automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-last_finalization_error) de l’objet `Invoice` .
  - Si `automatic_tax[status]=requires_location_inputs``, la facture ne peut pas être finalisée et les paiements ne peuvent pas être encaissés. Prévenez votre client et collectez l’[emplacement client](https://docs.stripe.com/tax/customer-locations.md) demandé.
  - Si `automatic_tax[status]=failed`, relancez la requête plus tard. |
| `invoice.paid`                                    | Envoyé lorsque la facture est réglée. Vous pouvez fournir l’accès à votre produit dès la réception de cet événement et le basculement du `status` de l’abonnement sur `active`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `invoice.payment_action_required`                 | Envoyé lorsque la facture nécessite une authentification du client. Découvrez comment gérer un abonnement quand une [action est requise](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action) pour la facture.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `invoice.payment_failed`                          | Le paiement d’une facture a échoué. L’état du PaymentIntent bascule sur `requires_action`. L’état de l’abonnement reste `incomplet` *seulement* pour la première facture de l’abonnement. Lorsqu’un paiement échoue, plusieurs actions sont possibles&nbsp;:

  - Prévenez votre client.
  - Configurez vos [paramètres d’abonnement](https://dashboard.stripe.com/settings/billing/automatic) dans le Dashboard pour activer [Smart Retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md) et d’autres fonctionnalités de recouvrement de revenus.
  - Si vous utilisez des PaymentIntents, recueillez de nouvelles données de paiement et [confirmez le PaymentIntent](https://docs.stripe.com/api/payment_intents/confirm.md).
  - Mettez à jour le [moyen de paiement par défaut](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_payment_method) de l’abonnement.                                                                                                         |
| `invoice.upcoming`                                | Envoyé quelques jours avant le renouvellement de l’abonnement. Le nombre de jours dépend de la valeur **Événements de renouvellement à venir** configurée dans le [Dashboard](https://dashboard.stripe.com/settings/billing/automatic). Pour les abonnements existants, la modification du nombre de jours prend effet à la période de facturation suivante. Vous pouvez toujours ajouter des [postes de facture supplémentaires](https://docs.stripe.com/billing/invoices/subscription.md#adding-upcoming-invoice-items) si nécessaire.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `invoice.updated`                                 | Envoyé lorsqu’un paiement aboutit ou échoue. Si le paiement aboutit, l’attribut `paid` est défini sur `true` et le `status` sur `paid`. Si le paiement échoue, `paid` est défini sur `false` et le `status` reste `open`. Les échecs de paiement déclenchent par ailleurs un événement `invoice.payment_failed`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `payment_intent.created`                          | Envoyé lorsqu’un [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) est créé.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `payment_intent.succeeded`                        | Envoyé lorsqu’un PaymentIntent a effectué un paiement avec succès.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `subscription_schedule.aborted`                   | Envoyé lorsqu’une planification d’abonnement est annulée car un défaut de paiement a entraîné la résiliation de l’abonnement correspondant.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `subscription_schedule.canceled`                  | Envoyé lorsqu’une planification d’abonnement est annulée, ce qui annule également tout abonnement actif associé.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `subscription_schedule.completed`                 | Envoyé lorsque toutes les [phases](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md#subscription-schedule-phases) d’une planification d’abonnement sont terminées.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `subscription_schedule.created`                   | Envoyé lorsqu’une nouvelle planification d’abonnement est créée.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `subscription_schedule.expiring`                  | Envoyé 7&nbsp;jours avant la date d’expiration d’un abonnement.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `subscription_schedule.released`                  | Envoyé lorsqu’une planification d’abonnement est [publiée](https://docs.stripe.com/api/subscription_schedules/release.md), ou interrompue et dissociée de l’abonnement, lequel est conservé.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `subscription_schedule.updated`                   | Envoyé lorsqu’une planification d’abonnement est mise à jour.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

- [Créer un endpoint de webhook](https://docs.stripe.com/webhooks.md#webhook-endpoint-def)
- [Écouter des événements avec la CLI Stripe](https://docs.stripe.com/webhooks.md#local-listener)
- [Connecter des webhooks](https://docs.stripe.com/connect/webhooks.md)
- [Webhook d’abonnement](https://docs.stripe.com/billing/subscriptions/webhooks.md)

## Tester votre intégration

Une fois que vous avez créé votre abonnement, testez soigneusement votre intégration avant de la proposer aux clients ou de l’utiliser en mode production. Pour en savoir plus, veuillez consulter la page [test pour Stripe&nbsp;Billing](https://docs.stripe.com/billing/testing.md).

## Options supplémentaires

Après avoir créé votre abonnement, vous pouvez entre autres indiquer un [application_fee_percent](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-application_fee_percent), configurer le *portail client* (The customer portal is a secure, Stripe-hosted page that lets your customers manage their subscriptions and billing details), facturer votre client à l’aide du paramètre `on_behalf_of` et surveiller les abonnements avec des webhooks, en plus d’autres options.

### Encaisser des frais sur les abonnements

Une fois par période de facturation, Stripe prélève un pourcentage sur le montant de la facture finale, qui inclut les postes de facture regroupés, les ristournes et les réajustements de solde du client, au titre de la commission de la plateforme. Nous déduisons ces frais avant de facturer des frais Stripe.

Lorsque vous créez ou modifiez un abonnement, vous avez la possibilité de spécifier un paramètre [application_fee_percent](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-application_fee_percent). Il doit s’agir d’un nombre décimal positif compris entre 0&nbsp;et 100, avec un maximum de deux&nbsp;chiffres après la virgule.

L’exemple suivant présente un `application_fee_percent` pour des abonnements utilisant les paiements directs sur des comptes connectés&nbsp;:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "expand[0]=latest_invoice.confirmation_secret" \
  -d application_fee_percent=10
```

Cet exemple montre comment utiliser le paramètre `application_fee_percent` pour des abonnements utilisant les paiements indirects&nbsp;:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "expand[0]=latest_invoice.confirmation_secret" \
  -d application_fee_percent=10 \
  -d "transfer_data[destination]={{CONNECTEDACCOUNT_ID}}"
```

### Calcul du pourcentage de commission de la plateforme

Pour savoir comment nous calculons `application_fee_percent`, examinez le scénario suivant&nbsp;:

- Un abonnement coûte 30 USD par cycle de facturation
- La prochaine facture inclut des frais à hauteur de 10 USD
- Un bon de réduction de 50&nbsp;% s’applique
- L’`application_fee_percent` est de&nbsp;10

Dans ce cas, le montant total de la commission de la plateforme est de 2 USD&nbsp;: (30 USD + 10 USD) * 50&nbsp;% * 10&nbsp;%.

### Frais variables et frais fixes

Les commissions de la plateforme sur les abonnements sont normalement exprimées en pourcentage, car pour les abonnements, le montant facturé varie fréquemment. Vous ne pouvez pas définir de montant fixe pour la commission de la plateforme d’un abonnement récurrent.

Cependant, vous pouvez facturer un `application_fee_amount` fixe sur une facture, comme expliqué dans la [section suivante](https://docs.stripe.com/connect/subscriptions.md#subscription-invoices).

Le paramètre `application_fee_percent` ne peut s’appliquer aux facture créées en dehors d’une période de facturation d’un abonnement. Par exemple, il ne s’applique pas aux postes de facture au prorata à facturer immédiatement. Pour ce type de cas de figure, vous devez définir sur la facture un paramètre `application_fee_amount` du montant que vous souhaitez facturer.

### Gérer les factures créées par des abonnements

À chaque cycle de facturation, les abonnements créent des factures, et ces factures créent des paiements. Pour en savoir plus sur les cycles des abonnements, veuillez consulter la section concernant le [cycle de vie des abonnements](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-lifecycle). Pour facturer des frais fixes ou dynamiques qui ne soient pas automatiquement calculés avec le paramètre `application_fee_percent`, ajoutez directement un paramètre `application_fee_amount` sur chaque facture créée par l’abonnement.

L’exemple suivant montre comment utiliser `application_fee_amount` pour une facture avec paiement direct sur le compte connecté&nbsp;:

#### curl

```bash
curl https://api.stripe.com/v1/invoices/{INVOICE_ID} \
  -u <<YOUR_SECRET_KEY>>: \
  -d application_fee_amount=100 \
  -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}"
```

L’exemple suivant montre comment utiliser `application_fee_amount` pour une facture avec paiement indirect&nbsp;:

#### curl

```bash
curl https://api.stripe.com/v1/invoices/{INVOICE_ID} \
  -u <<YOUR_SECRET_KEY>>: \
  -d application_fee_amount=100 \
  -d "transfer_data[destination]"="{{CONNECTED_STRIPE_ACCOUNT_ID}}"
```

Pour facturer automatiquement un `application_fee_amount`, créez un *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) qui écoute l’événement `invoice.created`. Vous pouvez également le faire manuellement en créant une facture pour des postes en attente, sur laquelle vous définissez la commission de la plateforme.

Lorsque vous définissez un paramètre `application_fee_amount` directement sur une facture, il prime sur les éventuelles commissions de la plateforme calculées à l’aide du paramètre `application_fee_percent`, et ne peut dépasser le montant total de la facture.

### Utiliser des bons de réduction

Une fois les abonnements créés, vous pouvez y ajouter des bons de réduction. Les [bons de réduction](https://docs.stripe.com/api/coupons.md) sont des objets utilisables côté marchand qui vous permettent de contrôler les ristournes applicables aux [abonnements](https://docs.stripe.com/billing/subscriptions/overview.md) ou aux [factures](https://docs.stripe.com/api/invoices.md). Les [codes promotionnels](https://docs.stripe.com/api/promotion_codes.md) sont des codes destinés aux clients que vous associez à vos bons de réduction et que vous partagez directement avec vos clients. Pour en savoir plus, veuillez consulter la section concernant la [création des codes destinés aux clients](https://docs.stripe.com/billing/subscriptions/coupons.md#promotion-codes).

### Utiliser des périodes d'essai

Vous pouvez démarrer l’[abonnement](https://docs.stripe.com/billing/subscriptions/overview.md) d’un client avec une période d’essai gratuite en donnant un argument `trial_end` lors de la [création de l’abonnement](https://docs.stripe.com/api.md#create_subscription)&nbsp;:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d trial_end=1610403705
```

Le paramètre `trial_end` comprend un horodatage indiquant le moment exact où la période d’essai s’arrête. Lors de la création d’un abonnement, vous pouvez également utiliser l’argument [trial_period_days](https://docs.stripe.com/api.md#create_subscription-trial_period_days)&nbsp;: un nombre entier représentant le nombre de jours de la période d’essai, à compter de l’instant présent.

Lors de la création d’un abonnement avec une période d’essai, il n’est pas nécessaire d’avoir de moyen de paiement pour le client. Nous créons néanmoins immédiatement une [facture](https://docs.stripe.com/api/invoices.md), mais avec un montant de 0 USD.

Trois&nbsp;jours avant la fin de la période d’essai, un événement `customer.subscription.trial_will_end` est envoyé à votre [endpoint de webhook](https://docs.stripe.com/billing/subscriptions/webhooks.md). Une fois que vous avez pris connaissance de cette notification, prenez les mesures nécessaires (par exemple, en informant le client que la facturation va débuter).

Lorsque l’essai s’achève, un nouveau cycle de facturation débute pour le client. Une fois que la période d’essai est terminée, Stripe génère une facture et envoie une notification d’événement `invoice.created`. Environ 1&nbsp;heure plus tard, Stripe tente de débiter cette facture.

Pour mettre fin à une période d’essai de façon anticipée, exécutez un appel à l’API&nbsp;[Update&nbsp;Subscription](https://docs.stripe.com/api.md#update_subscription), en définissant la valeur `trial_end` sur un nouvel horodatage ou **maintenant** pour y mettre fin immédiatement&nbsp;:

```curl
curl https://api.stripe.com/v1/subscriptions/{{SUBSCRIPTION_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d trial_end=now
```

Découvrez comment [retarder les paiements d’abonnements actifs à l’aide de périodes d’essai](https://docs.stripe.com/billing/subscriptions/trials.md).

### Configurer le portail client

Le portail client permet à vos clients de gérer leurs [abonnements](https://docs.stripe.com/billing/subscriptions/overview.md) et leurs [factures](https://docs.stripe.com/api/invoices.md). Si vous utilisez Billing, le portail leur permet également de gérer leurs abonnements (mise à jour, annulation, suspension, etc.). Les utilisateurs qui utilisent seulement Invoicing peuvent recourir au portail pour payer une facture, ajouter un moyen de paiement, etc. Pour en savoir plus, veuillez consulter la page concernant l’[intégration du portail client](https://docs.stripe.com/customer-management.md).

### Surveiller les abonnements avec des webhooks

Nous envoyons des notifications à votre application en utilisant des [webhooks](https://docs.stripe.com/webhooks.md). Les webhooks sont particulièrement importants pour les [abonnements](https://docs.stripe.com/billing/subscriptions/overview.md), où la majeure partie de l’activité survient de manière asynchrone. Pour utiliser les webhooks avec vos abonnements&nbsp;:

1. Créez un endpoint de webhook dans votre application.
1. Ajoutez la logique voulue pour gérer les événements Stripe. Pour les abonnements, il s’agit principalement de traiter les échecs de paiement et les changements d’état de l’abonnement (comme le basculement d’une période d’essai à l’état actif).
1. Testez votre endpoint de webhook pour confirmer qu’il fonctionne comme prévu.

Découvrez comment utiliser les webhooks pour [recevoir des notifications en cas d’activité liées à vos abonnements](https://docs.stripe.com/billing/subscriptions/webhooks.md).

### Configurer le compte connecté en tant qu'entité de règlement à l'aide du paramètre on_behalf_of

Vous pouvez créer ou mettre à jour un abonnement avec le paramètre `on_behalf_of` pour plusieurs raisons&nbsp;:

- Pour configurer le compte connecté en tant qu’entité de règlement
- Pour utiliser la marque d’un compte connecté dans des ressources hébergées (reçus par e-mail, factures et portail client)

Consultez la documentation suivante pour connaître les conditions d’utilisation de `on_behalf_of` et obtenir plus d’informations sur la façon dont cela influe sur les paiements sur les abonnements&nbsp;:

- S’agissant des transferts automatiques vers le compte connecté, consultez les informations relatives au paramètre `on_behalf_of` de la page [Paiement au nom d’un compte connecté](https://docs.stripe.com/connect/charges.md#on_behalf_of).
- Pour savoir comment transférer des paiements manuellement, veuillez consulter la section sur la disponibilité des transferts de la page [Créer des paiements et des transferts distincts](https://docs.stripe.com/connect/separate-charges-and-transfers.md#settlement-merchant).
- Pour obtenir la liste des fonctionnalités requises au niveau du compte afin de traiter les moyens de paiement, veuillez consulter la section sur les [Fonctionnalités des moyens de paiement](https://docs.stripe.com/connect/account-capabilities.md#payment-methods).
- Pour obtenir la liste des options de marque à activer sur le compte connecté, reportez-vous aux détails du paramètre `settings.branding` dans la [documentation relative à l’API](https://docs.stripe.com/api/accounts/object.md#account_object-settings-branding)

L’exemple suivant illustre l’utilisation d’un paramètre `on_behalf_of` pour un nouvel abonnement à l’aide de paiements et transferts distincts&nbsp;:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "on_behalf_of={{CONNECTEDACCOUNT_ID}}" \
  -d "items[0][price]={{PRICE_ID}}"
```

Cet exemple montre comment utiliser `on_behalf_of` avec un paiement indirect et la commission de la plateforme&nbsp;:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "on_behalf_of={{CONNECTEDACCOUNT_ID}}" \
  -d application_fee_percent=10 \
  -d "transfer_data[destination]={{CONNECTEDACCOUNT_ID}}" \
  -d "items[0][price]={{PRICE_ID}}"
```

### Comprendre le comportement de déconnexion

Lorsqu’un compte connecté est déconnecté d’une plateforme, les abonnements ne sont pas automatiquement annulés. Cependant, certains aspects de l’encaissement des paiements peuvent continuer ou s’arrêter selon le type de paiement utilisé.

### Paiements directs

Après la déconnexion, les abonnements continuent de s’exécuter sur le compte connecté. Si l’abonnement a été créé avec le paramètre `application_fee_percent`, les frais de la plateforme continuent d’être collectés par la plateforme après la déconnexion. Supprimez le paramètre `application_fee_percent` de l’abonnement avant que le compte connecté ne se déconnecte de votre plateforme. Après la déconnexion, le compte connecté peut effacer le paramètre `application_fee_percent` des abonnements existants par le biais de l’API.

### Paiements indirects ou paiements et transferts distincts

Après la déconnexion, les abonnements existants créés comme paiements indirects ou comme paiements et transferts distincts continuent de générer des factures, mais ils ne peuvent pas transférer de fonds vers un compte connecté. Avant la déconnexion, vous devez aider les comptes connectés à migrer des abonnements ou annuler les abonnements associés.

### Paiements indirects avec on_behalf_of

Lorsqu’un compte connecté est déconnecté d’une plateforme, les abonnements `on_behalf_of` ne débiteront pas le client pour les factures d’abonnement définies sur `charge_automatically`. Nous continuons à générer des factures d’abonnement pour chaque cycle, mais elles restent à l’état de brouillon avec `auto_advance` défini sur `false`.

Pour continuer à encaisser le paiement, vous devez reconnecter le compte déconnecté ou supprimer ces champs de la facture d’abonnement et retenter le paiement sur ces factures.

### Intégrer le calcul et la collecte des taxes

Vous devez d’abord déterminer l’entité redevable de la taxe, qui peut être votre compte connecté ou la plateforme, en fonction de votre modèle économique. Pour en savoir plus, veuillez consulter la page [Utiliser Stripe&nbsp;Tax avec Connect](https://docs.stripe.com/tax/connect.md).

## See also

- [Créer des factures](https://docs.stripe.com/invoicing/connect.md)
- [Créer un paiement](https://docs.stripe.com/connect/charges.md)
- [Partager les clients entre comptes](https://docs.stripe.com/connect/cloning-customers-across-accounts.md)
- [Gérer plusieurs devises](https://docs.stripe.com/connect/currencies.md)
