# Suspendre des abonnements Découvrez comment suspendre des abonnements afin d’interrompre à la fois la fourniture du service et la génération de factures. La suspension d’un abonnement vous permet de suspendre temporairement à la fois la fourniture du service et la génération des factures. Cette fonctionnalité facilite la gestion de scénarios telles que des vacances, une période d’inactivité temporaire ou un geste commercial destiné à limiter l’attrition. Pour utiliser l’endpoint Suspendre l’abonnement, l’abonnement doit utiliser le [mode de facturation flexible](https://docs.stripe.com/billing/subscriptions/billing-mode.md). D’autres comportements de suspension similaires sont actuellement pris en charge pour un abonnement : - [Suspendre la collecte des paiements](https://docs.stripe.com/billing/subscriptions/pause-payment.md) : la fourniture du service et la génération des factures se poursuivent, mais l’encaissement des factures est suspendu. - [Suspendre la fin de la période d’essai gratuit sans moyen de paiement](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#create-free-trials-without-payment) : la suspension à la fin de la période d’essai se rapproche d’une véritable suspension, mais elle ne s’applique qu’à un scénario spécifique déclenché par le système. La possibilité de suspendre des abonnements est particulièrement utile pour : - les équipes commerciales souhaitant garder le contrôle via l’API sur le cycle de vie des abonnements sans les annuler ; - les ingénieurs back-end qui conçoivent des parcours de rétention ou des outils de support nécessitant un véritable état de suspension ; - les développeurs qui testent facturation, la révocation des droits d’accès et la gestion des webhooks pendant une période de suspension. ## Suspendre des abonnements Vous pouvez suspendre des abonnements avec le Pause subscription endpoint. La suspension prend effet immédiatement. Après la suspension d’un abonnement : - l’état de l’abonnement passe à `paused` ; - vous recevez une notification via les webhooks [customer.subscription.paused](https://docs.stripe.com/api/events/types.md#event_types-customer.subscription.paused), [customer.subscription.updated](https://docs.stripe.com/api/events/types.md#event_types-customer.subscription.updated) et [entitlements.active_entitlement_summary.updated](https://docs.stripe.com/api/events/types.md#event_types-entitlements.active_entitlement_summary.updated), ce qui vous permet d’adapter la fourniture du service en conséquence ; - la génération de factures est suspendue pendant toute la durée de la pause, tandis que les factures déjà émises suivent leur cycle habituel sans modifier l’état suspendu ; - la valeur [current_period_end](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items-data-current_period_end) est mise à jour à la date et à l’heure de la suspension. - Vous pouvez utiliser le paramètre `bill_for` pour définir le comportement de facturation au moment de la suspension, notamment en générant des avoirs au prorata pour la période sous licence non utilisée et des débits pour la consommation effective sur la période en cours. Vous pouvez émettre la facture immédiatement ou créer des postes de facture en attente. Vous ne pouvez pas suspendre un abonnement s’il : - Utilise le mode de recouvrement [send_invoice](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-collection_method) - utilise le mode de facturation [classique](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-billing_mode-type) ; - est en période d’essai, bénéficie d’une offre d’essai associée ou a été annulé ; - dispose d’une [planification](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md) associée ; - dispose d’une [cadence](https://docs.stripe.com/api/v2/billing-cadences.md?api-version=preview) associée. De même, vous ne pouvez pas associer une planification ou une cadence à un abonnement suspendu. Si vous suspendez un abonnement qui utilise un bon de réduction, celui-ci conserve sa validité initiale et la suspension n’en prolonge pas la durée. Cet exemple montre comment utiliser l’API pour suspendre immédiatement un abonnement actif : ```curl curl https://api.stripe.com/v1/subscriptions/sub_1234567890/pause \ -u "<>:" \ -H "Stripe-Version: preview" \ -d type=subscription \ -d "bill_for[unused_time_from][type]=now" \ -d "bill_for[outstanding_usage_through][type]=now" \ -d invoicing_behavior=pending_invoice_item ``` Le portail client indique qu’un abonnement est suspendu, mais vos abonnés ne peuvent pas l’utiliser pour suspendre eux-mêmes des abonnements. ## Reprendre les abonnements Vous devez reprendre l’abonnement manuellement via l’[API](https://docs.stripe.com/api/subscriptions/resume.md?api-version=preview). La reprise est uniquement disponible pour les abonnements configurés avec le mode de recouvrement [charge_automatically](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-collection_method). Si la reprise ne génère pas de facture, l’état de l’abonnement passe immédiatement à `active`. Si une facture est générée, Stripe la finalise immédiatement, sans tenter le paiement dans la requête. Vous devez déclencher le paiement manuellement à l’aide du [Pay invoice endpoint](https://docs.stripe.com/api/invoices/pay.md). - Si le paiement aboutit, l’état de l’abonnement passe à `active`. - Si le paiement échoue, l’état de l’abonnement passe à `past_due`. - Si vous ne tentez pas le paiement dans un délai de 23 heures, la facture est annulée et le statut de l’abonnement reste `paused`. Après que l’état d’un abonnement passe à `actif` : - la facturation reprend ; - la date de début du cycle de facturation peut être réinitialisée ; - vous recevez une notification via les webhooks [customer.subscription.resumed](https://docs.stripe.com/api/events/types.md#event_types-customer.subscription.resumed), [customer.subscription.updated](https://docs.stripe.com/api/events/types.md#event_types-customer.subscription.updated) et [entitlements.active_entitlement_summary.updated](https://docs.stripe.com/api/events/types.md#event_types-entitlements.active_entitlement_summary.updated), ce qui vous permet de réactiver la fourniture du service en conséquence. Cet exemple montre comment reprendre immédiatement un abonnement suspendu à l’aide de l’API : ```curl curl https://api.stripe.com/v1/subscriptions/sub_1234567890/resume \ -u "<>:" \ -H "Stripe-Version: preview" \ -d billing_cycle_anchor=unchanged \ -d proration_behavior=create_prorations ``` ## Identifier les événements de suspension et de reprise Stripe envoie les événements suivants pour les abonnements suspendues et reprises. | Événement | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | | [customer.subscription.paused](https://docs.stripe.com/api/events/types.md?api-version=preview#event_types-customer.subscription.paused) | Émis lorsqu’un abonnement est suspendu. | | [customer.subscription.resumed](https://docs.stripe.com/api/events/types.md?api-version=preview#event_types-customer.subscription.resumed) | Émis lorsqu’un abonnement reprend. | | [customer.subscription.updated](https://docs.stripe.com/api/events/types.md?api-version=preview#event_types-customer.subscription.updated) | Émis lorsqu’un abonnement est suspendu ou reprend. | | [entitlements.active_entitlement_summary.updated](https://docs.stripe.com/api/events/types.md?api-version=preview#event_types-entitlements.active_entitlement_summary.updated) | Émis lorsque les droits changent à la suite d’une suspension ou d’une reprise. | Exemple de charge utile de webhook pour `customer.subscription.paused` (principaux champs affichés) : ```json { "id": "evt_1SrpXjRnJ89Z4rKkFxe9waAz", "object": "event", ... "data": { "object": { "id": "sub_1SrpWtRnJ89Z4rKknfSwXkBc", "object": "subscription", ... "latest_invoice": "in_1SrpWtRnJ89Z4rKkzYBCF1MY", ... "status": "paused", ... } }, ... "type": "customer.subscription.paused" } ```