Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Revenus
Plateformes et places de marché
Gestion de fonds
Ressources pour les développeurs

Collecter des taxes sur les abonnements aux grilles tarifaires à l'usageVersion bêta privée

Découvrez comment calculer et collecter les taxes sur les abonnements aux grilles tarifaires à l'usage.

Version bêta privée

Rate cards are currently in private preview and could change in functionality and integration path before they’re generally available to all Stripe users.

Vous pouvez utiliser Stripe Tax pour calculer le montant fiscal sur les paiements récurrents des abonnements carte tarifaire. Pour gérer automatiquement le calcul fiscal lorsque votre client est prêt à payer, définissez les détails de localisation du client lorsque vous créez un abonnement carte tarifaire.

Activer Stripe Tax

Connectez-vous ou créez un compte Stripe pour activer Stripe Tax.

Mettre à jour les grilles tarifaires (facultatif)

Lorsque vous créez une carte tarifaire, vous spécifiez le code fiscal produit. Si vous ne spécifiez pas de code, Stripe Tax utilise le code fiscal par défaut sélectionné dans vos Paramètres fiscaux.

Recueillir les informations du client
Côté client

Après avoir obtenu une estimation des taxes et du total, vous pouvez collecter les informations du client, notamment :

  • Adresse de livraison (le cas échéant)
  • Adresse de facturation
  • Détails du paiement

Stripe Tax collecte les informations de paiement sans créer de Setup Intent. La première étape consiste à créer un objet Elements sans Intent :

checkout.js
const stripe = Stripe(
"pk_test_TYooMQauvdEDq54NiTphI7jx"
); const elements = stripe.elements({ mode: 'subscription', currency: '{{CURRENCY}}', amount:
{{TOTAL}}
, });

Ensuite, créez un Address Element et un Payment Element et montez-les :

checkout.js
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');

Écoutez les événements de modification sur le composant Address Element. En cas de modification de l’adresse, réestimez les taxes et le montant total.

checkout.js
addressElement.on('change', 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... });

Erreur fréquente

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 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() 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.

checkout.js
document.querySelector("#form").addEventListener("submit", 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); // See the "Create subscription" section below to implement this server-side. const {
clientSecret
} = await
createSubscription
(); const { error: confirmError } = await stripe.confirmPayment({ elements, clientSecret, confirmParams: { return_url:
{{RETURN_URL}}
, }, }); 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

Modifiez 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.

Spécificités régionales
États-Unis

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 un maintenant.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node
Go
.NET
No results
curl https://api.stripe.com/v1/customers/
{{CUSTOMER_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -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

Mise en garde

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.

La valeur d’énumération tax.validate_location permet de s’assurer que le territoire fiscal du client devient (ou reste) valide à la suite de cette opération. S’il n’est pas valide, Stripe fait échouer votre requête avec le code d’erreur customer_tax_location_invalid. Ceci est important, car vous ne pouvez pas créer d’abonnement avec calcul automatique des taxes pour un client dont le territoire fiscal n’est pas valide. Si vous avez précédemment vérifié l’état automatic_tax.status de vos factures en version bêta tel que recommandé, cette validation supplémentaire n’échouera jamais. Cependant, il est recommandé de définir tax[validate_location]="immediately" chaque fois que vous créez ou mettez à jour un objet Customer.

Abonner votre client à une grille tarifaire

Après avoir créer une carte tarifaire, vous pouvez commencer à vous abonner des clients.

Lorsque vous abonnez votre client à la grille tarifaire, vous définissez également la fréquence de facturation, c’est-à-dire la fréquence à laquelle vous créez des factures pour votre client. Lorsque vous créez une cadence de facturation, vous spécifiez le mode de collecte : prélèvement automatique ou envoi d’une facture. Si vous prélevez le client automatiquement, une facture est créée et le moyen de paiement par défaut du client est débité. Si vous envoyez une facture, le client reçoit une facture qu’il doit payer manuellement.

  1. Allez à la page Cartes tarifaires et cliquez sur la carte tarifaire à laquelle vous souhaitez abonner votre client.
  2. Sur la page des détails de la grille tarifaire, cliquez sur le menu de débordement () en regard de Modifier la grille tarifaire.
  3. Dans l’éditeur d’abonnement de grille tarifaire :
    • Sélectionnez ou ajoutez un client.
    • Définissez la Fréquence de facturation, c’est-à-dire la fréquence et la date d’envoi d’une facture au client.
    • Cliquez sur Collecter automatiquement les taxes avec Stripe Tax pour activer la collecte automatique des taxes avec Stripe Tax.
    • Cliquez sur Créer un abonnement.
Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Rejoignez notre programme d'accès anticipé.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc