Utiliser des montants de taxes calculés en dehors de Stripe avec Stripe Billing
Utilisez les taxes calculées à partir d'un système externe avec Stripe Invoices.
Pour s’adapter à de nombreux scénarios de facturation différents, Stripe permet de définir les montants de taxe directement sur les factures. Cela vous permet de l’intégrer à d’autres systèmes de calcul des taxes (par exemple à un outil tiers comme Avalara ou à un outil interne). Ce guide passe en revue différents scénarios de facturation pour vous montrer comment utiliser le champ tax_amounts.
Créer une facture avec des montants de taxe manuels
Cette section décrit l’ajout manuel de montants de taxe aux sous-postes de facture.
Créer une facture avec un poste de facture
La première étape consiste à créer une facture. Nous partons du principe que vous avez déjà créé un client, mais si ce n’est pas le cas, veuillez vous reporter au guide concernant les clients.
Les montants de taxe manuels peuvent uniquement être ajoutés aux sous-postes de facture. Ajoutez donc un poste de facture à la facture.
Mettre à jour le poste de facture avec tax_amounts
Le endpoint Update invoice line item accepte le paramètre tax_amounts. Ce champ permet aux marchands de définir directement les montants des taxes sur les sous-postes de facture. Le champ nécessite également des données concernant le taux de taxe afin de présenter des informations adéquates au client. L’exemple ci-dessous modifie un poste de facture avec le champ tax_
.
Tous les champs sous tax_
sont obligatoires sauf description
, jurisdiction
, country
, state
et tax_
. L’objet Invoice Line Item renvoie un champ tax_
.
{ id: "il_0O4tNe589O8KAxCGYD7OyXPP", object: "line_item", amount: 100, amount_excluding_tax: 100, currency: "usd", ... tax_amounts: [ { amount: 10, inclusive: false, tax_rate: "txr_0Ns7kW589O8KAxCGXoi7EAuS", taxability_reason: null, taxable_amount: 100 } ], tax_rates: [], ... }
Note
Stripe crée ou réutilise automatiquement un taux de taxe existant en fonction de tax_
. Cependant, Stripe calcule uniquement le montant des taxes sur la facture en fonction du paramètre amount. Les autres valeurs, telles que le taux de taxe, ne sont utilisées qu’à des fins d’affichage sur la facture. Aucune validation n’est exécutée sur ces champs pour s’assurer qu’ils sont cohérents avec les montants de taxe indiqués.
Finaliser la facture
Une fois que tous les postes de facture ont été mis à jour avec les montants des taxes, vous devez finaliser la facture. Les montants de taxe ne peuvent pas être modifiés après la finalisation de la facture. Reportez-vous au guide de modification de facture si vous devez modifier la facture après sa finalisation.
Stripe crée automatiquement des taux de taxe
Pour les montants de taxe manuels, Stripe exige des informations sur le taux de taxe correspondant. Le taux de taxe n’est utilisé que pour présenter des informations aux clients. Il n’est utilisé dans aucun calcul.
Stripe crée automatiquement des objets de taux de taxe en arrière-plan en fonction du paramètre tax_
. Si les mêmes données de taux de taxe sont transmises plusieurs fois, Stripe se rapporte à l’objet de taux de taxe existant au lieu d’en créer un autre. Les champs suivants sont utilisés pour dédupliquer le taux de taxe : percentage
, inclusive
, display_
, jurisdiction
, country
, state
et tax_
. Dans cet exemple, supposons qu’un deuxième sous-poste de facture a été mis à jour sur la facture à partir de la section précédente avec le même tax_
.
{ id: "il_0P6nbg589O8KAxCGRWBJAdNV", object: "line_item", amount: 100, amount_excluding_tax: 100, currency: "usd", ... tax_amounts: [ { amount: 10, inclusive: false, tax_rate: "txr_0Ny6QR589O8KAxCGo6MKGPxM", taxability_reason: null, taxable_amount: 100 } ], tax_rates: [], ... }
Les deux sous-postes de facture ont le même ID tax_
sous tax_
. Stripe gère la création et la déduplication des taux de taxe afin de simplifier la tâche des marchands. Bien que l’ID tax_
corresponde à un objet de taux de taxe valide, les ID mappés à des taux de taxe créés automatiquement ne peuvent pas être transmis dans le champ tax_
de l’API. La seule exception à cette règle est l’endpoint de création d’avoirs.
Émettre un avoir
Les avoirs permettent d’ajuster les factures sans avoir à annuler la facture. Lors de l’émission d’un avoir pour un sous-poste de facture avec des montants de taxe manuels, l’API a besoin d’informations supplémentaires pour le créer avec précision.
Créer un avoir
L’endpoint de création d’avoirs accepte également le paramètre tax_
. Ce champ est obligatoire lorsque le sous-poste de facture correspondant comporte des montants de taxe manuels. Cela permet de garantir une comptabilité précise de l’avoir et d’assurer la cohérence avec vos factures.
Limites
Gardez à l’esprit les contraintes suivantes lorsque vous travaillez avec des montants de taxe manuels.
Les postes de facture n’ont pas de montant de taxe
Les montants de taxe manuels peuvent uniquement être ajoutés aux sous-postes de facture.
taxable_amount et tax_rates ne sont pas validés
Le montant d’imposition et le taux de taxe transmis dans la requête ne sont utilisés qu’à des fins d’affichage. Ils ne sont pas validés par rapport au montant de taxe indiqué dans la requête.
Impossible de mélanger tax_amounts et tax_rates
Un sous-poste de facture ne peut pas comporter de montants de taxe manuels s’il possède également un taux de taxe, et inversement. De plus, les sous-postes de facture ne peuvent pas comporter de montants de taxe manuels si la facture présente un taux de taxe par défaut ou si l’un des autres sous-postes de la facture présente un taux de taxe.
tax_amounts peut devenir obsolète lors de la mise à jour d’autres champs
Les montants de taxe manuels existants restent sur le poste de facture, sauf s’ils sont directement modifiés. Cela peut rendre des montants de taxe obsolètes lorsque vous mettez à jour le poste de facture avec des champs associés à son montant, tels que amount
, discounts
ou price
.
Les taux de taxe créés automatiquement ne peuvent pas être utilisés directement
Stripe crée automatiquement des objets de taux de taxe pour les montants de taxe manuels. Ces taux de taxe ne peuvent pas être directement référencés sur les endpoints liés aux factures ou aux paiements, à l’exception de l’endpoint des avoirs. Ils ne peuvent pas non plus être mis à jour directement et ne seront pas inclus dans l’endpoint de tous les taux de taxe. Cependant, les données du taux de taxe sont accessibles en appelant l’endpoint de récupération du taux de taxe avec son token.