# Fonctionnement des abonnements

Gérez les paiements récurrents et le cycle de vie des abonnements.

Les abonnements permettent aux clients d’effectuer des paiements récurrents pour accéder à un produit ou à un service. Lorsque vous créez un abonnement, Stripe génère automatiquement des factures, tente l’encaissement des paiements et gère l’état de l’abonnement tout au long de son cycle de vie. Un abonnement passe par un ensemble d’états prévisibles, de la création à l’annulation.

Contrairement aux paiements ponctuels, les abonnements nécessitent d’enregistrer les informations du client et du moyen de paiement pour les cycles de facturation futurs. Stripe gère la logique de nouvelle tentative de paiement, la relance et les transitions d’état.

## Le cycle de vie d’un abonnement

Chacune des phases suivantes du cycle de vie de l’abonnement correspond à un changement d’état sur l’[objet Subscription](https://docs.stripe.com/api/subscriptions/object.md). Comprendre ces états vous permet de savoir quand fournir un accès, informer les clients et gérer les erreurs. Vous pouvez utiliser des [événements de webhook](https://docs.stripe.com/billing/subscriptions/webhooks.md#state-changes) pour surveiller et gérer les transitions entre chaque état.

### Créer l’abonnement

Créez un nouvel abonnement dans le [Dashboard](https://dashboard.stripe.com/subscriptions?status=active) ou avec l’[API Subscriptions](https://docs.stripe.com/api/subscriptions/create.md). L’[objet Subscription](https://docs.stripe.com/api/subscriptions/object.md) qui en résulte contient le client abonné, le [product](https://docs.stripe.com/api/products.md), le [price](https://docs.stripe.com/api/prices/object.md) et le `status` reflétant l’état actuel du cycle de vie de l’abonnement.

Lorsque vous créez un abonnement qui nécessite un paiement immédiat, Stripe crée également un [Invoice](https://docs.stripe.com/billing/invoices/subscription.md) et un [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md). L’état initial de l’abonnement est `incomplete`, puis devient `active` après que le client a payé la première facture.

> Les moyens de paiement avec confirmation *différée* (A payment method that can't immediately return payment status when a customer attempts a transaction (for example, ACH debits). Businesses commonly hold an order in a pending state until payment is successful with these payment methods), comme ACH Direct Debit, peuvent présenter un état différent. Pour en savoir plus, consultez la section sur la [confirmation de paiement différée](https://docs.stripe.com/billing/subscriptions/overview.md#delayed-payment-confirmation).

La gestion par défaut des échecs et de l’encaissement du paiement des abonnements dépend du moyen de paiement. Dans l’API, vous pouvez configurer le paramètre [payment_behavior](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) d’un abonnement pour en modifier le comportement par défaut.

Si vous créez une [période d’essai](https://docs.stripe.com/billing/subscriptions/trials.md) pour retarder le premier paiement de l’abonnement, l’état initial est `trialing`, et l’abonnement passe automatiquement à l’état `active` lorsque l’essai se termine et que le paiement réussit.

### Gérer la facture

Pour les abonnements dont le paramètre `collection_method` est défini sur `charge_automatically`, Stripe crée une [facture](https://docs.stripe.com/billing/invoices/subscription.md) avec l’état `open` lorsque vous créez l’abonnement. Votre client dispose de 23&nbsp;heures pour payer. Pendant ce temps, l’état de l’abonnement est `incomplete` et l’état de la facture reste `open`. Cette fenêtre de 23&nbsp;heures est prévue pour les clients qui paient *pendant une session* (A payment is described as on-session if it occurs while the customer is actively in your checkout flow and able to authenticate the payment method). Si le client retourne sur votre formulaire d’inscription après 23&nbsp;heures, créez-lui un nouvel abonnement.

Pour les abonnements dont le paramètre `collection_method` est défini sur `send_invoice`, Stripe envoie au client par e-mail un lien vers la facture avec une date d’échéance configurable. Pour les abonnements sans période d’essai, l’état initial de l’abonnement est `active`, même si la première facture n’est pas payée.

Pour en savoir plus, consultez la section consacrée aux [factures d’abonnement](https://docs.stripe.com/billing/invoices/subscription.md).

### Confirmer le paiement

Pour les abonnements dont le paramètre `collection_method` est défini sur `charge_automatically`, si votre client paie la facture, l’abonnement passe à l’état `active` et la facture à l’état `paid`. Écoutez l’événement [invoice.paid](https://docs.stripe.com/billing/subscriptions/webhooks.md#events) ou confirmez que le statut de l’abonnement est réglé sur `active`.

Stripe définit le [current_period_start](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items-data-current_period_start) de l’abonnement lorsqu’elle crée la facture initiale. Un paiement ultérieur ne décale pas le début de la période de facturation initiale. Si un moyen de paiement requiert une action du client et que celui-ci tarde à l’effectuer, il reste moins de temps dans la première période de facturation lorsque vous accordez l’accès.

Pour ces abonnements, si le client ne paie pas dans un délai de 23&nbsp;heures, l’abonnement passe à l’état `incomplete_expired` et la facture devient `void`. Pour réactiver son accès, créez un nouvel abonnement.

Pour en savoir plus, consultez les [états des abonnements](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-statuses) et [des paiements](https://docs.stripe.com/billing/subscriptions/overview.md#payment-status).

### Fournir l’accès à votre produit

Lorsqu’un abonnement devient `active`, Stripe crée un [entitlement](https://docs.stripe.com/billing/entitlements.md) actif pour chaque fonctionnalité associée au produit souscrit. Lorsqu’un client accède à vos services, utilisez ses droits d’accès actifs pour lui accorder l’accès aux fonctionnalités incluses dans son abonnement.

Vous pouvez également [assurer le suivi des abonnements actifs](https://docs.stripe.com/billing/subscriptions/webhooks.md#active-subscriptions) à l’aide d’événements webhook et fournir le produit au client en fonction de cette activité.

### Mettre à jour l’abonnement

Vous pouvez [modifier des Abonnement existantes](https://docs.stripe.com/billing/subscriptions/change.md) si nécessaire sans avoir à les annuler ni à les recréer. Parmi les changements les plus importants que vous pourriez apporter, citons le [passage à une](https://docs.stripe.com/billing/subscriptions/change-price.md) offre abonnement ou inférieure ou la [suspension paiement du collecter](https://docs.stripe.com/billing/subscriptions/pause-payment.md) d’un abonnement actif.

Pour les intégrations [Stripe Checkout](https://docs.stripe.com/payments/checkout.md), vous ne pouvez pas mettre à jour l’abonnement ou sa facture si l’abonnement de la session est `incomplete`. Vous pouvez écouter l’événement [checkout.session.completed](https://docs.stripe.com/api/events/types.md#event_types-checkout.session.completed) pour effectuer la mise à jour une fois la session terminée. Vous pouvez également [faire expirer la session](https://docs.stripe.com/api/checkout/sessions/expire.md) si vous souhaitez annuler l’abonnement de la session, annuler la facture d’abonnement ou marquer la facture comme irrécouvrable.

### Gérer les abonnement impayés

Si le client ne paie pas une facture d’abonnement, Stripe suspend les tentatives de recouvrement ultérieures. L’abonnement continue de générer des factures à chaque période de facturation, qui conservent l’état `draft`. L’état de l’abonnement (`past_due` ou `unpaid`) dépend de vos [paramètres d’échec de paiement](https://dashboard.stripe.com/settings/billing/automatic#manage-failed-payments) dans le Dashboard.

Les factures annulées n’ont aucune incidence sur le statut de l’abonnement. Selon vos paramètres de gestion des échecs de paiement, Stripe détermine le statut à partir de la facture non annulée la plus récente ou de l’ensemble des factures impayées concernées. Pour en savoir plus, consultez [Configurer la détermination du statut des abonnements](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-status-resolution) et [Échec des paiements d’abonnements](https://docs.stripe.com/billing/collection-method.md#failed-subscription-payments).

### Annuler l’abonnement

Vous pouvez [résilier](https://docs.stripe.com/billing/subscriptions/cancel.md) un abonnement à tout moment, y compris à la [fin d’un cycle de facturation](https://docs.stripe.com/billing/subscriptions/cancel.md#cancel-at-the-end-of-the-current-billing-period) ou après un [nombre défini de cycles de facturation](https://docs.stripe.com/billing/subscriptions/cancel.md#subscription-schedules).

Par défaut, l’annulation d’un abonnement désactive la création de nouvelles factures et [arrête le recouvrement automatique](https://docs.stripe.com/billing/subscriptions/cancel.md#handle-invoice-items-when-canceling-subscriptions) de toutes les factures en souffrance de l’abonnement. Elle supprime également l’abonnement et vous ne pouvez plus le mettre à jour, à l’exception de ses [metadata](https://docs.stripe.com/metadata.md) et `cancellation_details`. Si votre client souhaite se réabonner, vous devez recueillir de nouvelles informations de paiement auprès de lui et créer un nouvel abonnement.

## États des abonnements

Subscriptions peuvent avoir les états suivants. Les actions que vous pouvez effectuer sur un abonnement dépendent de son état.

| État | Description |
| --- | --- |
| `trialing` | L’abonnement est actuellement en période d’essai et vous pouvez fournir votre produit à votre client en toute sécurité. L’abonnement passe automatiquement à l’état `active` lorsqu’un client effectue son premier paiement. |
| `active` | L’abonnement est en règle. Vos [paramètres d’abonnement](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments) déterminent les factures qui doivent être réglées pour faire passer un abonnement du statut `past_due` à `active`. Lorsque la résolution du statut s’appuie sur la facture la plus récente, Stripe utilise la facture non annulée la plus récente pour déterminer le statut de l’abonnement. Le règlement de cette facture ou son marquage manuel comme irrécouvrable fait passer l’abonnement au statut `active`. Lorsque la résolution du statut s’appuie sur l’ensemble des factures, vous devez régler toutes les factures impayées applicables pour faire passer l’abonnement au statut `active`.

`active` n’indique pas nécessairement que toutes les factures impayées associées à l’abonnement ont été payées. Lorsque la résolution de l’état utilise la facture la plus récente, vous pouvez laisser d’autres factures impayées ouvertes au paiement, les marquer comme irrécouvrables ou les annuler comme bon vous semble. |
| `incomplete` | Le client doit effectuer un paiement dans les 23&nbsp;heures suivant la création de l’abonnement pour l’activer. Ou une [action est requise](https://docs.stripe.com/billing/subscriptions/overview.md#requires-action) pour le paiement, telle que l’authentification du client. Les abonnements peuvent également être à l’état `incomplete` si un paiement est en attente et que l’état du PaymentIntent est défini sur `processing`. |
| `incomplete_expired` | Le paiement initial de l’abonnement a échoué et le client n’a pas effectué de paiement dans les 23&nbsp;heures suivant la création de l’abonnement. Ces abonnements ne facturent pas les clients. Cet état vous permet de suivre les clients qui n’ont pas réussi à activer leur abonnement. |
| `past_due` | Le paiement de la dernière facture finalisée a échoué ou n’a pas été tenté. Lorsque la résolution du statut prend en compte l’ensemble des factures, le statut `past_due` peut également indiquer qu’une facture applicable plus ancienne reste impayée. L’abonnement continue de générer des factures. Stripe peut réinventer des tentatives de paiement pendant que l’abonnement est `past_due`, mais ce statut ne garantit pas qu’une nouvelle tentative aura lieu. Les [paramètres d’abonnement](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments) de votre Dashboard déterminent le statut suivant de l’abonnement. Si une facture reste impayée après toutes les [relances de paiement](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md), vous pouvez configurer l’abonnement pour qu’il passe à `canceled` ou `unpaid`, ou qu’il demeure `past_due`.

Pour réactiver l’abonnement, payez la facture non annulée la plus récente ou marquez-la manuellement comme irrécouvrable lorsque la résolution de l’état utilise la facture la plus récente, ou réglez les factures impayées applicables lorsque la résolution du statut utilise toutes les factures. L’abonnement devient `active` indépendamment du fait que vous régliez les factures exigées avant ou après leur date d’échéance. |
| `canceled` | L’abonnement a été annulé. Lors de l’annulation, l’encaissement automatique de toutes les factures impayées est désactivé (`auto_advance=false`). Cet état est définitif et ne peut pas être mis à jour. |
| `unpaid` | Stripe fait passer le statut d’un abonnement à `unpaid` uniquement si vos [paramètres d’abonnement](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments) dans le Dashboard sélectionnent ce résultat. La ou les factures régissant le statut de l’abonnement n’ont pas été réglées, mais l’abonnement reste en place. L’abonnement continue de générer des factures, mais ne tente aucun paiement. Révoquez l’accès à votre produit lorsque l’abonnement est au statut `unpaid`, car Stripe a déjà tenté et renouvelé les essais de paiement pendant que l’abonnement était au statut `past_due`. Pour faire passer l’abonnement au statut `active`, réglez la facture non annulée la plus récente ou marquez-la manuellement comme irrécouvrable lorsque la résolution du statut s’appuie sur la facture la plus récente, ou réglez les factures impayées applicables lorsque la résolution du statut s’appuie sur l’ensemble des factures. |
| `paused` | L’abonnement a terminé sa période d’essai sans moyen de paiement par défaut et le paramètre [trial_settings.end_behavior.missing_payment_method](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#create-free-trials-without-payment) est défini sur `pause`. Les factures ne sont plus créées pour l’abonnement. Après avoir associé un moyen de paiement par défaut au client, vous pouvez [reprendre l’abonnement](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#resume-a-paused-subscription). |

### Configurer la résolution de l’état de l’abonnement

Dans vos [paramètres d’abonnement](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments), choisissez les factures que Stripe utilise pour déterminer l’état de l’abonnement&nbsp;:

- **Dernière facture**&nbsp;: il s’agit du comportement par défaut. Stripe utilise la dernière facture non annulée. Les autres factures impayées n’empêchent pas l’abonnement de devenir `active`.
- **Toutes les factures**&nbsp;: Stripe empêche l’abonnement de devenir `active` tant qu’il reste une facture impayée applicable.

Lorsque vous utilisez toutes les factures pour la résolution d’état&nbsp;:

- Un abonnement `active` passe à l’état `past_due` si Stripe trouve une facture impayée applicable.
- Un abonnement `past_due` ne repasse à l’état `active` qu’une fois que vous avez réglé les factures impayées concernées. Vos paramètres de gestion des échecs de paiement continuent de déterminer s’il passe à l’état `canceled` ou `unpaid` une fois toutes les nouvelles tentatives effectuées.
- Un abonnement `unpaid` reste `unpaid` jusqu’à ce que vous régliez les factures impayées applicables.
- Un abonnement `paused` qui reprend passe à l’état `past_due` si sa facture de reprise est réglée mais qu’une autre facture applicable reste impayée.

Stripe considère une facture comme impayée et applicable lorsqu’elle est finalisée, qu’un paiement est dû et qu’elle n’est pas réglée. Pour régler une facture, payez-la, annulez-la ou marquez-la manuellement comme irrécouvrable. Une facture que Stripe marque comme irrécouvrable après la fin des tentatives de paiement reste impayée. Stripe vérifie les factures applicables des 37&nbsp;derniers mois.

Pour identifier les factures bloquantes, [répertoriez les factures de l’abonnement](https://docs.stripe.com/api/invoices/list.md) dont le statut est `open` ou `uncollectible`. Une facture irrécouvrable reste impayée uniquement lorsque son motif est `max_payment_attempts` ou `payment_not_received`. Les autres motifs, tels que `user_forgiven`, n’empêchent pas l’abonnement de devenir actif. Pour identifier le cas qui s’applique, vérifiez le [motif d’irrécouvrabilité](https://docs.stripe.com/api/invoices/object.md#invoice_object-status_details-uncollectible-reason).

La modification de ce paramètre n’entraîne pas la réévaluation immédiate des abonnements existants. La modification prend effet la prochaine fois que Stripe évalue l’état de l’abonnement, par exemple après le paiement ou l’échec de paiement d’une facture. Le paramètre modifie uniquement la résolution de l’état&nbsp;; il ne modifie pas votre calendrier de tentatives ni les actions finales en cas d’échec.

## États des paiements

Une [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md) suit le cycle de vie de chaque paiement. Lorsqu’un paiement est dû pour un abonnement, Stripe génère une [facture](https://docs.stripe.com/billing/invoices/subscription.md) et une PaymentIntent. L’ID de la PaymentIntent est associé à la facture et vous pouvez y accéder à partir des objets Invoice et Subscription.

L’état du PaymentIntent affecte l’état de la facture et de l’abonnement. Voici comment les différents résultats d’un paiement correspondent aux différents états&nbsp;:

| Résultat du paiement | État du PaymentIntent | État de la facture | État de l’abonnement |
| --- | --- | --- | --- |
| Opération réussie | `succeeded` | `paid` | `active`, si la ou les factures qui régissent le statut de l’abonnement sont réglées&nbsp;; sinon, le statut `past_due` ou `unpaid` existant |
| Échecs dus à une erreur de carte bancaire | `requires_payment_method` | `open` | `incomplete` |
| Échecs d’authentification | `requires_action` | `open` | `incomplete` |

### Moyens de paiement avec confirmation de paiement différée

Les moyens de paiement qui ne peuvent pas renvoyer immédiatement l’état du paiement lorsqu’un client tente une transaction (par exemple, ACH Direct Debit) gèrent les changements d’état des abonnements différemment. Lorsque vous utilisez ces types de moyens de paiement, un abonnement peut passer directement à l’état `active` après sa création, sans passer par l’état `incomplete`. Si le paiement échoue par la suite, Stripe annule la facture, mais l’abonnement conserve l’état `active`. Tenez compte de ce comportement lors de la conception de votre contrôle d’accès et de votre logique de nouvelle tentative.

Les sections suivantes décrivent les résultats du paiement initial lors de la création d’un abonnement nécessitant un paiement immédiat. Pour les échecs de paiement sur les factures ultérieures, consultez [Gérer les échecs de paiements récurrents](https://docs.stripe.com/billing/subscriptions/overview.md#failed-recurring-payments).

### Paiement initial réussi

Lorsque le paiement initial de l’abonnement du client réussit&nbsp;:

- Le `status` du PaymentIntent passe à `succeeded`.
- Le `status` de la facture est `paid`.
- Stripe détermine le statut de l’abonnement en fonction de vos [paramètres d’abonnement](https://dashboard.stripe.com/settings/billing/subscriptions#manage-failed-payments). L’abonnement devient `active` lorsque la ou les factures qui régissent son statut sont réglées.
- Stripe envoie un événement `invoice.paid` aux endpoints de webhook que vous avez configurés.

Pour les [moyens de paiement](https://docs.stripe.com/payments/payment-methods/integration-options.md) dont la période de traiter est plus longue, les Subscriptions sont immédiatement activées. Dans ce cas, l’état de la PaymentIntent peut être `processing` pour un abonnement `active` jusqu’à ce que le paiement aboutisse.

Une fois l’abonnement activé, [fournissez l’accès](https://docs.stripe.com/billing/subscriptions/overview.md#provision-access) à votre produit.

### Le paiement initial nécessite un moyen de paiement

Si le paiement initial échoue en raison d’une [erreur de carte bancaire](https://docs.stripe.com/api/errors.md#errors-card_error) telle qu’un [refus de paiement](https://docs.stripe.com/declines.md#issuer-declines)&nbsp;:

- Le `status` de la PaymentIntent est `requires_payment_method`.
- Le `status` de l’abonnement est `incomplet`.
- Le `status` de la facture est `open`.

Dans un tel scénario&nbsp;:

- Prévenez votre client.
- Collecter de nouvelles informations 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.
- Stripe effectue une nouvelle tentative de paiement à l’aide de [Smart Retries](https://docs.stripe.com/invoicing/automatic-collection.md#smart-retries) ou établi vos [règles de relance](https://dashboard.stripe.com/account/billing/automatic) personnalisées.
- Utilisez l’événement [invoice.payment_failed](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md#invoice-payment-failed-webhook) pour surveiller les échecs de paiement des abonnements et relancer les mises à jour des tentatives. Après une tentative de paiement sur une facture, sa valeur [next_payment_attempt](https://docs.stripe.com/api.md#invoice_object-next_payment_attempt) est définie à l’aide des paramètres d’abonnement actuels dans votre Dashboard.

Découvrez comment [gérer les échecs de paiement dans le cadre d’un abonnement](https://docs.stripe.com/billing/subscriptions/webhooks.md#payment-failures).

### Gérer les échecs de paiements récurrents

Lorsqu’un paiement d’abonnement récurrent échoue, écoutez l’événement `invoice.payment_failed`. [Surveillez les modifications d’état de l’abonnement](https://docs.stripe.com/billing/subscriptions/webhooks.md#state-changes) pour détecter les passages à l’état `past_due` ou `unpaid`. Informez le client afin qu’il puisse mettre à jour son moyen de paiement ou régler la facture en attente. [Vérifiez les signatures de webhook](https://docs.stripe.com/webhooks.md#verify-events) avant de traiter les événements.

Configurez [la fonction de relance intelligente Smart Retries ou des règles de relance personnalisées](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md) pour relancer les paiements échoués. Dans vos [paramètres d’échec de paiement](https://dashboard.stripe.com/settings/billing/automatic), choisissez ce qui arrive à l’abonnement après la dernière tentative de relance. Utilisez le [tableau des états d’abonnement](https://docs.stripe.com/billing/subscriptions/overview.md#subscription-statuses) pour déterminer quand révoquer l’accès et comment réactiver les abonnements `past_due` et `unpaid`. Consultez la section [Échecs des paiements récurrents](https://docs.stripe.com/billing/collection-method.md#handle-recurring-charge-failures) pour plus de détails.

### Action requise

Certains moyens de paiement nécessitent l’authentification du client avec [3D Secure](https://docs.stripe.com/payments/3d-secure.md) (3DS). La nécessité de l’authentification dépend de vos [règles Radar](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#three-ds-radar) et de la banque émettrice de la carte bancaire.

Si le paiement échoue parce que le client doit s’identifier un paiement&nbsp;:

- Le `status` de la PaymentIntent est `requires_action`.
- Le `status` de l’abonnement est `incomplet`.
- Le `status` de la facture est `open`.

Dans un tel scénario&nbsp;:

- Surveillez la notification d’événement `invoice.payment_action_required` à l’aide des [endpoints de webhook](https://docs.stripe.com/billing/subscriptions/webhooks.md). Cela indique qu’une authentification est requise.
- Informez votre client qu’il doit s’identifier. Récupérez la clé secrète du client du PaymentIntent et transmettez-la à [stripe.handleNextAction](https://docs.stripe.com/js/payment_intents/handle_next_action). Cette méthode guide le client à travers les étapes nécessaires et renvoie le résultat à votre application.
- Surveillez l’événement `invoice.paid` sur votre destination d’événements pour vérifier que le paiement a réussi. Avant de fournir votre produit, confirmez que l’abonnement est `active` ou que le client dispose de droits actifs.

## See also

- [Concevoir une intégration d’abonnements](https://docs.stripe.com/billing/subscriptions/design-an-integration.md)
- [Créer une intégration d’abonnements](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md)
- [Abonnement quickstart](https://docs.stripe.com/billing/quickstart.md)
