Calculs au prorata
Comment gérer les calculs au prorata pour les abonnements modifiés.
L’aspect le plus complexe dans la modification des abonnements existants est le calcul au prorata, où le client est débité d’un pourcentage du coût de l’abonnement correspondant à son utilisation partielle. Cette page explique comment les calculs au prorata fonctionnent avec les abonnements et comment gérer les calculs au prorata pour vos clients.
Fonctionnement des calculs au prorata
Par exemple, la mise à niveau ou le déclassement d’un abonnement peuvent entraîner des paiements au prorata. Si un client met à niveau son plan, en passant de 10 USD par mois à 20 USD par mois, un montant au prorata correspondant au temps passé sur chaque option sera facturé. Si la modification s’est produite au milieu du cycle de facturation, le client est facturé 5 USD supplémentaires : -5 USD pour la période non consommée facturée au tarif initial et 10 USD pour la période restante facturée au nouveau tarif.
Si le calcul au prorata permet de facturer les clients de manière précise, il peut aussi entraîner des montants de paiement différents de ceux attendus. Les résultats négatifs ne sont pas automatiquement remboursés et les résultats positifs ne sont pas facturés immédiatement, bien qu’il soit possible d’effectuer ces deux actions manuellement.
Vous pouvez prévisualiser un calcul au prorata pour afficher le montant avant d’appliquer les modifications. Pour en savoir plus sur le fonctionnement des proratas de crédit, consultez notre guide.
Calculs au prorata et réductions
Tous les postes de facture qui sont au prorata (prorata=true
) sont définis sur discountable=false
. Les réductions appliquées à une facture contenant des prorata sont uniquement appliquées aux postes de facture et aux postes de facture qui ne sont pas au prorata. Toutes les réductions précédemment appliquées à l’abonnement et affectant le montant du prorata sont répercutées dans le montant du poste de facture au prorata.
Les discount_amounts non calculés au prorata affichent les ajustements de réduction.
Déclencheurs de calculs au prorata
Les scénarios suivants entraînent par défaut un calcul au prorata :
- Remplacement du prix par un autre avec un coût de base différent
- Remplacement du prix par un autre avec un intervalle de facturation différent
- Ajout d’une période d’essai à un abonnement actif
- Modification de la quantité
- Les abonnements sous licence (par utilisateur) (car ils sont facturés au début de chaque période de facturation)
Création manuelle de vos calculs au prorata
Pour effectuer vos propres calculs au prorata en dehors de Stripe et les ajouter à l’abonnement, transmettez add_invoice_items avec un unit_
négatif (égal au montant calculé au prorata) aux endpoints suivants :
Application des calculs au prorata
Les calculs au prorata s’appliquent uniquement aux paiements qui ont lieu en amont du cycle de facturation. La facturation à l’usage n’est pas soumise au calcul au prorata.
Le montant au prorata est calculé dès que l’API met à jour l’abonnement. Le début et la fin de la période de facturation en cours sont utilisés pour calculer le coût de l’abonnement avant et après la modification.
Calculs au prorata et factures impayées
Stripe calcule les prorata en fonction de l’état de l’abonnement au moment de la mise à jour, en supposant que toutes les factures antérieures pour l’abonnement seront finalement payées. Si un client modifie son abonnement alors qu’il a une facture impayée pour la période en cours, il est possible qu’il reçoive un crédit pour le temps non utilisé de l’offre la plus chère, même s’il n’a pas encore payé pour cette période.
Pour éviter d’avoir à créditer du temps non payé, vous pouvez désactiver les calculs au prorata si la dernière facture de l’abonnement n’a pas été payée. Lors de la mise à jour de l’abonnement, définissez proration_behavior sur none
. Sélectionnez l’une des approches suivantes :
- Pour conserver le cycle de facturation initial : Créez manuellement une facture ponctuelle pour tout nouveau paiement.
- Pour débiter immédiatement le nouveau plan et réinitialiser le cycle de facturation : définissez
billing_
surcycle_ anchor now
. Pour plus de détails, consultez la page Réinitialiser le cycle de facturation sur l’heure actuelle.
L’une ou l’autre de ces approches peut entraîner un double paiement si le client paie finalement l’ancienne facture. Pour éviter cela, annulez la facture impayée.
Taxes et calculs au prorata
Pour en savoir plus sur le fonctionnement des taxes avec les calculs au prorata, veuillez consulter la page Collecter des taxes pour les paiements récurrents.
Calculs des crédits au prorata
Les crédits au prorata sont émis lorsque les clients passent à un abonnement inférieur ou annulent des postes d’abonnement avant la fin de leur période de facturation. Stripe propose deux approches pour calculer les crédits au prorata, selon que vous définissez le billing_mode de votre abonnement sur classic
ou flexible
.
Logique de calcul sans calculs au prorata
Dans le scénario suivant, vous passez d’un abonnement mensuel 10 USD à 20 USD avec le paramètre proration_
défini sur none
pendant 10 jours. Il n’y a pas de débit précédent sur lequel le baser. Plus tard, vous passez à un abonnement mensuel à 10 USD avec le paramètre proration_
défini sur always_
.
Pour configurer ce scénario, vous devez d’abord créer un abonnement pour 10 USD par mois le 1er avril :
La réponse inclut la facture créée pour cet abonnement :
{ id: "sub_123", latest_invoice: { id: "in_123", total: 10_00, currency: "usd" } }
Ensuite, le 11 avril, vous passez l’abonnement à 20 USD par mois sans créer de prorata :
La dernière facture reste inchangée, car proration_
est none
:
{ id: "sub_123", latest_invoice: { id: "in_123" } }
Enfin, le 21 avril, vous passez à 10 USD par mois et créez des prorata :
Classique | Flexible |
---|---|
La logique de calcul au prorata billing_ crée un crédit au prorata basé sur le tarif actuel, même si le client n’a jamais payé le tarif mensuel 20 USD. La dernière facture crédite un tiers du mois de 20 USD (-6.67 USD), même si le client n’a jamais payé le tarif price_ . Elle débite également un tiers du mois de 10 USD (3.33 USD). | La logique de calcul activée avec billing_ crée un crédit au prorata en fonction du dernier tarif facturé pour le poste d’abonnement. Dans ce cas, la dernière facture crédite un tiers de mois pour le 10 USD tarif mensuel facturé le 1er avril (3.33 USD) et débite un tiers du mois pour le 10 USD tarif (3.33 USD). Le crédit et le débit s’annulent, de sorte que le total de la facture est de 0 USD. |
|
|
Logique de calcul des bons de réduction appliqués à plusieurs postes d’abonnement
Stripe pondère le bon de réduction amount_
sur le prorata de crédit afin d’éviter un trop-payé.
Dans le scénario suivant, un bon de réduction de 5 USD est alloué de manière inégale à un abonnement mensuel de 25 USD pour un poste à 10 USD et un poste à 20 USD.
Pour configurer ce scénario, vous créez un abonnement avec plusieurs postes et un bon de réduction le 1er février :
L’exemple ci-dessus renvoie cette réponse :
{ id: "sub_123", latest_invoice: { id: "in_123", total: 25_00, currency: "usd", lines: { data: [ { id: "ili_1", amount: 10_00, price: "price_10_monthly", discount_amounts: [{ discount: "di_a", amount: 1_66 }] }, { id: "ili_2", amount: 20_00, price: "price_20_monthly", discount_amounts: [{ discount: "di_a", amount: 3_34 }] }, ] } } }
Pour annuler le poste d’abonnement mensuel 10 USD à l’aide de billing_
:
Pour annuler le même élément à l’aide de billing_
:
Classique | Flexible |
---|---|
Le comportement par défaut distribue un bon de réduction de 5 USD à chaque article ( chacun), annulant le poste le moins cher (5 USD) et entraînant un remboursement de . Stripe calcule le total avec la formule -0,5 x (10 USD price - 5 USD coupon) = -2,50 USD . | Le comportement flexible reflète la réduction proportionnelle appliquée au poste annulé, plutôt que d’appliquer potentiellement le montant total de la réduction au calcul au prorata. Stripe calcule le total à l’aide de la formule -0,5 x (10 USD price - 1,66 USD discount amount) = -4,17 USD . |
|
|
Prévisualiser un calcul au prorata
Vous pouvez créer un aperçu de facture pour prévisualiser les modifications apportées à un abonnement. Cet appel à l’API ne modifie pas l’abonnement. Il renvoie la facture à venir uniquement en fonction des paramètres que vous transmettez. La modification du price
ou de la quantity
entraîne un calcul au prorata. Cet exemple modifie le price
et définit une date pour le paiement au prorata.
Vous pouvez développer l’exemple de réponse ci-dessous pour afficher :
- Le crédit pour la période non consommée facturée au tarif précédent aux lignes 36-38.
- Le coût pour la période écoulée au nouveau tarif aux lignes 107-109.
- Le nouveau sous-total et total de la facture aux lignes 276-279.
{ "id": "upcoming_in_1OujwkClCIKljWvsq5v2ICAN", "account_country": "US", "account_name": "Test account", "amount_due": 3627, "amount_paid": 0, "amount_remaining": 3627, "application_fee_amount": null, "attempt_count": 0, "attempted": false,
Utilisez ces informations pour confirmer les modifications avec le client avant de modifier l’abonnement. Stripe effectue le calcul au prorata à la seconde près, les montants calculés au prorata peuvent donc varier entre le moment où ils sont prévisualisés et le moment où la mise à jour est effectuée. Pour éviter cette situation, ajoutez subscription_
à la facture lorsque vous prévisualisez une modification. Lorsque vous mettez à jour l’abonnement, transmettez la même date avec le paramètre proration_
dans un abonnement, afin que le montant au prorata soit calculé au même moment.
Contrôler le comportement des calculs au prorata
Le calcul au prorata est contrôlé par le paramètre proration_behavior, qui propose trois options de paramétrages possibles : create_
, always_
et none
.
Comportement par défaut
Le paramètre par défaut de proration_
est create_
’, ce qui permet de créer des postes de facture au prorata, le cas échéant. Ces postes au prorata ne sont facturés immédiatement que sous certaines conditions.
Créer des calculs au prorata immédiats
Pour facturer immédiatement un client en cas de modification d’un abonnement au cours du même cycle de facturation, définissez proration_
sur always_
. Le système effectue le calcul au prorata, puis génère immédiatement une facture.
Désactiver les calculs au prorata
Pour désactiver les calculs au prorata par requête, définissez le paramètre proration_
sur none
. Il n’existe aucun paramètre qui désactive tous les calculs au prorata futurs pour un abonnement. Pour désactiver les calculs au prorata indéfiniment, définissez proration_
sur none
pour chaque requête générant des calculs au prorata :
Lorsque les calculs au prorata sont désactivés, les clients doivent payer le montant total au nouveau tarif lors de la génération de la facture suivante.