# Définir la date de renouvellement de la facturation de l'abonnement Les abonnements étant facturés selon un cycle, il est important de savoir en définir la date de facturation. If your integration uses [customer-configured Accounts](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer), replace `Customer` and event references in the code examples with the equivalent Accounts v2 API references. For more information, see [Represent customers with Account objects](https://docs.stripe.com/connect/use-accounts-as-customers.md). La période de facturation d’un abonnement dépend de deux facteurs : - L’intervalle récurrent de son [tarif](https://docs.stripe.com/products-prices/overview.md) ou de ses tarifs (mensuel, annuel, hebdomadaire, etc.). - L’[ancre du cycle de facturation](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-billing_cycle_anchor) est le point de référence qui aligne les dates des futures périodes de facturation. Elle définit le jour de la semaine pour les intervalles de type `week`, le jour du mois pour les intervalles de type `month` et `year`, et le mois de l’année pour les intervalles de type `year`. La valeur par défaut est soit la date de création de l’abonnement, soit la date de fin de la période d’essai (si vous utilisez une période d’essai). Vous pouvez également définir explicitement cette valeur au moment de la création de l’abonnement. > La date d’ancrage du cycle de facturation correspond à un horodatage UNIX exprimé en secondes à compter de la date initiale (epoch) du système. Voici des exemples d’abonnements mensuels avec différentes périodes de facturation : - Un abonnement mensuel dont la date de début du cycle de facturation est le 2 septembre est toujours facturé le 2e jour du mois. - Un abonnement mensuel dont la date de début du cycle de facturation est fixée au 31 janvier est facturé au dernier jour du mois le plus proche de la date de début, c’est-à-dire le 28 février (ou le 29 février les années bissextiles), puis le 31 mars, le 30 avril, etc. - Un abonnement hebdomadaire dont la date de début du cycle de facturation est le vendredi 3 juin est ensuite facturé tous les vendredis. Les périodes de facturation complètes commencent à la date de la première *facture* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice) calculée sur une période complète, qui est souvent identique à la date de début du cycle de facturation, et dont l’intervalle est toujours aligné sur celle-ci. ## Spécifier la date de début du cycle de facturation pour les nouveaux abonnements > L’heure de création de l’abonnement correspond à l’heure de la requête. Elle n’est pas identique à la date de début de l’abonnement. En savoir plus sur [l’antidatage et les dates de début des cycles de facturation](https://docs.stripe.com/billing/subscriptions/backdating.md#backdating-billing-cycle). Il existe deux manières de définir la date de début du cycle de facturation pour les nouveaux abonnements : - Utilisez le paramètre `billing_cycle_anchor_config` pour calculer votre horodatage (abonnements mensuels ou annuels uniquement). - Utilisez le paramètre `billing_cycle_anchor` pour accepter directement l’horodatage. Si vous créez un abonnement mensuel ou annuel, nous vous recommandons d’utiliser le paramètre `billing_cycle_anchor_config`, car il prend automatiquement en compte les mois courts et les années bissextiles. Si vous créez un abonnement quotidien ou hebdomadaire, ou si vous préférez définir la date de renouvellement de votre abonnement à l’aide d’un horodatage, utilisez directement le paramètre `billing_cycle_anchor`. ### Utiliser billing_cycle_anchor_config Pour créer une intégration avec abonnements mensuels ou annuels, utilisez `billing_cycle_anchor_config` à la [création des abonnements](https://docs.stripe.com/api.md#create_subscription) pour spécifier le jour du mois auquel débute le cycle de facturation. Définissez `day_of_month` sur `31` pour créer un abonnement mensuel qui se renouvelle à la fin du mois, même pour les mois comptant moins de 31 jours. Si un mois compte moins de 31 jours, l’abonnement est renouvelé le dernier jour de ce mois. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d "billing_cycle_anchor_config[day_of_month]=31" ``` Vous pouvez également spécifier l’attribut `month` afin de contrôler le mois de début du cycle de facturation pour les abonnements annuels ou durant plusieurs mois. Pour fixer la date de début du cycle de facturation d’un abonnement annuel au 1er juillet, créez un abonnement annuel en configurant l’attribut `month` sur `7` et l’attribut `day_of_month` sur `1`. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d "billing_cycle_anchor_config[month]=7" \ -d "billing_cycle_anchor_config[day_of_month]=1" ``` Vous pouvez spécifier le mois, le jour, l’heure, la minute et la seconde exacts pour la date de début du cycle de facturation à l’aide de l’option `billing_cycle_anchor_config`. Si vous n’indiquez pas l’heure, la minute et la seconde, les valeurs par défaut utilisées sont celles de l’heure de création de l’abonnement. La date de début du cycle de facturation est exprimée en temps universel coordonné (UTC). Par exemple, si vous créez un abonnement en définissant `billing_cycle_anchor_config` sur 17 h (EST) sans spécifier l’heure, l’heure est enregistrée dans le système à 22 h UTC. `billing_cycle_anchor_config` ne service de support pas de définir une date antidatée comme date de début du cycle de facturation. Par exemple, si vous avez un abonnement mensuel existant avec un horodatage `billing_cycle_anchor` indiquant le jour du mois, l’heure, la minute et le seconde, dont les valeurs sont respectivement 15, 12, 30 et 0, vous pouvez aligner un nouvel abonnement mensuel sur ces valeurs. Pour ce faire, définissez les paramètres `day_of_month`, `hour`, `minute` et `second` de façon à ce qu’ils correspondent à ces valeurs. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d "billing_cycle_anchor_config[day_of_month]=15" \ -d "billing_cycle_anchor_config[hour]=12" \ -d "billing_cycle_anchor_config[minute]=30" \ -d "billing_cycle_anchor_config[second]=0" ``` Si vous utilisez le paramètre `billing_cycle_anchor_config`, la date `billing_cycle_anchor` peut être postérieure à la prochaine période de facturation. La date de la première facture du montant total est toutefois toujours comprise dans la période de facturation suivant la création de l’abonnement ou la fin d’un essai gratuit. Par exemple, supposez que vous créez un abonnement bimestriel en février avec renouvellement au dernier jour du mois en définissant le paramètre `day_of_month` sur `31`. La prochaine période de deux mois à compter de février se terminant un 31 correspond à juillet et août, ce qui se traduit par une date de début du cycle de facturation au 31 août. Cependant, la date de la première facture complète pour cet abonnement est toujours en février. On a une période initiale calculée au prorata, de la création de l’abonnement jusqu’au 28 février (ou au 29 s’il s’agit d’une année bissextile), suivie d’une période de facturation complète de deux mois. ### Utiliser billing_cycle_anchor Vous pouvez créer un abonnement avec un début de cycle de facturation spécifique à l’aide de l’API Subscriptions ou de Checkout. #### API Subscriptions Appelez l’API [Create Subscription](https://docs.stripe.com/api.md#create_subscription), en définissant un horodatage pour `billing_cycle_anchor`. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price]={{PRICE_ID}}" \ -d billing_cycle_anchor=1611008505 ``` ### Configurer le comportement des calculs au prorata Quel que soit le paramètre d’API utilisé, Stripe crée automatiquement une facture au prorata pour la période qui va de la date de création de l’abonnement à la date de la première facture complète. Si vous ne souhaitez pas facturer immédiatement un client pour la période comprise entre la création de l’abonnement et la date de la première facture du montant total, vous pouvez : - [Désactivez le prorata](https://docs.stripe.com/billing/subscriptions/prorations.md#disable-prorations) en définissant `proration_behavior` sur `none`, ce qui rend gratuite la période initiale jusqu’à la date de la première facture complète. Cette action ne génère aucune facture jusqu’à la première période de facturation. - [Combinez une période d’essai avec billing_cycle_anchor](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md#combine-trial-anchor) en définissant `trial_end` sur un horodatage représentant la date de fin de la période d’essai gratuite. Selon la durée de la période d’essai gratuite et le nombre de jours jusqu’à la date de la première facture complète, cette option peut entraîner une facture au prorata après la période d’essai. Par exemple, une période d’essai gratuite dure 7 jours et le renouvellement de la facturation a lieu tous les mois, le 1er. Si le client s’abonne le 15, nous générons une facture au prorata le 22 pour la période comprise entre le 22 et le 1er, puis nous facturons le montant total le 1er de chaque mois par la suite. Si un client s’abonne le 28, la période d’essai gratuite se prolonge au-delà du 1er, ce qui génère une facture au prorata jusqu’au mois suivant. #### Checkout Appelez la [création de session](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session) Stripe Checkout en spécifiant un horodatage pour `subscription_data.billing_cycle_anchor` : #### cURL ```bash curl https://api.stripe.com/v1/checkout/sessions \ -u <>: \ -d "line_items[][price]"="{{PRICE_ID}}" \ -d "line_items[][quantity]"=1 \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \-d "subscription_data[billing_cycle_anchor]"=1611008505 ``` Pour définir le début d’un cycle de facturation, Checkout doit être en mode `subscription`. ### Configurer le comportement des calculs au prorata Vous pouvez configurer la façon de gérer la période comprise entre la création de l’abonnement et la date de la première facture du montant total en utilisant le paramètre `proration_behavior`. Checkout ne prend pas en charge la combinaison d’une période d’essai avec le début du cycle de facturation. - Conservez le paramètre par défaut `create_prorations` pour permettre à Stripe de facturer immédiatement le client pour la période comprise entre la date d’abonnement et la date de la première facture du montant total. - [Désactivez le prorata](https://docs.stripe.com/payments/checkout/billing-cycle.md?ui=embedded-form#disable-prorations) en définissant `proration_behavior` sur `none`, ce qui rend la période initiale gratuite (jusqu’à la date de la première facture complète). Cette action ne génère aucune facture jusqu’à la première période de facturation. > Vous ne pouvez pas utiliser de tarifs ponctuels dans les sessions Checkout lorsque le paramètre `proration_behavior` est défini sur `none`. ## Modifier la période de facturation des abonnements existants Utilisez l’[API Subscriptions](https://docs.stripe.com/api/subscriptions/update.md) ou le [Dashboard](https://dashboard.stripe.com/subscriptions) pour modifier la date de facturation d’un abonnement existant à l’aide de l’une des options suivantes : - Réinitialiser la date de début du cycle de facturation sur la date du jour. - Ajoutez un [essai gratuit](https://docs.stripe.com/billing/subscriptions/trials.md) pour définir automatiquement la date de début du cycle de facturation sur la fin de la période d’essai. Généralement, les périodes d’essai commencent lorsque vous créez un abonnement, mais vous pouvez également les appliquer à des abonnements existants, ce qui vous permet de créditer le solde du client pour les jours restants du cycle précédent déjà payés. Dans ces scénarios, la date de votre cycle de facturation change. Toutefois, si vous créez ou mettez à jour un abonnement avec `billing_mode[type]=flexible`, la date de début du cycle de facturation reste inchangée. En savoir plus sur la [configuration du mode de facturation flexible](https://docs.stripe.com/billing/subscriptions/billing-mode.md) et ses [limites](https://docs.stripe.com/billing/subscriptions/billing-mode.md#limitations). - Si tous les tarifs sont à montant nul, l’ajout d’un ou plusieurs tarifs payants réinitialise immédiatement la période de facturation. Pour en savoir plus, consultez le [guide des modifications des tarifs des abonnements](https://docs.stripe.com/billing/Subscriptions/change-price.md#handle-zero-amount-prices-and-quantities). - L’`billing_cycle_anchor` est réinitialisée à la date [cancel_at](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-cancel_at) lors de la création d’un abonnement avec `cancel_at` défini sur une date antérieure au prochain renouvellement de l’abonnement, ou lors de la modification d’une date `cancel_at` existante sur un abonnement avec une `billing_cycle_anchor` future par rapport à la nouvelle date `cancel_at`. - Le `billing_cycle_anchor` se réinitialise à l’heure actuelle lorsque vous passez à un tarif avec un [recurring.interval](https://docs.stripe.com/api/prices/object.md#price_object-recurring) différent. ### Réinitialiser la période de facturation à la date actuelle Pour réinitialiser la date de début du cycle de facturation à l’heure actuelle, effectuez une requête de mise à jour en définissant `billing_cycle_anchor` sur `now`. La date de début du cycle de facturation est définie sur l’heure de la requête de mise à jour. Après avoir réinitialisé la date de début du cycle de facturation, Stripe envoie immédiatement une facture. [Activer le calcul au prorata](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-proration_behavior) pour créditer le client des jours déjà payés de la période précédente. La désactivation du prorata peut entraîner une surfacturation de votre client. #### API Appelez l’API [Update Subscription](https://docs.stripe.com/api.md#update_subscription), en définissant `billing_cycle_anchor` sur `now` et `proration_behavior` sur `create_prorations` pour éviter que le client ne soit facturé deux fois pour les jours déjà payés du cycle précédent. ```curl curl https://api.stripe.com/v1/subscriptions/sub_49ty4767H20z6a \ -u "<>:" \ -d billing_cycle_anchor=now \ -d proration_behavior=create_prorations ``` #### Dashboard 1. Dans l’[aperçu des abonnements](https://docs.stripe.com/api/subscriptions.md), cliquez sur le menu déroulant ⋯ et choisissez **Modifier l’abonnement**. 1. Accédez à **Options avancées**, puis sélectionnez **Réinitialiser le cycle de facturation**. 1. Sélectionnez le bouton **Modifications au prorata** pour éviter que les jours déjà payés du cycle précédent ne soient facturés à nouveau. 1. Cliquez sur **Mettre à jour l’abonnement**. ### Modifier la période de facturation à l’aide d’une période d’essai Vous pouvez changer la date de début du cycle de facturation en utilisant une [période d’essai gratuite](https://docs.stripe.com/billing/subscriptions/trials.md) pour définir automatiquement la date de début du cycle de facturation à la date `trial_end`. Par exemple, si un client a un abonnement actif initialement prévu pour une facturation le 23 juillet, et que le 15 juillet vous introduisez une période d’essai se terminant le 1er août : - Le client reçoit une facture de 0 USD le 15 juillet. Il a déjà payé jusqu’au 23 juillet dans le cycle précédent, donc la période « gratuite » ne s’applique que du 24 juillet au 31 juillet. - Le client n’est pas facturé le 23 juillet. - Le nouveau cycle facturé le 1er août est un cycle complet au tarif normal, puis à nouveau le 1er de chaque mois après cela. Vous pouvez éventuellement empêcher les proratas lorsque vous mettez à jour un abonnement pour démarrer une période d’essai en utilisant `proration_behavior=none`. Dans la plupart des cas, si vous utilisez la période d’essai pour modifier la période de facturation sans émettre de facture au prorata, vous désactivez le prorata car la durée de la période d’essai tient compte de la partie déjà payée de la période de facturation précédente. #### API Rendez-vous sur le réglage [mettre à jour l’abonnement](https://docs.stripe.com/api.md#update_subscription), en définissant `trial_end` sur un horodatage Unix représentant la date de fin de la période d’essai et `proration_behavior` sur `none`. Définir `trial_end` fixe la date de début du cycle de facturation à la même date. ```curl curl https://api.stripe.com/v1/subscriptions/sub_49ty4767H20z6a \ -u "<>:" \ -d trial_end=1627801200 \ -d proration_behavior=none ``` #### Dashboard 1. Dans l’[aperçu des abonnements](https://docs.stripe.com/api/subscriptions.md), sélectionnez l’abonnement que vous souhaitez modifier pour ouvrir sa page Détails. 1. Cliquez sur **Actions** > **Mettre à jour l’abonnement**. 1. Cliquez sur **Ajouter une période d’essai** et saisissez la durée de la période d’essai (en jours). La fin de la période d’essai devient la nouvelle date de début du cycle de facturation. 1. Désélectionnez le bouton **Modifications au prorata** pour éviter que le client ne soit crédité pour les jours déjà payés. 1. Cliquez sur **Mettre à jour l’abonnement**. ## Facturation à l’usage Avec la [facturation à l’usage](https://docs.stripe.com/products-prices/pricing-models.md), le tarif payé par le client varie en fonction de sa consommation au cours de la période de facturation. Lorsque la modification de la période de facturation entraîne la fin anticipée de la période de service d’un abonnement, vous facturez au client l’utilisation accumulée au cours de la période de facturation raccourcie. ### Seuils En plus du cycle standard, vous pouvez configurer les abonnements de manière à facturer le client dès que le montant atteint un [seuil](https://docs.stripe.com/billing/subscriptions/usage-based/thresholds.md). Si vous avez un abonnement configuré pour facturer de cette manière, vous pouvez le configurer pour réinitialiser la période de service de l’abonnement lorsqu’il atteint le seuil. ## See also - [Utiliser les périodes d’essai](https://docs.stripe.com/billing/subscriptions/trials.md) - [Mettre à jour l’API Subscription](https://docs.stripe.com/api.md#update_subscription)