# Percevoir des taxes pour les paiements récurrents Comment percevoir et déclarer des taxes pour les paiements récurrents. Stripe propose deux manières de calculer les taxes pour les paiements récurrents : Stripe Tax et Taux de taxe. - **Stripe Tax** : un produit payant qui calcule automatiquement les taxes liées à vos transactions, sans nécessité de définir des taux et des règles. Les frais s’appliquent uniquement après l’ajout d’au moins un de vos lieux d’immatriculation pour calculer les taxes et les verser. Pour en savoir plus, consultez la page [Stripe Tax](https://docs.stripe.com/tax.md). - **Taux de taxe** : une fonctionnalité gratuite qui vous permet de définir le nombre de taux de taxes à appliquer à vos *factures* (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), *abonnements* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) et paiements ponctuels qui utilisent Checkout. Stripe ne créera pas et ne gèrera aucun taux de taxe en votre nom. Pour plus d’informations, consultez la rubrique [Taux de taxe](https://docs.stripe.com/api/tax_rates.md) et la documentation sur [leur utilisation](https://docs.stripe.com/billing/taxes/tax-rates.md). # Stripe Tax > This is a Stripe Tax for when tax-calculation is stripe-tax. View the full page at https://docs.stripe.com/billing/taxes/collect-taxes?tax-calculation=stripe-tax. Stripe Tax vous permet de calculer le montant de la taxe sur vos paiements récurrents lorsque vous utilisez Stripe Billing. Utilisez les informations relatives à l’emplacement de votre client pour obtenir un aperçu du montant des taxes avant de créer un abonnement, puis créez-le avec Stripe Tax activé lorsque votre client est prêt à payer. Stripe Tax s’intègre à Stripe Billing et gère automatiquement le calcul des taxes à l’aide de votre [modèle tarifaire](https://docs.stripe.com/products-prices/pricing-models.md), de vos [proratas](https://docs.stripe.com/billing/subscriptions/prorations.md), de vos [remises](https://docs.stripe.com/billing/subscriptions/coupons.md), de vos [essais](https://docs.stripe.com/billing/subscriptions/trials.md), etc. #### Customer v1 Diagramme présentant une vue d’ensemble d’une intégration Stripe Tax et Billing utilisant Customer v1. (See full diagram at https://docs.stripe.com/billing/taxes/collect-taxes) Ce guide part du principe que vous configurez Stripe Tax et Billing pour la première fois. Découvrez comment [modifier des abonnements](https://docs.stripe.com/tax/subscriptions/update.md) existants. Si vous utilisez Stripe Checkout pour créer de nouveaux abonnements, découvrez comment [prélever automatiquement des taxes sur les sessions Checkout](https://docs.stripe.com/tax/checkout.md) ou regardez la courte vidéo ci-dessous : [Watch on YouTube](https://www.youtube.com/watch?v=3QBRs4IfDNo) ## Estimer les taxes et le total [Côté serveur] #### Avant la collecte de l’adresse Lorsqu’un client entre pour la première fois dans votre flux de paiement, il se peut que vous ne disposiez pas encore de son adresse. Dans ce cas, [créez un aperçu de la facture](https://docs.stripe.com/api/invoices/create_preview.md) et définissez [customer_details.tax.ip_address](https://docs.stripe.com/api/invoices/create_preview.md#create_create_preview-customer_details-tax-ip_address) pour permettre à Stripe de les localiser à l’aide de leur adresse IP. > Dans la plupart des cas, Stripe peut résoudre une adresse IP en une zone physique, mais sa précision varie et peut ne pas refléter l’emplacement réel de votre client. Nous vous déconseillons de vous fier à l’adresse IP d’un client pour déterminer son adresse au-delà d’une estimation initiale. ```curl curl https://api.stripe.com/v1/invoices/create_preview \ -u "<>:" \ -d "automatic_tax[enabled]"=true \ -d "customer_details[tax][ip_address]"={{IP_ADDRESS}} \ -d "subscription_details[items][0][price]"="{{PRICE_ID}}" ``` #### Après la collecte de l’adresse Lorsque votre client renseigne ses coordonnées, définissez également [customer_details.address](https://docs.stripe.com/api/invoices/create_preview.md#create_create_preview-customer_details-address). Utilisez [customer_details.shipping](https://docs.stripe.com/api/invoices/create_preview.md#create_create_preview-customer_details-shipping) si vous collectez des adresses de livraison. ```curl curl https://api.stripe.com/v1/invoices/create_preview \ -u "<>:" \ -d "automatic_tax[enabled]"=true \ -d "customer_details[address][line1]"={{LINE1}} \ -d "customer_details[address][line2]"={{LINE2}} \ -d "customer_details[address][city]"={{CITY}} \ -d "customer_details[address][state]"={{STATE}} \ -d "customer_details[address][postal_code]"={{POSTAL_CODE}} \ -d "customer_details[address][country]"={{COUNTRY}} \ -d "customer_details[tax][ip_address]"={{IP_ADDRESS}} \ -d "subscription_details[items][0][price]"="{{PRICE_ID}}" ``` Vérifiez le [automatic_tax.status](https://docs.stripe.com/api/invoices/object.md#invoice_object-automatic_tax-status) de la facture. S’il affiche `requires_location_inputs`, cela signifie que les coordonnées de l’adresse ne sont pas valides ou sont insuffisantes. Dans ce cas, invitez votre client à saisir à nouveau ses coordonnées ou à fournir des coordonnées exactes. Le [total](https://docs.stripe.com/api/invoices/object.md#invoice_object-total) de la facture correspond au montant payé par votre client, et la [taxe](https://docs.stripe.com/api/invoices/object.md#invoice_object-tax) correspond à la somme de tous les montants des taxes figurant sur la facture. Pour obtenir le détail des taxes, reportez-vous à la section [total_tax_amounts](https://docs.stripe.com/api/invoices/object.md#invoice_object-total_tax_amounts). Tous les montants sont en cents. > #### Taxe zéro > > Si la valeur de `tax` est égale à zéro, assurez-vous de disposer d’un enregistrement fiscal à l’emplacement de votre client. Découvrez comment [vous inscrire pour bénéficier de la taxe de vente, de la TVA et la GST](https://docs.stripe.com/tax/registering.md) et découvrez les [montants à taxe zéro et les autoliquidations](https://docs.stripe.com/tax/zero-tax.md). ## Recueillir les informations du client [Côté client] Une fois que vous avez estimé les taxes et le montant total, commencez à collecter les informations relatives au client, notamment son adresse de livraison (le cas échéant), son adresse de facturation et ses informations de paiement. Notez que lorsque vous utilisez Stripe Tax, vous collectez des informations de paiement sans Intent. La première étape consiste à [créer un objet Elements sans Intent](https://docs.stripe.com/js/elements_object/create_without_intent) : ```javascript const stripe = Stripe("<>"); const elements = stripe.elements({ mode: 'subscription', currency: '{{CURRENCY}}', amount: {{TOTAL}}, // Le total de la facture. }); ``` Ensuite, [créez un Address Element](https://docs.stripe.com/js/elements_object/create_address_element) et [un Payment Element](https://docs.stripe.com/js/elements_object/create_payment_element) et [montez-les](https://docs.stripe.com/js/element/mount) : ```javascript const addressElement = elements.create('address', { mode: 'billing' // or 'shipping', if you are shipping goods }); addressElement.mount('#address-element'); const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element'); ``` Ensuite, vous pouvez écouter [change events](https://docs.stripe.com/js/element/events/on_change?type=paymentElement#element_on_change-event) sur l’Address Element. En cas de modification de l’adresse, [réestimez](https://docs.stripe.com/tax/subscriptions.md?estimate=after#estimate-taxes-total) les taxes et le montant total. ```javascript addressElement.on('change', async function(event) { // Throttle your requests to avoid overloading your server or hitting // Stripe's rate limits. const { tax, total } = await updateEstimate(event.value.address); elements.update({ amount: total }); // Update your page to display the new tax and total to the user... }); ``` > Lorsque votre client saisit son adresse, Address Element déclenche un événement `change` pour chaque saisie au clavier. Pour éviter de surcharger votre serveur et d’atteindre les [limites de débit](https://docs.stripe.com/rate-limits.md) de Stripe, attendez un certain temps après le dernier événement `change` avant de réestimer les taxes et le total. ## Gérer l’envoi [Côté client] Lorsque votre client envoie le formulaire, appelez [elements.submit()](https://docs.stripe.com/js/elements/submit) pour valider les champs du formulaire et collecter toutes les données requises pour les wallets. Vous devez attendre que la promesse de cette fonction soit résolue avant d’effectuer toute autre opération. ```javascript document.querySelector("#form").addEventListener("submit", async function(event) { // We don't want to let default form submission happen here, // which would refresh the page. event.preventDefault(); const { error: submitError } = await elements.submit(); if (submitError) { // Handle error... return; } const { value: customerDetails } = await addressElement.getValue(); // See the "Save customer details" section below to implement this // server-side. await saveCustomerDetails(customerDetails); // Envoie une requête d'enregistrement des informations du client à votre serveur. // See the "Create subscription" section below to implement this server-side. const { clientSecret } = await createSubscription(); // latest_invoice.confirmation_secret.client_secret du nouvel abonnement. // Envoie une requête de création d'un abonnement à votre serveur. const { error: confirmError } = await stripe.confirmPayment({ elements, clientSecret, confirmParams: { return_url: {{RETURN_URL}}, // L'URL vers laquelle Stripe redirigera vos clients une fois leur paiement terminé. }, }); if (confirmError) { // Handle error... return; } // Upon a successful confirmation, your user will be redirected to the // return_url you provide before the Promise ever resolves. }); ``` ## Enregistrer les coordonnées du client [Côté serveur] #### Customer v1 [Modifiez](https://docs.stripe.com/api/customers/update.md) votre objet `Customer` à l’aide des informations que vous avez recueillies auprès de votre client. Stripe Tax pourra ainsi déterminer son emplacement précis et obtenir des résultats précis. > Si votre client se trouve aux États-Unis, fournissez une adresse complète si possible. Elle doit être suffisamment précise, de manière à ce que nous pouvons attribuer l’emplacement de votre client à une maison ou à un bâtiment spécifique. Cela permet d’obtenir une plus grande précision, lorsque deux maisons situées côte à côte dans la même rue peuvent être assujetties à des taux d’imposition différents, en raison des limites complexes des juridictions. Si vous n’avez pas encore créé d’objet `Customer` (par exemple, lorsque votre client s’inscrit pour la première fois sur votre site Web), vous pouvez en [créer](https://docs.stripe.com/api/customers/create.md) un maintenant. #### Mettre à jour ```curl curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}} \ -u "<>:" \ -d "address[line1]"={{LINE1}} \ -d "address[line2]"={{LINE2}} \ -d "address[city]"={{CITY}} \ -d "address[state]"={{STATE}} \ -d "address[postal_code]"={{POSTAL_CODE}} \ -d "address[country]"={{COUNTRY}} \ -d "tax[validate_location]"=immediately ``` > Si votre client dispose d’autres abonnements pour lesquels la taxe automatique est activée et que vous modifiez ses coordonnées, les taxes et les montants totaux de ses futures factures peuvent être différents. En effet, les taux de taxe varient en fonction de l’emplacement du client. #### Créer un compte client ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ -d "address[line1]"={{LINE1}} \ -d "address[line2]"={{LINE2}} \ -d "address[city]"={{CITY}} \ -d "address[state]"={{STATE}} \ -d "address[postal_code]"={{POSTAL_CODE}} \ -d "address[country]"={{COUNTRY}} \ -d "tax[validate_location]"=immediately ``` Votre client doit disposer d’un emplacement fiscal valide pour activer le calcul automatique de la taxe sur son abonnement. Définissez [tax.validate_location](https://docs.stripe.com/api/customers/update.md#update_customer-tax-validate_location) sur `immediately` afin de valider l’emplacement fiscal du client. Si la validation échoue, Stripe rejette votre requête avec le code d’erreur [customer_tax_location_invalid](https://docs.stripe.com/error-codes.md#customer-tax-location-invalid). Vérifier le [automatic_tax.status](https://docs.stripe.com/api/invoices/object.md#invoice_object-automatic_tax-status) de vos factures en version bêta permet d’éviter cet échec. ## Création d'un abonnement [Côté serveur] [Créez](https://docs.stripe.com/api/subscriptions/create.md) un abonnement pour lequel la taxe automatique est activée. #### Customer v1 ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "automatic_tax[enabled]"=true \ -d customer="{{CUSTOMER_ID}}" \ -d "items[0][price]"="{{PRICE_ID}}" \ -d "payment_settings[save_default_payment_method]"=on_subscription \ -d "expand[0]"="latest_invoice.confirmation_secret" ``` Le [latest_invoice.confirmation_secret.client_secret](https://docs.stripe.com/api/invoices/object.md#invoice_object-confirmation_secret-client_secrett) est la *clé secrète du client* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)) du *Payment Intent* (API object that represents your intent to collect payment from a customer, tracking charge attempts and payment state changes throughout the process) de la première (et plus récente) facture du nouvel abonnement. Vous devez transmettre la clé secrète du client à votre front-end pour pouvoir *confirmer* (Confirming a PaymentIntent indicates that the customer intends to pay with the current or provided payment method. Upon confirmation, the PaymentIntent attempts to initiate a payment) le Payment Intent. > Ne stockez pas la clé secrète du client, ne l’enregistrez pas et ne la divulguez pas à une autre partie que le client. Veillez à ce que le protocole TLS soit activé sur toutes les pages qui contiennent la clé secrète du client. Si votre client dispose d’un moyen de paiement par défaut, la première facture de l’abonnement est payée automatiquement. Vous pouvez le vérifier à l’aide du [latest_invoice.status](https://docs.stripe.com/api/invoices/object.md#invoice_object-status) de l’abonnement. Si vous souhaitez utiliser les nouvelles informations de paiement collectées auprès de votre client dans votre flux de paiement, vérifiez que la première facture n’est pas payée automatiquement. Transmettez `default_incomplete` pour le [payment_behavior](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) lors de la création de votre abonnement et confirmez l’intention de paiement à l’aide de [stripe.confirmPayment()](https://docs.stripe.com/js/payment_intents/confirm_payment), comme indiqué. Consultez la page [Méthodes de recouvrement de la facturation](https://docs.stripe.com/billing/collection-method.md) pour en savoir plus. ## Optional: Modifiez vos produits et tarifs Stripe Tax utilise les informations stockées sur les *produits* (Products represent what your business sells—whether that's a good or a service) et les *tarifs* (Prices define how much and how often to charge for products. This includes how much the product costs, what currency to use, and the interval if the price is for subscriptions) pour calculer la taxe, par exemple le *code fiscal* (A tax code is the category of your product for tax purposes) et le *régime fiscal* (Tax behavior determines whether you want to include taxes in the price ("inclusive") or add them on top ("exclusive")). Si vous ne spécifiez pas explicitement ces configurations, Stripe Tax utilisera le code de taxe par défaut sélectionné dans les [paramètres fiscaux](https://dashboard.stripe.com/settings/tax). Pour plus d’informations, consultez la page [Spécifier les codes fiscaux du produit et le comportement fiscal](https://docs.stripe.com/taxer/products-prices-taxer-codes-taxer-behavior.md). ## Optional: Gérer les remboursements [Côté serveur] Lorsque vous procédez à un remboursement pour le paiement d’une facture, Stripe Tax réduit automatiquement votre montant d’imposition. Vous pouvez également émettre des [Notes de crédit](https://docs.stripe.com/api/credit_notes/object.md) pour suivre la baisse des taxes et fournir des enregistrements à vos clients. #### Rembourser le montant d'une facture Pour rembourser un montant associé au total d’une facture, créez une note de crédit et un remboursement. #### Note de crédit avec remboursement automatique Créez conjointement une note de crédit et un [remboursement](https://docs.stripe.com/api/refunds/object.md) en appelant [créer une note de crédit](https://docs.stripe.com/api/credit_notes/create.md) et en spécifiant une valeur `refund_amount`. ```curl curl https://api.stripe.com/v1/credit_notes \ -u "<>:" \ -d invoice="{{INVOICE_ID}}" \ -d refund_amount=1000 ``` #### Note de crédit avec remboursement manuel [Créez un remboursement](https://docs.stripe.com/api/refunds/create.md), puis spécifiez son ID lorsque vous créez une [Note de crédit](https://docs.stripe.com/api/credit_notes/object.md). Dans ce cas, ne spécifiez aucune valeur `refund_amount`. ```curl curl https://api.stripe.com/v1/credit_notes \ -u "<>:" \ -d invoice="{{INVOICE_ID}}" \ -d "refunds[0][refund]"="{{REFUND_ID}}" \ -d "refunds[0][amount_refunded]"=1000 ``` Stripe Tax répartit automatiquement le montant total du remboursement entre les taxes et le montant net. #### Rembourser le montant d'un poste de facture Si vous souhaitez rembourser un montant associé à un poste de facture, calculez d’abord les montants [total](https://docs.stripe.com/api/credit_notes/object.md#credit_note_object-total) etd [total_excluding_tax](https://docs.stripe.com/api/credit_notes/object.md#credit_note_object-total_excluding_tax) en appelant [preview Credit Note](https://docs.stripe.com/api/credit_notes/preview.md). ```curl curl -G https://api.stripe.com/v1/credit_notes/preview \ -u "<>:" \ -d invoice="{{INVOICE_ID}}" \ -d "lines[0][type]"=invoice_line_item \ --data-urlencode "lines[0][invoice_line_item]"="{{line item id from invoice}}" \ -d "lines[0][amount]"=1000 ``` Créez ensuite une [note de crédit](https://docs.stripe.com/api/credit_notes/object.md) et un [remboursement](https://docs.stripe.com/api/refunds/object.md). #### Note de crédit avec remboursement automatique Créez conjointement une note de crédit et un [remboursement](https://docs.stripe.com/api/refunds/object.md) en appelant [créer une note de crédit](https://docs.stripe.com/api/credit_notes/create.md) et en spécifiant une valeur `refund_amount`. ```curl curl https://api.stripe.com/v1/credit_notes \ -u "<>:" \ -d invoice="{{INVOICE_ID}}" \ -d refund_amount=1000 \ -d "lines[0][type]"=invoice_line_item \ -d "lines[0][invoice_line_item]"="{{line item id from invoice}}" \ -d "lines[0][amount]"=1000 ``` #### Note de crédit avec remboursement manuel [Créez un remboursement](https://docs.stripe.com/api/refunds/create.md) à l’aide de la valeur `total`calculée par l’aperçu Note de crédit, puis spécifiez son ID lorsque vous créez une [Note de crédit](https://docs.stripe.com/api/credit_notes/object.md). Dans ce cas, ne spécifiez aucune valeur `refund_amount`. ```curl curl https://api.stripe.com/v1/credit_notes \ -u "<>:" \ -d invoice="{{INVOICE_ID}}" \ -d "refunds[0][refund]"="{{REFUND_ID}}" \ -d "refunds[0][amount_refunded]"=1000 \ -d "lines[0][type]"=invoice_line_item \ -d "lines[0][invoice_line_item]"="{{line item id from invoice}}" \ -d "lines[0][amount]"=1000 ``` ## Utiliser des webhooks Nous vous recommandons d’écouter les événements d’abonnement avec des *webhooks* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests), car la plupart des activités d’abonnement se déroulent de manière asynchrone. Lorsque vous commencez à utiliser Stripe Tax, assurez-vous d’écouter les événements [invoice.finalization_failed](https://docs.stripe.com/api/events/types.md#event_types-invoice.finalization_failed) Si le [automatic_tax.status](https://docs.stripe.com/api/invoices/object.md#invoice_object-automatic_tax-status) de la facture est `requires_location_inputs`, cela signifie que les coordonnées de votre client ne sont pas valides ou sont insuffisantes. Dans ce cas, Stripe n’est pas en mesure de calculer les taxes, de finaliser la facture ni de percevoir le paiement. Demandez à votre client de saisir à nouveau son adresse ou de fournir une adresse exacte. Pour en savoir plus, consultez la page [Utiliser des webhooks avec les abonnements](https://docs.stripe.com/billing/subscriptions/webhooks.md). # Taux de taxe > This is a Taux de taxe for when tax-calculation is tax-rates. View the full page at https://docs.stripe.com/billing/taxes/collect-taxes?tax-calculation=tax-rates. Pour collecter les taxes sur un abonnement, définissez les [taux de taxe sur l’abonnement](https://docs.stripe.com/billing/taxes/collect-taxes.md#static-configuration) ou [définissez les taux de taxe sur les factures lors du renouvellement de l’abonnement](https://docs.stripe.com/billing/taxes/collect-taxes.md#dynamic-configuration). Ou, si vous utilisez Checkout, vous pouvez [spécifier les taux de taxe dans les sessions Checkout](https://docs.stripe.com/billing/taxes/collect-taxes.md#adding-tax-rates-to-checkout) pour appliquer les taxes aux abonnements. ## Définissez les taux d’imposition sur un abonnement { % badge color="blurple » label="Recommandé » / %} Les abonnements créent des brouillons de facture qui restent modifiables pendant une heure environ. Dans ce laps de temps, vous pouvez corriger les taux de taxe en procédant comme indiqué ci-après. Vous pouvez appliquer des taxes au niveau de l’abonnement et au niveau du poste d’abonnement, et configurer jusqu’à [cinq taux de taxe](https://docs.stripe.com/billing/taxes/tax-rates.md#using-multiple-tax-rates) sur chaque poste d’abonnement. Lorsque des factures sont générées pour les abonnements, les taux de taxe sont transmis par l’abonnement à la facture. Dans l’exemple ci-dessous, le premier poste d’abonnement utilise deux taux de taxe, établis à 3 % et 5 %, qui remplacent le taux de taxe de 1 % défini au niveau de l’abonnement. Aucun taux de taxe n’a été directement configuré pour le second poste, qui utilise par conséquent automatiquement le taux de 1 % défini au niveau de l’abonnement. | | | | | Poste d’abonnement 1 | 3 % et 5 % | ➡️ | Poste de facture 1 | 3 % et 5 % | | Poste d’abonnement 2 | (aucune taxe définie) | ➡️ | Poste de facture 2 | (aucune taxe définie) | | Abonnement | 1 % | ➡️ | Facture | 1 % | Vous pouvez définir les taux de taxe applicables au moment de la création ou de la mise à jour de vos postes d’abonnement en transmettant leur [ID de taux de taxe](https://docs.stripe.com/api/subscription_items/object.md#subscription_item_object-tax_rates-id). L’exemple ci-dessous met à jour un poste d’abonnement existant avec deux taux de taxe : ```curl curl https://api.stripe.com/v1/subscription_items/si_F2yjdxUlCCOAtv \ -u "<>:" \ -d "tax_rates[]"=txr_1F6kmAAJVYItwOKqV9IWehUH \ -d "tax_rates[]"=txr_2J8lmBBGHJYyuUJqF6QJtkNM ``` Vous pouvez définir les taux de taxe applicables au niveau de l’abonnement au moment de la création ou de la mise à jour de vos abonnements en transmettant leur [ID de taux de taxe par défaut](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-default_tax_rates). L’exemple ci-dessous met à jour un abonnement existant avec deux taux de taxe : ```curl curl https://api.stripe.com/v1/subscriptions/sub_BVxXIrxAAYb7Fb \ -u "<>:" \ -d "default_tax_rates[]"=txr_1EO66sClCIKljWvs98IiVfHW \ -d "default_tax_rates[]"=txr_1EEOvcClCIKljWvsqYb9U0MB ``` ## Configurer dynamiquement les taux de taxe sur chaque période de service de l’abonnement Si vous ajoutez des [postes de facture supplémentaires](https://docs.stripe.com/billing/invoices/subscription.md#adding-upcoming-invoice-items), ou que les taux de taxe changent fréquemment selon la juridiction, vous pouvez calculer et attribuer dynamiquement vos taux de taxe à la facture de l’abonnement au moment de sa création. Lorsqu’un abonnement est renouvelé et génère une facture, Stripe envoie l’événement *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) `invoice.created`. Stripe [attend une heure environ](https://docs.stripe.com/billing/subscriptions/webhooks.md#understand) avant de finaliser la facture et de lancer une tentative de paiement ou d’envoyer un e-mail. Pendant ce laps de temps, la facture est à l’état de [brouillon](https://docs.stripe.com/api/invoices/object.md#invoice_object-status) et reste modifiable. Suivez la procédure établie pour [attribuer des taux de taxe](https://docs.stripe.com/invoicing/taxes/tax-rates.md) à votre facture. Si vous avez des [proratas](https://docs.stripe.com/billing/subscriptions/prorations.md) de crédit, utilisez le paramètre `proration_details` de l’objet [(Invoice) Line Item](https://docs.stripe.com/api/invoice-line-item/object.md) pour référencer les postes de débit originaux auxquels appliquer le prorata de crédit. Utilisez cette référence pour ajuster correctement les montants de taxe pour les prorata de crédit. ## Ajouter des taux de taxe à Checkout Pour appliquer des taxes aux *abonnements* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis), vous pouvez préciser des [taux de taxe](https://docs.stripe.com/billing/taxes/tax-rates.md) (taxe de vente, TVA, GST, etc.) dans les sessions Checkout. - Utilisez des taux de taxe fixes lorsque vous connaissez le taux de taxe exact applicable à vos clients avant qu’ils n’engagent le processus de paiement (par exemple, si vous ne vendez qu’à des clients basés au Royaume-Uni et que vous facturez toujours une TVA de 20 %). - Avec l’API *Prices* (Prices define how much and how often to charge for products. This includes how much the product costs, what currency to use, and the interval if the price is for subscriptions), vous pouvez utiliser des taux de taxe dynamiques lorsque vous avez besoin de davantage d’informations sur votre client (par exemple, son adresse de facturation ou de livraison) pour déterminer le taux de taxe à lui appliquer. Avec les taux de taxe dynamiques, vous créez des taux de taxe propres à chaque région : par exemple, un taux de TVA de 20 % pour vos clients basés au Royaume-Uni et de 7,25 % pour vos clients basés en Californie. Stripe tente ensuite d’apparier la localisation de vos clients à l’un de ces taux de taxe. #### Taux de taxe fixes Configurez [subscription_data.default_tax_rates](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-subscription_data-default_tax_rates) pour appliquer un taux de taxe par défaut à un abonnement utilisant Checkout. #### curl ```bash curl https://api.stripe.com/v1/checkout/sessions \ -u <>: \ -d "payment_method_types[]"=card \ -d "line_items[][price]"="{{PRICE_ID}}" \ -d "line_items[][quantity]"=1 \-d "subscription_data[default_tax_rates][]"="{{TAX_RATE_ID}}" \ -d mode=subscription \ -d success_url="https://example.com/success" \ ``` Vous pouvez également spécifier des [line_items.tax_rates](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-tax_rates) ou des [subscription_data.items.tax_rates](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-subscription_data-items-tax_rates) pour appliquer des taux de taxe à des plans ou des postes de facture spécifiques. #### curl ```bash curl https://api.stripe.com/v1/checkout/sessions \ -u <>: \ -d "payment_method_types[]"="card" \ -d "line_items[][price]"="{{PRICE_ID}}" \ -d "line_items[][quantity]"=1 \-d "line_items[][tax_rates][0]"="{{TAX_RATE_ID}}" \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ ``` #### Taux de taxe dynamiques Transmettez le tableau de [taux de taxes](https://docs.stripe.com/api/tax_rates/object.md) à [line_items.dynamic_tax_rates](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-dynamic_tax_rates). Chaque taux doit être associé à un paramètre `country` [pris en charge](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-dynamic_tax_rates), et pour les États-Unis, à un paramètre `state`. Cette liste met en correspondance les taux de taxe avec l’[adresse de livraison](https://docs.stripe.com/payments/collect-addresses.md), l’adresse de facturation ou le pays de votre client. L’adresse de livraison est prioritaire sur l’adresse de facturation pour déterminer le taux de taxe à appliquer. Si vous ne collectez pas l’adresse de livraison ou de facturation de vos clients, le taux de taxe est déterminé en fonction de leur pays de résidence (et de leur code postal, le cas échéant). Si vous ne transmettez pas de taux de taxe pour l’adresse de livraison, l’adresse de facturation ou le pays de vos clients, aucun taux n’est appliqué. #### curl ```bash curl https://api.stripe.com/v1/checkout/sessions \ -u <>: \ -d "payment_method_types[]"="card" \ -d "line_items[][price]"="{{PRICE_ID}}" \ -d "line_items[][quantity]"=1 \-d "line_items[][dynamic_tax_rates][]"="{{FIRST_TAX_RATE_ID}}" \ -d "line_items[][dynamic_tax_rates][]"="{{SECOND_TAX_RATE_ID}}" \ -d "mode"="subscription" \ -d "success_url"="https://example.com/success" \ ``` > [subscription_data.default_tax_rates](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-subscription_data-default_tax_rates) et [line_items.tax_rates](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-tax_rates) ne peuvent pas être utilisés avec [line_items.dynamic_tax_rates](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-dynamic_tax_rates). Vous pouvez utiliser les exportations de données de Stripe pour renseigner les rapports périodiques nécessaires dans le cadre du reversement des taxes. Veuillez consulter la page [Déclaration et versement des taxes](https://docs.stripe.com/billing/taxes/tax-rates.md#remittance) pour obtenir plus d’informations. ## See also - [Déterminer la localisation de vos clients](https://docs.stripe.com/tax/customer-locations.md) - [Numéros fiscaux des clients](https://docs.stripe.com/billing/customer/tax-ids.md) - [Déclarations fiscales](https://docs.stripe.com/tax/reports.md) - [Taux de taxe](https://docs.stripe.com/billing/taxes/tax-rates.md) - [Taux de taxe sur les factures](https://docs.stripe.com/invoicing/taxes/tax-rates.md)