# Taxes sur les ventes de billets en fonction du lieu de l’événement Intégrez Stripe Tax pour calculer les taxes sur les droits d’entrée et les billets. Lorsque vous vendez des entrées à un événement (comme un concert, une conférence, une visite de musée, ou événement sportif), la TVA et la taxe sur les ventes sont basées sur le lieu de l’événement, et non sur le lieu de résidence du client. Aux États-Unis, des taxes locales spécifiques (comme les taxes sur les divertissements) peuvent également s’appliquer, en plus des taxes de l’État et sur les ventes locales. Utilisez ce guide pour calculer automatiquement les taxes sur les droits d’entrée et les billets. ## Choisissez votre intégration Sélectionnez un chemin d’intégration qui correspond le mieux à la manière dont vous souhaitez accepter des paiements avec Stripe. Si vous êtes une plateforme ou marketplace utilisant *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients), consultez la section [plateformes et marketplaces](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#configure-tax) pour configurer la taxation des billets. | | [Intégration de Payment Intent](https://docs.stripe.com/tax/payment-intent.md) | [Intégration de Checkout Session](https://docs.stripe.com/tax/checkout.md) | [Intégration de l’API Custom Tax Calculation](https://docs.stripe.com/tax/payment-intent/custom.md) | | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Idéal pour | Contrôle total du tunnel de paiement avec les transactions fiscales gérées par Stripe | Paiement low-code hébergé par Stripe avec une configuration minimale | Prestataire de paiement ou flux de paiement entièrement personnalisés | | Avantages | - Moins d’appels à l’API - Gestion automatisée des remboursements - Prise en charge du Dashboard, spécifiquement utile pour les tests - Prise en charge intégrée des reçus | - Moins d’appels à l’API - Intégration de paiement low-code, hébergée par Stripe - Prise en charge des abonnements - Prise en charge du Dashboard, spécifiquement utile pour les tests | - Contrôler entièrement le tunnel de paiement - Prise en charge d’autres prestataires de services de paiement, tels que PayPal | | Inconvénients | - La fonctionnalité de prévisualisation peut nécessiter une mise à jour du SDK - Prise en charge limitée d’autres prestataires de services de paiement, tels que PayPal | - La fonctionnalité de prévisualisation peut nécessiter une mise à jour du SDK - Moins de contrôle sur l’interface utilisateur et l’expérience utilisateur - Plus rigide, peut ne pas correspondre à votre cas d’usage spécifique | - Les remboursements nécessitent une implémentation personnalisée - Prise en charge limitée du Dashboard - Les tests nécessitent une API - Aucune génération automatique de reçus | ## Mettre à jour le SDK de Stripe Le calcul des taxes pour les événements est en [version bêta publique](https://docs.stripe.com/sdks/versioning.md#public-preview-release-channel) et nécessite une version d’API en version bêta publique (`2026-03-25.preview` ou ultérieure). Consultez les notes de version du SDK pour vérifier quelles versions prennent en charge Stripe Tax pour les événements. ## Configurer Stripe Tax Lorsque vous [configurez Stripe Tax](https://docs.stripe.com/tax/set-up.md) pour les tickets, définissez le code fiscal du produit par défaut sur `txcd_20030000`, `General - Services`. Vous ne pouvez définir aucun des [codes fiscal de l’événement](https://docs.stripe.com/tax/tax-codes.md?type=events#all-tax-codes) comme code fiscale du produit par défaut. Ajoutez une immatriculation pour les tests via le Dashboard ou l’[API Tax Registrations](https://docs.stripe.com/tax/registrations-api.md). #### Dashboard 1. Depuis la [page territoire fiscal](https://dashboard.stripe.com/tax/locations) sur le Dashboard, cliquez sur **Ajouter immatriculation**. 1. Ajoutez les immatriculations applicables à l’emplacemet de l’événement. Par exemple : - États-Unis - Colorado, Sales Tax (taxes sur les ventes) - États-Unis - Colorado, Boulder Admissions Tax (taxe de Boulder sur le prix des entrées) #### API Registrations Consultez la liste de [tous les types d’enregistrement et juridictions pris en charge ](https://docs.stripe.com/tax/registering.md?registrationTypeRegion=united-states#registration-types). ```curl curl https://api.stripe.com/v1/tax/registrations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d country=US \ -d "country_options[us][state]=CO" \ -d "country_options[us][type]=admissions_tax" \ -d "country_options[us][admissions_tax][jurisdiction]=07850" \ -d active_from=now ``` Les calculs de Stripe Tax n’entraînent pas de frais dans un *environnement de test* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes). Une fois que vous ajoutez une immatriculation fiscale, le calcul de la taxe en mode production entraîne des frais. Le calcul des taxes pour la vente de billets diffère des calculs des taxes habituels, car ils sont basés sur le lieu de représentation plutôt que sur l’adresse de facturation ou de livraison du client. ## Créer un lieu de représentation [Créez un emplacement fiscal](https://docs.stripe.com/api/tax/location/create.md?lang=curl&api-version=preview) de type `performance` et indiquez l’adresse du lieu de l’événement. Vous pouvez utiliser n’importe quelle adresse admissible à un [TaxCalculation](https://docs.stripe.com/api/taxer/calculations.md) dans un [pays pris en charge](https://docs.stripe.com/tax/supported-countries.md#supported-countries) où le type de vente est `All Sales`. Chaque pays exige différents [formats d’adresse](https://docs.stripe.com/tax/customer-locations.md#supported-formats) pour l’emplacement. ```curl curl https://api.stripe.com/v1/tax/locations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d type=performance \ --data-urlencode "address[line1]=Folsom and, Pearl St" \ -d "address[city]=Boulder" \ -d "address[state]=CO" \ -d "address[postal_code]=80302" \ -d "address[country]=US" \ -d "description=Greenleaf Park" ``` La réponse renvoie l’`id` comme identifiant unique pour le lieu de représentation. Conservez cette valeur pour l’utiliser dans les transactions où vous [calculez les taxes](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#apply-tax-locations) des ventes dans ce lieu. ```json { "id": "taxloc_yB7b4tVHRb", // ... other fields omitted } ``` Une entrée de base de données pour cet exemple peut être : | **id** | **venue\_name** | **capacity** | **seatplan** | **stripe\_location\_id** | | -------------------- | --------------- | ------------ | ------------------------------------ | ------------------------ | | `` | Greenleaf Park | 500 | https://example.com/seating-plan.png | `taxloc_yB7b4tVHRb` | Tableau : your_business.venues ### Erreurs de validation de l’adresse de localisation Si vous rencontrez un problème concernant l’adresse du lieu de recouvrement, l’API Tax Location renvoie une erreur. ``` { "error": { "message": "MESSAGE", "param": "address", "request_log_url": "https://dashboard.stripe.com/test/logs/req_eSIK4gvAqUmW26?t=1747141000", "type": "invalid_request_error" } } ``` - La propriété `param` identifie l’attribut d’adresse le plus spécifique possible. - La propriété `message` précise l’une des raisons spécifiques suivantes de l’erreur. #### Adresse non valide `The address is not supported by Stripe Tax for a tax location. Please use a valid address.` La validation de l’adresse a échoué. Consultez les [formats d’adresse pris en charge](https://docs.stripe.com/tax/customer-locations.md#supported-formats) pour connaître les exigences en matière d’adresse. #### Pays non pris en charge ou territoire exclu `The address is not supported by Stripe Tax for a tax location. Please use a location that is supported by Stripe Tax.` Le pays n’est pas [pris en charge](https://docs.stripe.com/tax/supported-countries.md) ou l’adresse se trouve dans un [territoire exclu](https://docs.stripe.com/tax/zero-tax.md#excluded-territories). ## Créer un produit Créez un produit avec un code fiscal d’événement et un lieu de représentation à utiliser dans votre Checkout Session. #### Dashboard Vous pouvez créer un produit avec un code fiscal d’événement et un lieu de représentation dans le **[catalogue de produits](https://dashboard.stripe.com/products?create=product)**. #### API Product Lors de la création d’un produit, transmettez le code fiscal d’événement et un lieu de représentation en tant qu’informations fiscales. ```curl curl https://api.stripe.com/v1/products \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d name=Ticket \ -d "tax_details[tax_code]=txcd_50010001" \ -d "tax_details[performance_location]=taxloc_yB7b4tVHRb" ``` ### Erreurs Vous pouvez rencontrer les erreurs suivantes lors de la création d’un produit avec un code fiscal d’événement et un lieu de représentation. | Erreur | Description | Suggestion | | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Unknown tax location being passed. Please use a valid tax location.` | L’ID du lieu de représentation n’appartient pas à un lieu de représentation accessible par le compte Stripe. Vous devez créer des lieu de représentation distincts pour chaque compte connecté et le compte de la plateforme. | Si vous effectuez des appels à l’API en tant que plateforme Connect au nom d’un compte connecté, assurez-vous d’avoir créé le lieu de représentation pour le compte connecté plutôt que pour votre plateforme. | | `Tax code txcd_50010001 requires a tax location to be passed of the type`performance`.` | Le paramètre [lieu de représentation](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#tax-location-api-usage) requis par le code fiscal du produit fourni est manquant dans la requête. | Soit vous modifiez le code fiscal du produit, soit vous incluez le lieu de représentation. | | `Le code fiscal txcd_99999999 ne prend pas en charge un lieu fiscal avec le type`performance_.` | Vous avez inclus un lieu de représentation dans votre requête, mais le code fiscal du produit que vous avez transmis ne prend pas en charge un lieu de représentation. | Soit vous modifiez le code fiscal du produit, soit vous supprimez le lieu de représentation. | ## Créer une session de paiement Lors de la création d’une [session de paiement](https://docs.stripe.com/api/checkout/sessions/create.md), utilisez le produit que vous avez créé avec un code fiscal d’événement et un lieu de représentation. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d "automatic_tax[enabled]=true" \ -d "line_items[0][quantity]=1" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][unit_amount]=8500" \ -d "line_items[0][price_data][product]={{PRODUCT_ID}}" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" ``` ## Optional: Vendre des produits en même temps que des billets d’événement Vous pouvez inclure à la fois des billets d’événement et des marchandises physiques dans la même transaction. Chaque poste est taxé différemment : - **Billets d’événement** : taxés en fonction du lieu de la représentation (où se déroule l’événement), en utilisant un code fiscal d’événement tel que `txcd_50010001`. - **Marchandises physiques** : taxées en fonction de l’adresse de livraison du client, en utilisant un code fiscal pour biens matériels tel que [`txcd_99999999`](https://docs.stripe.com/tax/tax-codes.md?type=physical#all-tax-codes). Par exemple, un client à Chicago peut acheter en un seul paiement un billet pour un événement running à Boulder, Colorado *et* un t-shirt expédié à son adresse de Chicago. Le billet est taxé aux taux de Boulder, Colorado et le t-shirt est taxé aux taux de l’Illinois (Chicago). > Une seule adresse de livraison par transaction est prise en charge. Tous les biens physiques du panier sont taxés sur la base de cette adresse de livraison unique. ### Mettre en place les immatriculations Avant de créer une transaction avec panier mixte, assurez-vous d’avoir des immatriculations fiscales actives pour chaque juridiction où la taxe sera collectée. Pour cet exemple, vous avez besoin de : - Une immatriculation fiscale à la taxe sur les ventes de l’État du Colorado (pour le billet d’événement) - Une immatriculation fiscale à la taxe d’admission de Boulder, Colorado (pour le billet d’événement) - Une immatriculation fiscale à la taxe sur les ventes de l’État de l’Illinois (pour les marchandises physiques expédiées à Chicago) #### Dashboard Depuis la page [Immatriculations fiscales](https://dashboard.stripe.com/tax/registrations) sur le Dashboard, cliquez sur **Ajouter une immatriculation** et ajoutez : - États-Unis – Colorado, taxe sur les ventes - États-Unis – Colorado, taxe d’admission de Boulder - États-Unis – Illinois, taxe sur les ventes #### API Registrations ```curl curl https://api.stripe.com/v1/tax/registrations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d country=US \ -d "country_options[us][state]=CO" \ -d "country_options[us][type]=state_sales_tax" \ -d active_from=now ``` ```curl curl https://api.stripe.com/v1/tax/registrations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d country=US \ -d "country_options[us][state]=CO" \ -d "country_options[us][type]=admissions_tax" \ -d "country_options[us][admissions_tax][jurisdiction]=07850" \ -d active_from=now ``` ```curl curl https://api.stripe.com/v1/tax/registrations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d country=US \ -d "country_options[us][state]=IL" \ -d "country_options[us][type]=state_sales_tax" \ -d active_from=now ``` ### Créer une session Checkout de paiement mixte Spécifiez `tax_details` directement sur le `product_data` de chaque poste. Pour le billet d’événement, incluez à la fois `performance_location` (à partir de l’[emplacement de représentation que vous avez créé](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#tax-location-api-usage)) et `tax_code`. Pour les marchandises physiques, incluez uniquement `tax_code`. Stripe Tax utilise l’adresse de livraison du client pour déterminer le taux applicable. Utilisez l’adresse de test suivante comme emplacement de livraison client lorsque vous terminez la session Checkout : | Champ | Valeur | | ---------------------- | ------------------ | | Ligne d’adresse 1 | `350 N Orleans St` | | Ville | `Chicago` | | État | `IL` | | Code postal | `60654` | | Pays | `US` | ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ --data-urlencode "success_url=https://example.com/success" \ -d "automatic_tax[enabled]=true" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][unit_amount]=1000" \ -d "line_items[0][price_data][tax_behavior]=inclusive" \ -d "line_items[0][price_data][product_data][name]=Admission to Event" \ -d "line_items[0][price_data][product_data][tax_details][performance_location]=taxloc_1TDA9FPaA8XsHwniqeKUZJvr" \ -d "line_items[0][price_data][product_data][tax_details][tax_code]=txcd_50010001" \ -d "line_items[0][quantity]=1" \ -d "line_items[1][price_data][currency]=usd" \ -d "line_items[1][price_data][unit_amount]=5000" \ -d "line_items[1][price_data][tax_behavior]=inclusive" \ -d "line_items[1][price_data][product_data][name]=T-Shirt" \ -d "line_items[1][price_data][product_data][tax_details][tax_code]=txcd_99999999" \ -d "line_items[1][quantity]=1" \ -d mode=payment ``` ## Plateformes et marketplaces Si vous utilisez [Stripe Connect](https://docs.stripe.com/connect.md) pour traiter les paiements au nom de comptes connectés, [déterminez quelle entité est responsable de la collecte et de la déclaration des taxes](https://docs.stripe.com/tax/connect.md). Selon votre modèle économique, il s’agit soit de votre plateforme, soit de vos comptes connectés. | | [Plateformes logicielles](https://docs.stripe.com/tax/tax-for-platforms.md) | [Marketplaces](https://docs.stripe.com/tax/tax-for-marketplaces.md) | | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Qui est redevable des taxes | Vos comptes connectés | Votre marketplace | | Comment l’intégrer | Suivez ce guide, mais transmettez l’[ID du compte connecté](https://docs.stripe.com/connect/authentication.md) dans l’en-tête `Stripe Account` pour tous les appels à l’API. | Suivez ce guide en utilisant le compte de votre marketplace. [Retenez le montant fiscal perçu](https://docs.stripe.com/tax/tax-for-marketplaces.md#tax-withholding) sur les virements vers les comptes connectés. | | Paramètres fiscaux et immatriculations | Chaque compte connecté configure ses propres paramètres fiscaux et immatriculations. | Votre marketplace configure les paramètres fiscaux et les immatriculations. Les comptes connectés n’ont pas besoin des leurs. | | Lieux de représentation et produits | Créez des lieux de représentation et des produits distincts pour chaque compte connecté. Utilisez l’en-tête `Stripe-Account`. | Créez des lieux de représentation et des produits sur votre compte marketplace. | ### Intégration des plateformes logicielles Lorsque vos comptes connectés sont redevables de taxes, suivez les étapes d’intégration classiques, avec les différences suivantes : - **Tous les appels à l’API** : transmettez l’[ID du compte connecté](https://docs.stripe.com/connect/authentication.md) dans l’en-tête `Stripe-Account` lorsque vous créez des immatriculations fiscales, des lieux de représentation, des produits, des calculs fiscaux, ainsi que des sessions de paiement ou des intentions de paiement. - **Immatriculations fiscales** : chaque compte connecté nécessite ses propres immatriculations fiscales. Créez des immatriculations distinctes pour chaque compte connecté et le compte de la plateforme. - **Lieux de représentation** : chaque compte connecté nécessite ses propres lieux de représentation. Créez des lieux distincts pour chaque compte connecté et le compte de la plateforme. - **Produits** : créez des produits pour chaque compte connecté individuellement. Utilisez des ID de lieu de représentation qui appartiennent au compte connecté, et non à la plateforme. Par exemple, pour créer un calcul fiscal pour un compte connecté, transmettez l’en-tête `Stripe-Account` : ```curl curl https://api.stripe.com/v1/tax/calculations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d currency=usd \ -d "line_items[0][amount]=2500" \ -d "line_items[0][reference]=Outdoor concert - L1" \ -d "line_items[0][tax_behavior]=exclusive" \ -d "line_items[0][tax_code]=txcd_50010001" \ -d "line_items[0][performance_location]=taxloc_yB7b4tVHRb" \ -d "customer_details[address][country]=IE" \ -d "customer_details[address_source]=billing" ``` ## Mettre à jour le SDK de Stripe Le calcul des taxes pour les événements est en [version bêta publique](https://docs.stripe.com/sdks/versioning.md#public-preview-release-channel) et nécessite une version d’API en version bêta publique (`2026-03-25.preview` ou ultérieure). Consultez les notes de version du SDK pour vérifier quelles versions prennent en charge Stripe Tax pour les événements. ## Configurer Stripe Tax Lorsque vous [configurez Stripe Tax](https://docs.stripe.com/tax/set-up.md) pour les tickets, définissez le code fiscal du produit par défaut sur `txcd_20030000`, `General - Services`. Vous ne pouvez définir aucun des [codes fiscal de l’événement](https://docs.stripe.com/tax/tax-codes.md?type=events#all-tax-codes) comme code fiscale du produit par défaut. Ajoutez une immatriculation pour les tests via le Dashboard ou l’[API Tax Registrations](https://docs.stripe.com/tax/registrations-api.md). #### Dashboard 1. Depuis la [page territoire fiscal](https://dashboard.stripe.com/tax/locations) sur le Dashboard, cliquez sur **Ajouter immatriculation**. 1. Ajoutez les immatriculations applicables à l’emplacemet de l’événement. Par exemple : - États-Unis - Colorado, Sales Tax (taxes sur les ventes) - États-Unis - Colorado, Boulder Admissions Tax (taxe de Boulder sur le prix des entrées) #### API Registrations Consultez la liste de [tous les types d’enregistrement et juridictions pris en charge ](https://docs.stripe.com/tax/registering.md?registrationTypeRegion=united-states#registration-types). ```curl curl https://api.stripe.com/v1/tax/registrations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d country=US \ -d "country_options[us][state]=CO" \ -d "country_options[us][type]=admissions_tax" \ -d "country_options[us][admissions_tax][jurisdiction]=07850" \ -d active_from=now ``` Les calculs de Stripe Tax n’entraînent pas de frais dans un *environnement de test* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes). Une fois que vous ajoutez une immatriculation fiscale, le calcul de la taxe en mode production entraîne des frais. Le calcul des taxes pour la vente de billets diffère des calculs des taxes habituels, car ils sont basés sur le lieu de représentation plutôt que sur l’adresse de facturation ou de livraison du client. ## Créer un lieu de représentation [Créez un emplacement fiscal](https://docs.stripe.com/api/tax/location/create.md?lang=curl&api-version=preview) de type `performance` et indiquez l’adresse du lieu de l’événement. Vous pouvez utiliser n’importe quelle adresse admissible à un [TaxCalculation](https://docs.stripe.com/api/taxer/calculations.md) dans un [pays pris en charge](https://docs.stripe.com/tax/supported-countries.md#supported-countries) où le type de vente est `All Sales`. Chaque pays exige différents [formats d’adresse](https://docs.stripe.com/tax/customer-locations.md#supported-formats) pour l’emplacement. ```curl curl https://api.stripe.com/v1/tax/locations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d type=performance \ --data-urlencode "address[line1]=Folsom and, Pearl St" \ -d "address[city]=Boulder" \ -d "address[state]=CO" \ -d "address[postal_code]=80302" \ -d "address[country]=US" \ -d "description=Greenleaf Park" ``` La réponse renvoie l’`id` comme identifiant unique pour le lieu de représentation. Conservez cette valeur pour l’utiliser dans les transactions où vous [calculez les taxes](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#apply-tax-locations) des ventes dans ce lieu. ```json { "id": "taxloc_yB7b4tVHRb", // ... other fields omitted } ``` Une entrée de base de données pour cet exemple peut être : | **id** | **venue\_name** | **capacity** | **seatplan** | **stripe\_location\_id** | | -------------------- | --------------- | ------------ | ------------------------------------ | ------------------------ | | `` | Greenleaf Park | 500 | https://example.com/seating-plan.png | `taxloc_yB7b4tVHRb` | Tableau : your_business.venues ### Erreurs de validation de l’adresse de localisation Si vous rencontrez un problème concernant l’adresse du lieu de recouvrement, l’API Tax Location renvoie une erreur. ``` { "error": { "message": "MESSAGE", "param": "address", "request_log_url": "https://dashboard.stripe.com/test/logs/req_eSIK4gvAqUmW26?t=1747141000", "type": "invalid_request_error" } } ``` - La propriété `param` identifie l’attribut d’adresse le plus spécifique possible. - La propriété `message` précise l’une des raisons spécifiques suivantes de l’erreur. #### Adresse non valide `The address is not supported by Stripe Tax for a tax location. Please use a valid address.` La validation de l’adresse a échoué. Consultez les [formats d’adresse pris en charge](https://docs.stripe.com/tax/customer-locations.md#supported-formats) pour connaître les exigences en matière d’adresse. #### Pays non pris en charge ou territoire exclu `The address is not supported by Stripe Tax for a tax location. Please use a location that is supported by Stripe Tax.` Le pays n’est pas [pris en charge](https://docs.stripe.com/tax/supported-countries.md) ou l’adresse se trouve dans un [territoire exclu](https://docs.stripe.com/tax/zero-tax.md#excluded-territories). ## Optional: Créer un produit Vous pouvez créer un produit avec un code fiscal d’événement et un lieu de représentation. Vous pouvez utiliser le produit dans tous les intégrations prenant en charge la taxation des billets. #### Dashboard Vous pouvez créer un produit avec un code fiscal d’événement et un lieu de représentation dans le **[catalogue de produits](https://dashboard.stripe.com/products?create=product)**. #### API Product Lors de la création d’un produit, transmettez le code fiscal d’événement et un lieu de représentation en tant qu’informations fiscales. ```curl curl https://api.stripe.com/v1/products \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d name=Ticket \ -d "tax_details[tax_code]=txcd_50010001" \ -d "tax_details[performance_location]=taxloc_yB7b4tVHRb" ``` ### Erreurs Vous pouvez rencontrer les erreurs suivantes lors de la création d’un produit avec un code fiscal d’événement et un lieu de représentation. | Erreur | Description | Suggestion | | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Unknown tax location being passed. Please use a valid tax location.` | L’ID du lieu de représentation n’appartient pas à un lieu de représentation accessible par le compte Stripe. Vous devez créer des lieu de représentation distincts pour chaque compte connecté et le compte de la plateforme. | Si vous effectuez des appels à l’API en tant que plateforme Connect au nom d’un compte connecté, assurez-vous d’avoir créé le lieu de représentation pour le compte connecté plutôt que pour votre plateforme. | | `Tax code txcd_50010001 requires a tax location to be passed of the type`performance`.` | Le paramètre [lieu de représentation](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#tax-location-api-usage) requis par le code fiscal du produit fourni est manquant dans la requête. | Soit vous modifiez le code fiscal du produit, soit vous incluez le lieu de représentation. | | `Le code fiscal txcd_99999999 ne prend pas en charge un lieu fiscal avec le type`performance_.` | Vous avez inclus un lieu de représentation dans votre requête, mais le code fiscal du produit que vous avez transmis ne prend pas en charge un lieu de représentation. | Soit vous modifiez le code fiscal du produit, soit vous supprimez le lieu de représentation. | ## Calculer la taxe Le calcul des taxes des ventes de billets nécessitent les informations suivantes : - Emplacement de votre entreprise, fourni lors de la [configuration de Stripe Tax](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#configure-stripe-taxe) - L’ID du lieu de représentation, renvoyé dans la réponse [create location](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#tax-location-api-usage) - L’adresse de facturation du client (pour les [autoliquidations de la TVA B2B](https://docs.stripe.com/tax/zero-tax.md#reverse-charges)) - Le code produit (billet, marchandise, etc.), par exemple `txcd_50010001–-Admission to Amusement, Entertainment and Recreation Venues--Participant`… ### Collecter l’adresse du client 1. Intégrez un formulaire d’adresse à votre paiement à l’aide de l’[Address Element](https://docs.stripe.com/elements/address-element.md) pour collecter les [informations d’adresse requises](https://docs.stripe.com/tax/customer-locations.md#supported-formats) auprès de votre client. 1. Vérifiez que l’adresse de facturation est [valide pour Stripe Tax](https://docs.stripe.com/tax/customer-locations.md#other). Effectuez cette validation directement sur votre intégration pour éviter d’avoir à payer des frais de [calcul de taxes](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#calculate-tax-location) en mode production pour la validation. 1. Désactiver le bouton de paiement jusqu’à la collecte et à la validation. > - **États-Unis** : nous exigeons au moins le code postal de votre client. Pour un calcul plus précis des taxes, nous vous recommandons de fournir une adresse complète. - **Canada** : nous avons besoin du code postal ou de la province de votre client. - **Inde** : Nous avons besoin de l’état ou territoire de l’union de votre client. - **Tous les autres pays** : Nous n’exigeons généralement que l’indicatif du pays de votre client. Voir [Pays pris en charge](https://docs.stripe.com/tax/supported-countries.md) pour des détails spécifiques par pays. ### Types de produits Les [codes fiscaux](https://docs.stripe.com/tax/tax-codes.md) peuvent avoir une exigence d’emplacement : - `optional` : Vous *pouvez* transmettre un lieu de performance. - `required` : Vous *devez* transmettre un lieu de performance. - `not supported` : Le code de taxe ne prend pas en charge le lieu de performance. Vous trouverez tous les codes fiscaux sur notre page de [référence des codes fiscaux](https://docs.stripe.com/tax/tax-codes.md?type=events#all-tax-codes), y compris `txcd_50010001`, `Admission aux lieux de divertissement, de divertissement et de loisirs – Participant`. ### Appliquer des lieux de représentation Vous devez transmettre toutes les données requises dans l’appel à l’API de calculs des taxes. Dans cet exemple, vous calculez les taxes pour un client basé en Irlande qui achète un billet pour un événement dans votre lieu de représentation à Greenleaf Park à Boulder, Colorado. Si vous avez créé un [produit](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#create-product) pertinent, vous pouvez transmettre son `ID` dans un poste et [créer un calcul fiscal](https://docs.stripe.com/api/tax/calculations/create.md). ```curl curl https://api.stripe.com/v1/tax/calculations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d currency=usd \ -d "line_items[0][amount]=2500" \ -d "line_items[0][reference]=Outdoor concert - L1" \ -d "line_items[0][tax_behavior]=exclusive" \ -d "line_items[0][tax_code]=txcd_50010001" \ -d "line_items[0][performance_location]=taxloc_yB7b4tVHRb" \ -d "customer_details[address][country]=IE" \ -d "customer_details[address_source]=billing" ``` > Si l’endpoint du calcul renvoie un code d’erreur `customer_tax_location_invalid`, demandez à votre client de vérifier l’exactitude et l’exhaustivité de l’adresse qu’il a saisie. Pour vendre un élément en même temps que tickets d’événement, par exemple un t-shirt, ajoutez un autre poste à la requête de calcul de taxe et sélectionnez le bon code de taxe produit. ### Appliquer le résultat du calcul à un paiement L’appel à l’API de calcul calcule les taxes sur le lieu de représentation de l’événement. Ici, le Greenleaf Park à Boulder, dans le Colorado. Vous pouvez utiliser la [répartition des taxes de niveau supérieur](https://docs.stripe.com/tax/standalone-tax-api.md#tax-breakdowns) pour afficher toutes les taxes facturées. Dans ce cas, la réponse ressemble à ce qui suit : ```json { "id": "taxcalc_fQSaHNaU", "amount_total": 2697, // ... other fields omitted "tax_breakdown": [ // ... other entries omitted { "amount": 125, "inclusive": false, "tax_rate_details": { // ... other entries omitted "country": "US", "state": "CO", "percentage_decimal": "5.0", // This is an example. The Stripe Tax calculation API returns the correct tax rate. "tax_type": "admissions_tax" }, "taxability_reason": "standard_rated", "taxable_amount": 2500 } ] } ``` L’objet `calculation` contient un ID. Chaque fois que l’un des quatre paramètres d’entrée (adresse de l’entreprise, adresse client, lieu de représentation ou type de produit) change, vous devez effectuer un nouveau calcul. Vous enregistrez l’ID du calcul le plus récent pour valider une transaction fiscale ultérieurement. Vous en avez besoin pour produire des rapports conformes. Votre interface de paiement peut afficher les taxes en tant qu’aperçu similaire à l’exemple suivant, en fonction de l’objet `tax_breakdown` de la réponse de l’appel de l’API Tax Calculation. **Match de football universitaire 2023 au Rose Bowl le lundi 1er janvier 2025 au Rose Bowl** | Ligne d’aperçu de Checkout | Montant | | --------------------------------- | ------------- | | Valeur nominale totale | 25 USD | | Taxe sur les ventes (2,90 %) | 0.72 USD | | Taxe d’entrée (5,0 %) | 1.25 USD | | **Sous-total** | **26.97 USD** | ### Erreurs d’estimation fiscale Si la demande de création d’un emplacement fiscal renvoie une erreur, vérifiez les propriétés `param` et `message` pour obtenir des indications spécifiques. #### Lieu fiscal inconnu `Unknown tax location being passed. Please use a valid tax location.` L’ID du lieu de représentation n’appartient pas à un lieu de représentation accessible par le compte Stripe. Les lieux de représentation sont liés à un seul compte et vous ne pouvez pas les partager entre comptes connectés ou avec la plateforme. #### Le code fiscal nécessite un lieu fiscal `Tax code txcd_50010001 requires a tax location to be passed of the type`performance`.` Le [lieu de représentation](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#tax-location-api-usage) requis pour la billetterie n’est pas renseigné dans votre calcul des taxes. Vous devez soit modifier le code fiscal du produit, soit indiquer ce lieu. #### Le code fiscal ne prend pas en charge la localisation fiscale `Tax code txcd_99999999 does not support a tax location with the type`performance`.` Vous avez inclus un lieu de performance dans votre requête, mais le code fiscal du produit que vous avez transmis ne prend pas en charge un lieu de performance. Vous devez soit modifier le code fiscal du produit, soit supprimer le lieu de performance. ## Créer un paiement Le paiement est créé avec le `amount_total` issu du calcul des taxes. Une fois que le paiement aboutit, vous pouvez créer une transaction fiscale. Utilisez cet enregistrement à des fins de création de rapports et de conformité. #### Intégration du Payment Intent pour les taxes (recommandé) Pour intégrer Tax Payment Intent, vous devez utiliser l’API Payment Intents. En définissant le champ `hooks`, vous pouvez transmettre l’ID de calcul de la taxe au Payment Intent. Cela crée un Payment Intent, puis une transaction fiscale en arrière-plan. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=2697 \ -d currency=usd \ -d "automatic_payment_methods[enabled]=true" \ -d "hooks[inputs][tax][calculation]={{TAXCALCULATION_ID}}" ``` Pour en savoir plus, consultez le [guide d’intégration de Tax Payment Intent](https://docs.stripe.com/tax/payment-intent.md). #### Intégration à l’API pour le calcul manuel des taxes Que vous utilisiez ou non Stripe pour traiter vos paiements, une fois le paiement réussi, vous devez créer une transaction fiscale. ```curl curl https://api.stripe.com/v1/tax/transactions/create_from_calculation \ -u "<>:" \ -d calculation={{TAX_CALCULATION}} \ -d "reference={{PAYMENTINTENT_ID}}" \ -d "expand[]=line_items" ``` Sauvegardez l’[identifiant de la transaction fiscale](https://docs.stripe.com/api/tax/transactions/object.md#tax_transaction_object-id) pour enregistrer les remboursements ultérieurement. Sauvegardez l’identifiant de la transaction dans votre base de données (à proximité de votre transaction de paiement tiers) ou dans les métadonnées du PaymentIntent lorsque vous utilisez Stripe Payments : ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}} \ -u "<>:" \ -d "metadata[tax_transaction]={{TAX_TRANSACTION}}" ``` En savoir plus sur l’[API Tax Transaction](https://docs.stripe.com/tax/standalone-tax-api.md). ## Optional: Vendre des produits en même temps que des billets d’événement Vous pouvez inclure à la fois des billets d’événement et des marchandises physiques dans la même transaction. Chaque poste est taxé différemment : - **Billets d’événement** : taxés en fonction du lieu de la représentation (où se déroule l’événement), en utilisant un code fiscal d’événement tel que `txcd_50010001`. - **Marchandises physiques** : taxées en fonction de l’adresse de livraison du client, en utilisant un code fiscal pour biens matériels tel que [`txcd_99999999`](https://docs.stripe.com/tax/tax-codes.md?type=physical#all-tax-codes). Par exemple, un client à Chicago peut acheter en un seul paiement un billet pour un événement running à Boulder, Colorado *et* un t-shirt expédié à son adresse de Chicago. Le billet est taxé aux taux de Boulder, Colorado et le t-shirt est taxé aux taux de l’Illinois (Chicago). > Une seule adresse de livraison par transaction est prise en charge. Tous les biens physiques du panier sont taxés sur la base de cette adresse de livraison unique. ### Mettre en place les immatriculations Avant de créer une transaction avec panier mixte, assurez-vous d’avoir des immatriculations fiscales actives pour chaque juridiction où la taxe sera collectée. Pour cet exemple, vous avez besoin de : - Une immatriculation fiscale à la taxe sur les ventes de l’État du Colorado (pour le billet d’événement) - Une immatriculation fiscale à la taxe d’admission de Boulder, Colorado (pour le billet d’événement) - Une immatriculation fiscale à la taxe sur les ventes de l’État de l’Illinois (pour les marchandises physiques expédiées à Chicago) #### Dashboard Depuis la page [Immatriculations fiscales](https://dashboard.stripe.com/tax/registrations) sur le Dashboard, cliquez sur **Ajouter une immatriculation** et ajoutez : - États-Unis – Colorado, taxe sur les ventes - États-Unis – Colorado, taxe d’admission de Boulder - États-Unis – Illinois, taxe sur les ventes #### API Registrations ```curl curl https://api.stripe.com/v1/tax/registrations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d country=US \ -d "country_options[us][state]=CO" \ -d "country_options[us][type]=state_sales_tax" \ -d active_from=now ``` ```curl curl https://api.stripe.com/v1/tax/registrations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d country=US \ -d "country_options[us][state]=CO" \ -d "country_options[us][type]=admissions_tax" \ -d "country_options[us][admissions_tax][jurisdiction]=07850" \ -d active_from=now ``` ```curl curl https://api.stripe.com/v1/tax/registrations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d country=US \ -d "country_options[us][state]=IL" \ -d "country_options[us][type]=state_sales_tax" \ -d active_from=now ``` ### Calculer la taxe pour un panier mixte Ajoutez plusieurs postes à la demande de calcul de taxe. Pour le billet d’événement, incluez à la fois `performance_location` (provenant du [lieu de représentation que vous avez créé](https://docs.stripe.com/tax/tax-for-tickets/integration-guide.md#tax-location-api-usage)) et `tax_code`. Pour les produits physiques, incluez uniquement `tax_code`. Stripe Tax utilise l’adresse de livraison du client pour déterminer le taux applicable. Fournissez l’adresse de livraison dans `customer_details` en définissant `address_source` sur `shipping`. Utilisez l’adresse de test suivante comme emplacement de livraison client : | Champ | Valeur | | ---------------------- | ------------------ | | Ligne d’adresse 1 | `350 N Orleans St` | | Ville | `Chicago` | | État | `IL` | | Code postal | `60654` | | Pays | `US` | ```curl curl https://api.stripe.com/v1/tax/calculations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d currency=usd \ -d "line_items[0][amount]=1000" \ -d "line_items[0][reference]=Admission to Event" \ -d "line_items[0][tax_behavior]=inclusive" \ -d "line_items[0][tax_code]=txcd_50010001" \ -d "line_items[0][performance_location]=taxloc_1TDA9FPaA8XsHwniqeKUZJvr" \ -d "line_items[1][amount]=5000" \ -d "line_items[1][reference]=T-Shirt" \ -d "line_items[1][tax_behavior]=inclusive" \ -d "line_items[1][tax_code]=txcd_99999999" \ -d "customer_details[address][line1]=350 N Orleans St" \ -d "customer_details[address][city]=Chicago" \ -d "customer_details[address][state]=IL" \ -d "customer_details[address][postal_code]=60654" \ -d "customer_details[address][country]=US" \ -d "customer_details[address_source]=shipping" ``` ## Plateformes et marketplaces Si vous utilisez [Stripe Connect](https://docs.stripe.com/connect.md) pour traiter les paiements au nom de comptes connectés, [déterminez quelle entité est responsable de la collecte et de la déclaration des taxes](https://docs.stripe.com/tax/connect.md). Selon votre modèle économique, il s’agit soit de votre plateforme, soit de vos comptes connectés. | | [Plateformes logicielles](https://docs.stripe.com/tax/tax-for-platforms.md) | [Marketplaces](https://docs.stripe.com/tax/tax-for-marketplaces.md) | | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Qui est redevable des taxes | Vos comptes connectés | Votre marketplace | | Comment l’intégrer | Suivez ce guide, mais transmettez l’[ID du compte connecté](https://docs.stripe.com/connect/authentication.md) dans l’en-tête `Stripe Account` pour tous les appels à l’API. | Suivez ce guide en utilisant le compte de votre marketplace. [Retenez le montant fiscal perçu](https://docs.stripe.com/tax/tax-for-marketplaces.md#tax-withholding) sur les virements vers les comptes connectés. | | Paramètres fiscaux et immatriculations | Chaque compte connecté configure ses propres paramètres fiscaux et immatriculations. | Votre marketplace configure les paramètres fiscaux et les immatriculations. Les comptes connectés n’ont pas besoin des leurs. | | Lieux de représentation et produits | Créez des lieux de représentation et des produits distincts pour chaque compte connecté. Utilisez l’en-tête `Stripe-Account`. | Créez des lieux de représentation et des produits sur votre compte marketplace. | ### Intégration des plateformes logicielles Lorsque vos comptes connectés sont redevables de taxes, suivez les étapes d’intégration classiques, avec les différences suivantes : - **Tous les appels à l’API** : transmettez l’[ID du compte connecté](https://docs.stripe.com/connect/authentication.md) dans l’en-tête `Stripe-Account` lorsque vous créez des immatriculations fiscales, des lieux de représentation, des produits, des calculs fiscaux, ainsi que des sessions de paiement ou des intentions de paiement. - **Immatriculations fiscales** : chaque compte connecté nécessite ses propres immatriculations fiscales. Créez des immatriculations distinctes pour chaque compte connecté et le compte de la plateforme. - **Lieux de représentation** : chaque compte connecté nécessite ses propres lieux de représentation. Créez des lieux distincts pour chaque compte connecté et le compte de la plateforme. - **Produits** : créez des produits pour chaque compte connecté individuellement. Utilisez des ID de lieu de représentation qui appartiennent au compte connecté, et non à la plateforme. Par exemple, pour créer un calcul fiscal pour un compte connecté, transmettez l’en-tête `Stripe-Account` : ```curl curl https://api.stripe.com/v1/tax/calculations \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d currency=usd \ -d "line_items[0][amount]=2500" \ -d "line_items[0][reference]=Outdoor concert - L1" \ -d "line_items[0][tax_behavior]=exclusive" \ -d "line_items[0][tax_code]=txcd_50010001" \ -d "line_items[0][performance_location]=taxloc_yB7b4tVHRb" \ -d "customer_details[address][country]=IE" \ -d "customer_details[address_source]=billing" ```