# Fonctionnement des abonnements

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

Les abonnements permettent à vos clients d’accéder à un produit via des paiements récurrents. Contrairement aux transactions ponctuelles, ils nécessitent la conservation d’informations client pour les prélèvements ultérieurs. Les solutions de Stripe facilitent la gestion complète de la facturation des abonnements.

- [Prise en charge de différents modèles tarifaires](https://docs.stripe.com/products-prices/pricing-models.md)
- [Gestion des réductions sur les abonnements](https://docs.stripe.com/billing/Subscriptions/coupons.md)
- [Gestion des essais](https://docs.stripe.com/billing/Subscriptions/trials.md)
- [Calculs au prorata pour les abonnements modifiés](https://docs.stripe.com/billing/Subscriptions/prorations.md)
- [Gestion des clients en libre-service](https://docs.stripe.com/customer-management.md)
- [Invoicing pour collecter les paiements](https://docs.stripe.com/billing/invoices/subscription.md)
- [Recouvrement automatisé des revenus](https://docs.stripe.com/billing/revenue-recovery.md)
- [Rapports et analyses](https://docs.stripe.com/billing/Subscriptions/analytics.md)

## Le cycle de vie de l’abonnement

Les sections suivantes décrivent le cycle de vie recommandé des abonnements dans Stripe.

### Créer l’abonnement

Vous pouvez créer un nouvel abonnement dans le [Dashboard](https://dashboard.stripe.com/subscriptions?status=active) ou à l’aide de l’[API](https://docs.stripe.com/api/subscriptions/create.md). Chaque fois que vous créez un abonnement, cela déclenche un [événement](https://docs.stripe.com/billing/subscriptions/webhooks.md#events). Écoutez ces événements à l’aide des [endpoints webhook](https://docs.stripe.com/billing/subscriptions/webhooks.md) et assurez-vous que votre intégration les gère correctement.

Vous pouvez également créer une [période d’essai](https://docs.stripe.com/billing/subscriptions/trials.md) qui ne nécessite pas de paiement pour l’abonnement. Dans ce cas, le `status` correspond à `trialing`. Une fois la période d’essai terminée, l’abonnement passe à l’état de `active` et Stripe facture le client abonné.

#### Comportement de paiement

Définissez le paramètre `payment_behavior` d’un abonnement sur [default_incomplete](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) pour faciliter la gestion des échecs de paiement et des tunnels de paiement complexes comme 3DS. Ainsi, si un paiement est requis, des abonnements à l’état `incomplete` sont créés, ce qui vous permet de collecter et de confirmer ultérieurement les informations de paiement afin d’activer l’abonnement.

Lorsque vous définissez le paramètre `payment_behavior` sur&nbsp;:

- `allow_incomplete`&nbsp;: Stripe tente immédiatement de collecter le paiement sur la facture. Si le paiement échoue, l’état de l’abonnement passe à `incomplete`.
- `error_if_incomplete`&nbsp;: si le paiement échoue, la création de l’abonnement échoue complètement.

Les abonnements que vous créez dans le Dashboard sont configurés par défaut avec le comportement de paiement approprié en fonction du moyen de paiement.

### Gérer la facture

Lors de la création d’un abonnement, Stripe crée automatiquement une [facture](https://docs.stripe.com/billing/invoices/subscription.md) avec le statut `open`. Le client dispose d’environ 23&nbsp;heures pour finaliser le paiement. Durant cette période, l’abonnement est à l’état `incomplete` et l’état de la facture reste `open`.

La fenêtre de 23&nbsp;heures s’explique par le fait que votre client effectue généralement le premier paiement d’un abonnement *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 revient dans l’application après 23&nbsp;heures, il est recommandé de créer un nouvel abonnement.

### Le client paie

Si votre client paie la facture, l’abonnement bascule sur `active` et la facture sur `paid`. S’il n’effectue pas de paiement, l’abonnement bascule sur `incomplete_expired` et la facture est `canceled`.

Pour confirmer si la facture a été payée&nbsp;:

- Configurez un endpoint webhook ou un autre type de destination d’événement et écoutez l’événement `invoice.paid`.
- Vérifiez manuellement l’objet abonnement et recherchez l’état `subscription.status=active`. Le `status` devient `active` suite au paiement de la facture via un prélèvement automatique ou un paiement manuel de la part du client.

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

Lorsque vous créez un abonnement pour un client, cela crée un [droit](https://docs.stripe.com/billing/entitlements.md) actif pour chaque fonctionnalité associée à ce produit. Lorsqu’un client accède à vos services, utilisez ses droits 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.

Vous pouvez écouter les [événements d’abonnement](https://docs.stripe.com/billing/subscriptions/webhooks.md#events) avec des [endpoints de webhook](https://docs.stripe.com/billing/subscriptions/webhooks.md) pour modifier l’abonnement. Par exemple, vous pouvez envoyer un e-mail à un client en cas d’échec de paiement ou révoquer l’accès d’un client lorsqu’il annule son abonnement.

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.

### Mettre à jour la première facture

Vous pouvez mettre à jour la première facture d’un abonnement si la [collection_method](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-collection_method) est `send_invoice`. Une fois la facture créée, vous disposez d’une heure pour mettre à jour les montants, les postes, la description, les métadonnées, etc. Vous ne pouvez pas mettre à jour la facture une fois qu’elle a été finalisée et envoyée au client pour paiement.

La première facture d’un abonnement dont le paramètre `collection_method` est défini sur `charge_automatically` est finalisée et facturée immédiatement. Vous ne pouvez pas mettre à jour la première facture avant qu’elle ne soit finalisée, mais vous pouvez mettre à jour les factures suivantes pour les renouvellements d’abonnement.

Vous ne pouvez pas non plus mettre à jour la première facture pour planifier l’abonnement. La première facture est toujours ouverte, quelle que soit la méthode d’encaissement.

### Gérer les abonnement impayés

Pour les abonnements avec des factures impayées, celles-ci restent ouvertes mais les tentatives de paiement ultérieures sont interrompues. L’abonnement continue de générer des factures à chaque période de facturation, lesquelles conservent l’état `draft`. Pour réactiver l’abonnement&nbsp;:

1. Collectez de nouvelles informations de paiement si nécessaire.
1. Activez la collecte automatique en configurant [auto_advance](https://docs.stripe.com/api/invoices/update.md#update_invoice-auto_advance) sur `true` pour les factures à l’état de projet.
1. [Finalisez](https://docs.stripe.com/api/invoices/finalize.md) et payez les factures en cours. Le paiement de la dernière facture non annulée avant sa date d’échéance met à jour l’état de l’abonnement sur `active`.

Les factures marquées comme irrécouvrables gardent l’abonnement sous-jacent `active`. Stripe ignore les factures annulées lors de la détermination de l’état de l’abonnement et utilise plutôt la facture non annulée la plus récente.

Le `status` de l’abonnement impayé dépend de vos [paramètres d’échec](https://dashboard.stripe.com/settings/billing/automatic) de paiement dans le Dashboard.

### 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, annuler un abonnement empêche la création de nouvelles factures et [arrête la collecte automatique](https://docs.stripe.com/billing/subscriptions/cancel.md#handle-invoice-items-when-canceling-subscriptions) de toutes les factures impayées liées à l’abonnement. L’abonnement est également supprimé, et il n’est plus possible de le mettre à jour ni d’accéder à ses [métadonnées](https://docs.stripe.com/metadata.md). Si votre client souhaite se réabonner, vous devez collecter de nouvelles informations de paiement 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. Pour les abonnements `past_due`, le paiement de la dernière facture associée ou sa mise en impayé fait passer l’abonnement à l’état `active`. Notez que `active` n’indique pas que toutes les factures en cours ont été réglées. Vous pouvez laisser d’autres factures ouvertes, les mettre en impayé ou les annuler.                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `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é. L’abonnement continue de générer des factures. Les [paramètres d’abonnement](https://dashboard.stripe.com/settings/billing/automatic) de votre Dashboard déterminent le prochain état de l’abonnement. Si la facture reste impayée après toutes les tentatives de [relances intelligentes](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md), vous pouvez configurer l’abonnement pour qu’il passe à `canceled`, `unpaid` ou reste à `past_due`. Pour réactiver l’abonnement, demandez à votre client de régler la facture la plus récente. L’état de l’abonnement devient `active`, que le paiement soit effectué avant ou après la date d’échéance de la dernière facture. |
| `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`             | La dernière facture n’a pas été réglée, mais l’abonnement reste actif. La dernière facture reste ouverte et les factures continuent d’être générées, mais aucune tentative de paiement n’est effectuée. Révoquez l’accès à votre produit lorsque l’abonnement passe à l’état `unpaid`, car des tentatives de paiement ont déjà été effectués à plusieurs reprises lorsque qu’il était à l’état `past_due`. Pour passer l’abonnement à l’état `active`, la facture la plus récente doit être réglée avant sa date d’échéance.                                                                                                                                                                                                                                                |
| `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).                                                                                                                                                                                                                                 |

## É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`             |
| Échecs dus à une erreur de carte bancaire | `requires_payment_method` | `open`             | `incomplete`         |
| Échecs d’authentification                 | `requires_action`         | `open`             | `incomplete`         |

Les moyens de paiement asynchrones, comme le prélèvement automatique ACH Direct Debit, traitent les changements d’état des abonnements différemment des paiements instantanés. Avec un moyen de paiement asynchrone, un abonnement peut passer à l’état `active` immédiatement après sa création sans passer par l’état `incomplete`. En cas d’échec de paiement ultérieur, Stripe invalide la facture, tandis que l’abonnement reste à l’état `active`. Adaptez votre gestion des accès et votre logique de relance en fonction de ce fonctionnement.

Les sections suivantes expliquent ces différents états et précisent les actions à mettre en œuvre pour chacun d’entre eux.

### Paiement réussi

Lorsque le paiement du client aboutit&nbsp;:

- Le `status` du PaymentIntent passe à `succeeded`.
- Le `status` de l’abonnement est `active`.
- Le `status` de la facture est `paid`.
- 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.

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

### Moyen de paiement requis

Si le paiement é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).

### Action requise

Certains moyens de paiement nécessitent une authentification du client avec [3D Secure](https://docs.stripe.com/payments/3d-secure.md) (3DS) pour finaliser le processus de paiement. 3DS finalise le processus d’authentification. La question de savoir si un moyen de paiement nécessite une 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.
- Avertissez votre client qu’une authentification est requise.
- Récupérez la clé secrète du client pour le PaymentIntent et transmettez-la dans un appel à [stripe.ConfirmCardPayment](https://docs.stripe.com/js/payment_intents/confirm_card_payment). Cette action entraîne la présentation d’une fenêtre modale d’authentification à vos clients, une tentative de paiement, puis la fermeture de la fenêtre modale et le renvoi du contexte à votre formulaire d’inscription.
- Surveillez l’événement `invoice.paid` sur votre destination d’événement pour vérifier que le paiement a abouti. Les utilisateurs peuvent quitter votre application avant que la fonction `confirmCardPayment()` ne se termine. Le fait de vérifier que le paiement a abouti vous permet de fournir l’accès à votre produit de manière adéquate.

## See also

- [Concevoir une intégration d’abonnements](https://docs.stripe.com/billing/subscriptions/design-an-integration.md)
- [Abonnement quickstart](https://docs.stripe.com/billing/quickstart.md)
- [Exemple&nbsp;: abonnement avec tarif fixe](https://github.com/stripe-samples/subscription-use-cases/tree/main/fixed-price-subscriptions)
