# Modifier des abonnements existants Découvrez comment modifier des abonnements existants sur Stripe Tax. [Stripe Tax](https://docs.stripe.com/tax.md) vous permet de calculer les taxes à collecter sur vos transactions en fonction du produit et de la localisation du client, puis de les ajouter automatiquement au paiement. Lorsque vous intégrez Stripe Tax, vous devez mettre à jour vos abonnements existants afin de garantir le calcul automatique des taxes sur toutes les transactions à venir. Stripe fournit un outil pour vous aider à mettre à jour vos abonnements. Vous pouvez également mettre à jour manuellement les abonnements si vous souhaitez mieux contrôler certaines options. ## Mettre à jour les abonnements existants à l’aide d’outils automatisés Pour commencer, vous devez activer Stripe Tax. Pour savoir comment procéder, consultez le [guide de configuration](https://docs.stripe.com/tax/set-up.md). Pour utiliser l’outil, procédez comme suit : 1. Accédez au [Dashboard](https://dashboard.stripe.com/tax/migrations). 1. Vérifiez les abonnements que vous devez mettre à jour. 1. Passez en revue les actions recommandées. 1. Effectuez manuellement les mises à jour nécessaires. Stripe supprime les [taux de taxe](https://docs.stripe.com/tax/tax-rates.md) manuels des abonnements, ce qui peut prendre jusqu’à 5 jours ouvrables. Une fois le processus terminé, nous vous en informons par e-mail. > Nous ne calculons pas les changements de taxes au prorata. Les mises à jour prennent effet au début du cycle de facturation suivant. Vous pouvez utiliser l’outil pour mettre à jour les abonnements qui répondent aux critères suivants : - Sont actifs - Ne pas prélever automatiquement la taxe - Disposer d’une [adresse](https://docs.stripe.com/tax/customer-locations.md#address-hierarchy-other) assez complète pour calculer les taxes - Assurez-vous de définir le [comportement fiscal](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#set-tax-behavior-on-price) du tarif Vous devez mettre à jour les types d’abonnements suivants : - Les abonnements avec planifications. Pour en savoir plus, consultez [la section Mettre à jour les abonnements avec des planifications](https://docs.stripe.com/tax/subscriptions/update.md#existing-subscription-schedules). - Les abonnements qui utilisent les [types de paiement](https://docs.stripe.com/connect/charges.md#types) suivants : paiements indirects ou paiements et transferts distincts. Il est possible que l’outil automatisé ne puisse pas mettre à jour certains abonnements. Cela est généralement dû au fait que l’on ne dispose pas d’une [adresse client valide](https://docs.stripe.com/tax/customer-locations.md#other). > L’outil automatisé ne fonctionne pas avec les abonnements test. Après avoir utilisé l’outil automatisé, vous devez attendre quelques jours avant de pouvoir l’exécuter à nouveau. Pendant ce temps, vérifiez et corrigez les abonnements qui ont échoué à la première tentative. ## Mettre à jour manuellement les abonnements existants - [Vérifier les territoires des clients](https://docs.stripe.com/tax/subscriptions/update.md#customer-locations) et effectuer les mises à jour requises. - [Mettre à jour les produits et les prix](https://docs.stripe.com/tax/subscriptions/update.md#products-prices) avec des codes fiscaux et des comportements fiscaux. - [Mettre à jour des abonnements](https://docs.stripe.com/tax/subscriptions/update.md#subs) pour calculer automatiquement les taxes sur les factures à venir. - [Confirmez](https://docs.stripe.com/tax/subscriptions/update.md#confirm) que les abonnements sont bien à jour. ## Vérifier la localisation des clients Pour calculer correctement les taxes, nous devons connaître le statut du territoire fiscal du client. Vous pouvez le vérifier dans le Dashboard ou dans les données exportées, ou obtenir les informations à l’aide de l’API. #### Dashboard Pour vérifier le territoire fiscal d’un client dans le Dashboard, accédez à la [page Clients](https://dashboard.stripe.com/customers), sélectionnez le client concerné, puis développez ses informations. L’état du territoire fiscal (`automatic_tax`) a quatre valeurs possibles : | État | Description | Action possible | | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Valide (`supported`) | Taxe automatique entièrement prise en charge. | Aucune autre action n’est requise. | | Lieu non reconnu (`unrecognized_location`) | L’adresse indiquée n’est pas valide et ne permet pas de déterminer un lieu fiscal. | Demandez au client de vous fournir une adresse à jour et assignez la nouvelle valeur au paramètre [customer.address](https://docs.stripe.com/api/customers/update.md#update_customer-address). Vous pouvez modifier la valeur en modifiant les informations du client dans le Dashboard ou à l’aide de l’API. | | Aucune immatriculation (`not_collecting`) | L’adresse est reconnue et correspond à un lieu pour lequel vous n’avez pas configuré d’encaissement de taxes. | L’action à effectuer dépendra de vos [obligations fiscales](https://docs.stripe.com/tax/monitoring.md). Si vous poursuivez, Stripe Tax n’imposera aucune taxe. Si vous souhaitez que Stripe Tax calcule les taxes, vous devez [ajouter une immatriculation active](https://docs.stripe.com/tax/registering.md) dans la région dans laquelle le client est établi. | | `failed` | Une [erreur](https://docs.stripe.com/error-codes.md) s’est produite sur les serveurs de Stripe. Cette situation est rare. | Renouvelez votre requête ou contactez le service Support de Stripe pour obtenir de l’aide. | Lorsque nous ne pouvons pas déterminer la localisation de votre client, l’état est défini sur `status=unrecognized_location` et vous devez mettre à jour la localisation du client avec [une adresse que Stripe Tax peut utiliser](https://docs.stripe.com/tax/customer-locations.md). Dans le Dashboard, accédez à la [page Clients](https://dashboard.stripe.com/customers), sélectionnez le client et changez son adresse de facturation ou de livraison dans la section Détails. ### Vérifier l’état des lieux de recouvrement par le biais des exportations Pour vérifier le statut fiscal de vos clients via les exportations du Dashboard, accédez à la [page Clients](https://dashboard.stripe.com/customers), cliquez sur **Exporter**, puis sélectionnez **Toutes les colonnes**. Le fichier CSV comprend une colonne booléenne nommée **Lieu fiscal reconnu** que vous pouvez utiliser pour déterminer si un client dispose d’une adresse [valide](https://docs.stripe.com/tax/customer-locations.md#supported-formats). #### API Pour vérifier l’état du territoire fiscal d’un client à l’aide de l’API, récupérez l’[objet Customer](https://docs.stripe.com/api/customers/object.md) et [développez](https://docs.stripe.com/api/expanding_objects.md) la réponse en ajoutant `expand: ['tax']` à votre requête. Vous devez utiliser `expand`, car la réponse par défaut n’inclut pas le champ [tax](https://docs.stripe.com/api/customers/object.md#customer_object-tax). ```curl curl -G https://api.stripe.com/v1/customers/{{CUSTOMER_ID}} \ -u "<>:" \ -d "expand[]=tax" ``` La réponse contiendra des champs fiscaux développés indiquant la localisation trouvée et précisant si ce client est compatible avec le calcul automatique des taxes. ```json {"tax": { "automatic_tax": "supported", "ip_address": null, "location": {"country": "US", "state": "CA", "source": "billing_address"} }, "id": "cus_JvecILHjNPGKSI", "object": "customer", "address": null, "balance": 0, "created": 1627380831, "currency": null, "default_source": "src_0JHnP4507O8KAxCGgDurDgoS", "delinquent": false, "description": "1st Deposit", "discount": null, "email": "jenny.rosen@example.com", "invoice_prefix": "66CD4DB9", "invoice_settings": { "custom_fields": null, "default_payment_method": null, "footer": null }, "livemode": false, "metadata": { }, "name": "Jenny Rosen", "next_invoice_sequence": 1, "phone": null, "preferred_locales": [ ], "shipping": null, "tax_exempt": "none" } ``` La valeur du paramètre `automatic_tax` (qui correspond à l’**État des lieux de recouvrement** dans le Dashboard) possède quatre états possibles : | État | Description | Action possible | | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Valide (`supported`) | Taxe automatique entièrement prise en charge. | Aucune autre action n’est requise. | | Lieu non reconnu (`unrecognized_location`) | L’adresse indiquée n’est pas valide et ne permet pas de déterminer un lieu fiscal. | Demandez au client de vous fournir une adresse à jour et assignez la nouvelle valeur au paramètre [customer.address](https://docs.stripe.com/api/customers/update.md#update_customer-address). Vous pouvez modifier la valeur en modifiant les informations du client dans le Dashboard ou à l’aide de l’API. | | Aucune immatriculation (`not_collecting`) | L’adresse est reconnue et correspond à un lieu pour lequel vous n’avez pas configuré d’encaissement de taxes. | L’action à effectuer dépendra de vos [obligations fiscales](https://docs.stripe.com/tax/monitoring.md). Si vous poursuivez, Stripe Tax n’imposera aucune taxe. Si vous souhaitez que Stripe Tax calcule les taxes, vous devez [ajouter une immatriculation active](https://docs.stripe.com/tax/registering.md) dans la région dans laquelle le client est établi. | | `failed` | Une [erreur](https://docs.stripe.com/error-codes.md) s’est produite sur les serveurs de Stripe. Cette situation est rare. | Renouvelez votre requête ou contactez le service Support de Stripe pour obtenir de l’aide. | Lorsque nous ne pouvons pas déterminer la localisation de votre client, l’état est défini sur `status=unrecognized_location` et vous devez mettre à jour la localisation du client avec [une adresse que Stripe Tax peut utiliser pour calculer la taxe](https://docs.stripe.com/tax/customer-locations.md). Vous pouvez [mettre à jour le client](https://docs.stripe.com/api/customers/update.md#update_customer-address) à l’aide de l’API : ```curl curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}} \ -u "<>:" \ -d "address[line1]=27 Fredrick Ave" \ -d "address[city]=Brothers" \ -d "address[postal_code]=97712" \ -d "address[state]=OR" \ -d "address[country]=US" \ -d "expand[]=tax" ``` Pour plus d’informations sur les adresses clients valides, leur utilisation ou sur la gestion des erreurs, consultez notre article [Collecter les adresses des clients](https://docs.stripe.com/tax/customer-locations.md). ## Mettre à jour les produits et tarifs Vos produits et tarifs utilisent le régime fiscal par défaut que vous avez attribué lors de l’activation de Stripe Tax. Si vous préférez mettre à jour les produits et tarifs actifs pour calculer les taxes indépendamment, définissez un code_fiscal et régime_fiscal. Consultez la liste complète des [codes fiscaux disponibles](https://docs.stripe.com/tax/tax-codes.md) et le [guide de configuration](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md) des codes fiscaux et du régime fiscal pour en savoir plus. ### Mettre à jour les produits Pour commencer, mettez à jour vos produits existants en renseignant le paramètre `tax_code`. Si vous ne précisez pas le `tax_code` d’un produit, Stripe Tax utilise le code de taxe produit par défaut qui figure dans vos paramètres. #### Dashboard Pour renseigner le `tax_code` d’un objet Product dans le Dashboard, accédez à la [page Produits](https://dashboard.stripe.com/products?active=true), sélectionnez le produit à modifier, puis choisissez un code de taxe dans le menu déroulant de la page d’informations du produit. #### API Voici comment modifier un produit avec un `tax_code` grâce à l’API : ```curl curl https://api.stripe.com/v1/products/{{PRODUCT_ID}} \ -u "<>:" \ -d "tax_code={{TAXCODE_ID}}" ``` ### Mettre à jour les tarifs Ensuite, mettez à jour le comportement fiscal de vos tarifs. > Vous ne pouvez pas modifier le paramètre `tax_behavior` une fois qu’il a été défini sur `exclusive` ou `inclusive`. Si vous souhaitez modifier le comportement fiscal d’un tarif, vous devez créer un nouveau tarif, lui assigner le comportement fiscal souhaité, puis archiver l’ancien tarif. #### Dashboard Pour modifier un tarif à l’aide du Dashboard : 1. Accédez à la [page des produits](https://dashboard.stripe.com/products). 1. Sélectionnez le produit dont vous souhaitez modifier le tarif. 1. Sélectionnez des options supplémentaires dans la section des informations sur les tarifs. 1. Dans le menu déroulant **Inclure la taxe dans le tarif**, sélectionnez le comportement que vous souhaitez associer au tarif. #### API Voici comment modifier un tarif à l’aide de l’API : ```curl curl https://api.stripe.com/v1/prices/{{PRICE_ID}} \ -u "<>:" \ -d tax_behavior=exclusive ``` ## Mettre les abonnements à jour Une fois vos clients, produits et tarifs mis à jour, vous pouvez mettre à jour vos abonnements existants. Obtenez la liste des abonnements qui doivent être mis à jour sur la [page des abonnements dans le Dashboard](https://dashboard.stripe.com/subscriptions). Pour afficher uniquement les abonnements pour lesquels la taxe automatique n’est pas activée, cliquez sur **Filtrer**, cochez la case **Taxe automatique** et sélectionnez **Désactivé**. Vous pouvez également exporter tous les abonnements filtrés pour les afficher dans un fichier CSV. Pour ce faire, cliquez sur **Exporter** et sélectionnez **Tout** dans **Plage de dates**. La manière de mettre à jour l’abonnement dépendra de son état : - Si vos abonnements [ne disposent pas de taux de taxe existants](https://docs.stripe.com/tax/subscriptions/update.md#no-tax-rates), il vous suffit d’activer le calcul automatique des taxes. - Si vos abonnements disposent [de taux de taxe existants](https://docs.stripe.com/tax/subscriptions/update.md#existing-tax-rates) (au niveau de l’abonnement ou des postes de facture), vous devez effacer tous les taux de taxe existants et activer le calcul automatique des taxes. Vous pouvez planifier cette mise à jour de façon à éviter de créer des postes de facture avec calcul au prorata. - Si vos abonnements ont des [planifications d’abonnements](https://docs.stripe.com/tax/subscriptions/update.md#existing-subscription-schedules), vous devez supprimer les instances de `automatic_tax[enabled]=false` dans les plans d’abonnement. ### Mettre à jour des abonnements sans taux de taxe existant #### Dashboard Pour modifier des abonnements sans taux de taxe existant à l’aide du Dashboard, modifiez l’abonnement et activez l’option **Calculer la taxe automatiquement**. #### API Pour [mettre à jour des abonnements](https://docs.stripe.com/api/subscriptions/update.md) pour lesquelles vous n’avez pas configuré de [taux de taxe](https://docs.stripe.com/tax/tax-rates.md), définissez [automatic_tax.enabled](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-automatic_tax) sur `true`. ```curl curl https://api.stripe.com/v1/subscriptions/{{SUBSCRIPTION_ID}} \ -u "<>:" \ -d "automatic_tax[enabled]=true" ``` La configuration `automatic_tax.enabled=true` activera le calcul automatique des taxes sur toutes les prochaines factures créées pour cet abonnement. ### Modifier des abonnements ayant déjà un taux de taxe #### Dashboard Pour mettre à jour des abonnements avec des [taux de taxe](https://docs.stripe.com/tax/tax-rates.md) via le Dashboard, modifiez l’abonnement, puis activez l’option **calculer la taxe automatiquement**. Le Dashboard supprime tous les taux de taxe existants et calcule automatiquement les taxes à l’avenir. Si vous n’avez pas mis à jour vos tarifs pour définir `tax_behavior`, le Dashboard vous invite à mettre à jour les informations manquantes avant de pouvoir mettre à jour l’abonnement. #### API Pour mettre à jour des abonnements pour lesquels des [taux de taxe](https://docs.stripe.com/tax/tax-rates.md) sont configurés au [niveau de l’abonnement](https://docs.stripe.com/billing/taxes/collect-taxes.md?tax-calculation=tax-rates#static-configuration), vous devez supprimer les taux de taxes avant d’activer le paramètre `automatic_tax`. Lorsque vous effectuez la mise à jour : - Transmettez une chaîne vide dans les champs [default_tax_rates](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-default_tax_rates) et [tax_rates](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items-data-tax_rates) pour chaque [item](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items) de l’abonnement. Cela permet d’effacer les taux de taxe définis tant au niveau de l’abonnement (`default_tax_rates`) que des postes de facture (`tax_rates`). - Définissez la valeur [automatic_tax.enabled](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-automatic_tax) sur `true`. - Définissez [proration_behavior](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-proration_behavior) sur la valeur `none`. #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') subscription = client.v1.subscriptions.retrieve('{{SUBSCRIPTION_ID}}') client.v1.subscriptions.update( subscription.id, { automatic_tax: { enabled: true }, # Removes existing tax_rates for each item in the subscription items: subscription.items.data.map {|item| {id: item.id, tax_rates: ''}}, default_tax_rates: '', proration_behavior: 'none' } ) ``` ### Mettre à jour l’objet Subscriptions grâce aux planifications d’abonnement Si vous devez collecter des taxes et que l’un de vos abonnements comprend une planification d’abonnement définie sur `automatic_tax[enabled]=false`, vous devez supprimer ce paramètre. Pour ce faire, mettez à jour toutes les phases de la planification de l’abonnement en supprimant `automatic_tax[enabled]=false` et en définissant `default_settings[automatic_tax][enabled]=true`. Lorsque vous mettez à jour une planification d’abonnement, vous devez passer dans toutes les phases actuelles et futures. Pour ce faire, vérifiez les paramètres définis, puis activez Stripe Tax dans le plan d’abonnement. ```curl curl https://api.stripe.com/v1/subscription_schedules/{{SUBSCRIPTIONSCHEDULE_ID}} \ -u "<>:" ``` Pour mettre à jour la planification d’abonnement après l’avoir obtenue, supprimez le paramètre `automatic_tax[enabled]=false`, et transmettez les autres phases et paramètres : ```curl curl https://api.stripe.com/v1/subscription_schedules/{{SUBSCRIPTIONSCHEDULE_ID}} \ -u "<>:" \ -d "phases[0][items][0][price]=price_1GqNdGAJVYItwOKqEHb" \ -d "phases[0][items][0][quantity]=1" \ -d "phases[0][start_date]=1577865600" \ -d "phases[0][end_date]=1578038400" \ -d "phases[1][items][0][price]=price_1GqNdGAJVYItwOKqEHb" \ -d "phases[1][items][0][quantity]=2" \ -d "phases[1][start_date]=1578038400" \ -d "phases[1][end_date]=1580544000" \ -d "default_settings[automatic_tax][enabled]=true" ``` #### Planifier la mise à jour Si vous souhaitez éviter de créer un poste avec calcul au prorata, vous pouvez planifier la mise à jour pour qu’elle s’effectue au début du cycle de facturation suivant. Pour le moment, la planification de mises à jour d’abonnements n’est possible que via l’API : #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') subscription = client.v1.subscriptions.retrieve( '{{SUBSCRIPTION_ID}}', ) schedule = client.v1.subscription_schedules.create({ from_subscription: subscription.id }) client.v1.subscription_schedules.update( schedule.id, { end_behavior: 'release', phases: [ # The first phase contains items for the # latest subscription invoice { items: [ # Prices and tax_rates for each item { price: '{{PRICE_ID}}', tax_rates: [ '{{TAX_RATE_ID}}' ] } ], default_tax_rates: ['{{TAX_RATE_ID}}'], start_date: subscription.items.data[0].current_period_start, end_date: subscription.items.data[0].current_period_end }, # The second phase removes manual tax rates and enables # automatic tax calculation { items: [ # Prices for each item with tax_rates: [] { price: '{{PRICE_ID}}', tax_rates: [] } ], default_tax_rates: [], automatic_tax: {enabled: true}, iterations: 1 } ] } ) ``` ## Confirmer les mises à jour Pour confirmer que vous avez correctement mis à jour vos abonnements, créez un [aperçu de la facture](https://docs.stripe.com/api/invoices/create_preview.md) de chaque abonnement et examinez les résultats du calcul des taxes. Vous pouvez récupérer les montants taxés dans les champs [tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-tax) et [total_tax_amounts](https://docs.stripe.com/api/invoices/object.md#invoice_object-total_tax_amounts) de l’aperçu de la facture, et dans les champs [tax_amounts](https://docs.stripe.com/api/invoice-line-item/object.md#invoice_line_item_object-tax_amounts) par poste. La facture comporte un champ [automatic_tax](https://docs.stripe.com/api/invoices/object.md#invoice_object-automatic_tax) indiquant l’état du calcul, avec l’un des trois états suivants possibles : | État | Description | Action possible | | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `complete` | Stripe Tax a calculé les taxes applicables au paiement. | Vous pouvez récupérer les montants de taxes à partir des champs taxes et `total_tax_amounts` de la dernière facture, et à partir des champs `tax_amounts` par poste de facture. | | `requires_location_inputs` | Stripe Tax n’a pas pu évaluer les taxes, car il ne disposait pas de suffisamment d’informations pour déterminer la localisation du client. | Collectez davantage d’informations auprès d’un client (telles qu’une adresse complète) et mettez à jour le champ [customer.address](https://docs.stripe.com/api/customers/update.md#update_customer-address). | | `failed` | Erreur interne Stripe. | Soumettez de nouveau la demande ou contactez le service Support de Stripe pour obtenir de l’aide. | ## See also - [Créez de nouveaux abonnements avec Stripe Tax](https://docs.stripe.com/tax/subscriptions.md) - [Définir des codes de taxe, des produits et des tarifs](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md)