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
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Outils de développement
Démarrer
Paiements
Automatisation des opérations financières
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageManaged Payments
Utiliser Payment Links
Créer une page de paiement
    Présentation
    Solutions de démarrage rapide
    Personnaliser l'apparence
    Collecter des informations supplémentaires
    Collecter des taxes
      Utiliser des taux de taxe manuels
      Collecter des numéros fiscaux
    Mise à jour dynamique lors du paiement
    Gérer votre catalogue de produits
    Abonnements
    Gérer les moyens de paiement
    Offrir aux clients la possibilité de payer dans leur devise locale
    Ajoutez des réductions, des ventes incitatives et des articles facultatifs
    Configurer des paiements futurs
    Enregistrer les coordonnées bancaires lors du paiement
    Approuver manuellement les paiements sur votre serveur
    Après le paiement
    Liste des modifications de la version bêta d'Elements avec l'API Checkout Sessions
    Migrer depuis l'ancienne version de Checkout
    Migrer vers Checkout pour utiliser Prices
Développer une intégration avancée
Développer une intégration dans l'application
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Interfaces de paiement
Payment Links
Checkout
Web Elements
Elements intégrés à l'application
Scénarios de paiement
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Paiements par TPE
Terminal
Autres produits Stripe
Financial Connections
Cryptomonnaies
Climate
AccueilPaiementsBuild a checkout pageCollect taxes

Collecter les numéros fiscaux des clients avec Checkout

Découvrez comment collecter les numéros de TVA et autres numéros fiscaux des clients avec Checkout.

Copier la page

L’affichage du numéro fiscal et de la dénomination sociale d’un client sur les factures est une obligation courante à laquelle vous pouvez satisfaire en activant la collecte du numéro fiscal. Ce guide part du principe que vous avez déjà intégré Elements à l’API Checkout Sessions. Si vous n’avez pas effectué cette intégration, consultez le guide de démarrage rapide pour commencer.

Avis de non-responsabilité

L’API Checkout Sessions est conçue pour collecter les numéros fiscaux des entreprises, dont le format peut être similaire à celui des numéros fiscaux personnels dans certaines régions. Vous devez impérativement vous assurer que seuls des numéros fiscaux d’entreprise, tels que désignés pour ce champ, sont fournis lors de l’utilisation de cette fonctionnalité.

Activer la collecte du numéro fiscal
Côté serveur

Nouveaux clients

Pour activer la collecte du numéro fiscal pour les nouveaux clients, définissez tax_id_collection[enabled] sur true lors de la création d’une session Checkout.

Command Line
cURL
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d ui_mode=custom \ -d "line_items[0][price]"=
{{PRICE_ID}}
\ -d "line_items[0][quantity]"=1 \ -d "tax_id_collection[enabled]"=true \ -d mode=payment \ --data-urlencode return_url="https://example.com/return"

Clients existants

Créez une session Checkout avec un client existant pour modifier les informations d’identification fiscale recueillies lors du paiement. La session Checkout enregistre le nom de l’entreprise recueilli en tant que nom du client et ajoute le numéro fiscal recueilli à customer.tax_ids. Étant donné que la collecte d’un nom d’entreprise peut remplacer le nom existant du client, vous devez définir customer_update.name sur auto lors de la création de la session Checkout.

Command Line
cURL
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d ui_mode=custom \ -d customer=
{{CUSTOMER_ID}}
\ -d "line_items[0][price]"=
{{PRICE_ID}}
\ -d "line_items[0][quantity]"=1 \ -d "tax_id_collection[enabled]"=true \ -d "customer_update[name]"=auto \ -d mode=payment \ --data-urlencode return_url="https://example.com/return"

Si vous n’avez pas enregistré les adresses de vos clients existants, vous pouvez baser leur localisation sur l’adresse de facturation ou de livraison saisie lors du paiement. Pour utiliser l’adresse de facturation saisie lors du paiement afin d’évaluer la localisation du client, définissez customer_update.address sur auto. Lorsque le paramètre customer_update.address est défini sur auto, toutes les adresses précédemment enregistrées pour ce client sont remplacées par l’adresse saisie lors du paiement.

Command Line
cURL
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d ui_mode=custom \ -d customer=
{{CUSTOMER_ID}}
\ -d "line_items[0][price]"=
{{PRICE_ID}}
\ -d "line_items[0][quantity]"=1 \ -d "tax_id_collection[enabled]"=true \ -d "customer_update[name]"=auto \ -d "customer_update[address]"=auto \ -d mode=payment \ --data-urlencode return_url="https://example.com/return"

Si vous recueillez les adresses de livraison de clients existants, vous devez baser leur localisation sur l’adresse de livraison saisie lors du règlement. Pour ce faire, définissez le paramètre customer_update.shipping sur auto. Lorsque le paramètre customer_update.shipping est défini sur auto, toutes les adresses de livraison précédemment enregistrées pour ce client sont remplacées par l’adresse de livraison saisie lors du paiement.

Command Line
cURL
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d ui_mode=custom \ -d customer=
{{CUSTOMER_ID}}
\ -d "line_items[0][price]"=
{{PRICE_ID}}
\ -d "line_items[0][quantity]"=1 \ -d "tax_id_collection[enabled]"=true \ -d "customer_update[name]"=auto \ -d "customer_update[shipping]"=auto \ -d "shipping_address_collection[allowed_countries][0]"=DE \ -d mode=payment \ --data-urlencode return_url="https://example.com/return"

Cet exemple crée une session en mode payment avec collecte des numéros fiscaux activée. Pour les abonnements, faites les mêmes changements avec le mode défini sur subscription.

Créer un formulaire côté client
Côté client

Créez un formulaire dans votre application Web et utilisez updateTaxIdInfo pour recueillir le nom de l’entreprise et le numéro fiscal du client.

App.jsx
import {useState} from 'react'; import {useCheckout} from '@stripe/react-stripe-js'; // Create a constant to list out the taxID types you'd like to support in your checkout const TAX_ID_TYPES = ['au_abn', 'eu_vat', ...] as const; const TaxIdCollectionForm = () => { const [isPurchaseAsBusiness, setIsPurchaseAsBusiness] = useState(false); const [isEditing, setIsEditing] = useState(true); const [businessName, setBusinessName] = useState(''); const [taxIdType, setTaxIdType] = useState(''); const [taxIdValue, setTaxIdValue] = useState(''); const [errorMessage, setErrorMessage] = useState(''); const {updateTaxIdInfo} = useCheckout(); const validateAndUpdate = async () => { if (!businessName) { setErrorMessage('Business name is required'); return; } if (!taxIdValue) { setErrorMessage('Tax ID is required'); return; } if (!taxIdType) { setErrorMessage('Please select a tax ID type'); return; } // When all of the values are filled out, call `updateTaxIdInfo` submit it to the session. const res = await updateTaxIdInfo({ taxId: {value: taxIdValue, type: taxIdType}, businessName }); if (res.error) { setErrorMessage(res.error.message); } else { setErrorMessage(''); setIsEditing(false); } }; const handleReset = () => { setBusinessName(''); setTaxIdType(''); setTaxIdValue(''); setErrorMessage(''); }; const onIsPurchaseAsBusinessChange = async (e) => { setIsPurchaseAsBusiness(e.target.checked); if (!isPurchaseAsBusiness) { setErrorMessage(''); setIsEditing(true); // When isPurchaseAsBusiness is false, call this to clear the taxIdInfo in the session. await updateTaxIdInfo(null); } }; return ( <div className="tax-id-form"> <div className="form-row"> <input type="checkbox" id="purchaseAsBusiness" checked={isPurchaseAsBusiness} onChange={onIsPurchaseAsBusinessChange} /> <label htmlFor="purchaseAsBusiness">Purchase as business</label> </div> {isPurchaseAsBusiness && ( <> {isEditing ? ( <> <div className="form-row"> <label htmlFor="businessName">Business Name:</label> <input type="text" id="businessName" value={businessName} onChange={(e) => setBusinessName(e.target.value.trim())} placeholder="Enter business name" /> </div> <div className="form-row"> <label htmlFor="taxType">Tax ID Type:</label> <select id="taxIdType" value={taxIdType} onChange={(e) => setTaxIdType(e.target.value)} > <option value="">Select tax ID type</option> {TAX_ID_TYPES.map((t) => ( <option key={t} value={t}> {t} </option> ))} </select> </div> <div className="form-row"> <label htmlFor="taxId">Tax ID:</label> <input type="text" id="taxId" value={taxIdValue} onChange={(e) => setTaxIdValue(e.target.value.trim())} placeholder="Enter tax ID" /> </div> <div className="form-actions"> <button onClick={validateAndUpdate}>Save</button> <button onClick={handleReset}>Reset</button> </div> {errorMessage && ( <div className="error-message"> {errorMessage} </div> )} </> ) : ( <div className="tax-id-info"> <div>Business Name: {businessName}</div> <div>Tax ID Type: {taxIdType}</div> <div>Tax ID: {taxIdValue}</div> <button onClick={() => setIsEditing(true)}>Edit</button> </div> )} </> )} </div> ); };

Récupérer le numéro fiscal d'un client après une session

Checkout inclut les numéros fiscaux fournis dans l’objet Session correspondant. Lorsqu’une session est finalisée, Checkout génère un événement checkout.session.completed que vous pouvez écouter à l’aide d’un endpoint de webhook. Si vous souhaitez récupérer le numéro fiscal collecté par un objet Session, vous pouvez le trouver dans le tableau customer_details.tax_ids de la session :

{ "object": { "id": "cs_test_a1dJwt0TCJTBsDkbK7RcoyJ91vJxe2Y", "object": "checkout.session", ... "customer": "cus_id_of_new_customer", "customer_details": { ... "tax_ids": [ { "type": "eu_vat", "value": "FRAB123456789" } ] }, ... "tax_id_collection": { "enabled": true }, ... } }

Checkout enregistre également les dénominations sociales et numéros fiscaux recueillis dans l’objet Customer associé à la session, le cas échéant. Les numéros fiscaux recueillis lors du règlement sont accessibles dans le tableau customer.tax_ids de l’objet Customer. Vous pouvez également retrouver tous les numéros fiscaux enregistrés d’un objet Customer à l’aide de la ressource Tax IDs en définissant le paramètre owner.type sur customer et le paramètre owner.customer sur l’ID du client. Tout nouveau numéro fiscal comporte une dénomination sociale associée, que Checkout enregistre dans la propriété nom de l’objet Customer. De cette façon, la dénomination sociale recueillie apparaît sur toutes les factures d’abonnement de ce client.

Tester votre intégration

In testing environments, you can enter any alphanumeric string that is in the correct format of a supported tax ID type (for example, DE123456789 for eu_vat). For a full list of example tax IDs you can reference our Customer Tax ID guide. You can also use our test tax IDs to test various verification state flows.

Validation

During the Checkout Session, Stripe verifies that the provided tax IDs are formatted correctly, but not that they’re valid. You’re responsible for ensuring the validity of customer information collected during checkout. To help, Stripe automatically performs asynchronous validation against government databases for European Value Added Tax (EU VAT) and United Kingdom Value Added Tax (GB VAT) numbers. Learn more about the validation we perform, and how to consume the status of those checks.

If you use Stripe Tax and your customer provides a tax ID, Stripe Tax applies the reverse charge or zero rate according to applicable laws, as long as the tax ID conforms to the necessary number format, regardless of its validity.

Types de numéros fiscaux pris en charge

La session Checkout collecte les types de numéros fiscaux suivants dans les régions indiquées :

PaysEnumDescriptionExemple
Impact sur le calcul des taxes
Afrique du Sudza_vatNuméro de TVA sud-africain4123456789Oui
Albanieal_tinNuméro d'identification fiscale albanaisJ12345678NOui
Allemagneeu_vatEuropean VAT numberDE123456789Oui
Angolaao_tinNuméro fiscal de l'Angola5123456789Non
Arabie saouditesa_vatTVA Arabie Saoudite123456789012345Oui
Arménieam_tinNuméro fiscal de l’Arménie02538904Oui
Arubaaw_tinNuméro fiscal d’Aruba12345678Oui
Australieau_abnNuméro d'identification australien (AU ABN)12345678912Oui
Autricheeu_vatEuropean VAT numberATU12345678Oui
Azerbaïdjanaz_tinNuméro fiscal de l’Azerbaïdjan0123456789Oui
Bahamasbs_tinNuméro fiscal des Bahamas123.456.789Non
Bahreïnbh_vatNuméro de TVA bahreïnien123456789012345Oui
Bangladeshbd_binNuméro d’identification d’entreprise du Bangladesh123456789-0123Oui
Barbadebb_tinNuméro fiscal de la Barbade1123456789012Non
Belgiqueeu_vatEuropean VAT numberBE0123456789Oui
Béninbj_ifuNuméro fiscale du Bénin (Identifiant fiscal unique)1234567890123Oui
Biélorussieby_tinNuméro d'identification fiscale de la Biélorussie123456789Oui
Bosnie-Herzégovineba_tinNuméro fiscal de la Bosnie-Herzégovine123456789012Oui
Bulgarieeu_vatEuropean VAT numberBG0123456789Oui
Burkina Fasobf_ifuNuméro fiscal du Burkina Faso (Numéro d'Identifiant fiscal unique)12345678AOui
Cambodgekh_tinNuméro fiscal du Cambodge1001-123456789Oui
Camerouncm_niuNuméro fiscale du Cameroun (Numéro d’Identifiant fiscal unique)M123456789000LNon
Canadaca_bnNuméro BN canadien123456789Non
Canadaca_gst_hstNuméro GST/HST canadien123456789RT0002Oui
Canadaca_pst_bcNuméro PST canadien (Colombie-Britannique)PST-1234-5678Non
Canadaca_pst_mbNuméro PST canadien (Manitoba)123456-7Non
Canadaca_pst_skNuméro PST canadien (Saskatchewan)1234567Non
Canadaca_qstNuméro QST canadien (Québec)1234567890TQ1234Oui
Cap-Vertcv_nifNuméro fiscal du Cap-Vert (Número de Identificação Fiscal)213456789Non
Chilicl_tinNuméro TIN chilien12.345.678-KOui
Chypreeu_vatEuropean VAT numberCY12345678ZOui
Congo-Kinshasacd_nifNuméro fiscal de la République démocratique du Congo (Número de Identificação Fiscal)A0123456MNon
Corée du Sudkr_brnNuméro BRN coréen123-45-67890Oui
Costa Ricacr_tinNuméro fiscal du Costa Rica1-234-567890Non
Croatieeu_vatEuropean VAT numberHR12345678912Oui
Danemarkeu_vatEuropean VAT numberDK12345678Oui
Égypteeg_tinNuméro d'identification fiscale égyptien123456789Oui
Émirats arabes unisae_trnNuméro TRN des Émirats arabes unis123456789012345Oui
Équateurec_rucNuméro RUC équatorien1234567890001Non
Espagnees_cifNuméro NIF espagnol (auparavant numéro CIF espagnol)A12345678Non
Espagneeu_vatEuropean VAT numberESA1234567ZOui
Estonieeu_vatEuropean VAT numberEE123456789Oui
Éthiopieet_tinNuméro fiscal de l’Éthiopie1234567890Oui
Finlandeeu_vatEuropean VAT numberFI12345678Oui
Franceeu_vatEuropean VAT numberFRAB123456789Oui
Géorgiege_vatTVA Géorgie123456789Oui
Grèceeu_vatEuropean VAT numberEL123456789Oui
Guinéegn_nifNuméro fiscal de la Guinée (Número de Identificação Fiscal)123456789Oui
Hongrieeu_vatEuropean VAT numberHU12345678Oui
Indein_gstNuméro GST indien12ABCDE3456FGZHOui
Irlandeeu_vatEuropean VAT numberIE1234567ABOui
Islandeis_vatTVA Islande123456Oui
Italieeu_vatEuropean VAT numberIT12345678912Oui
Kazakhstankz_binNuméro d'identification de l'entreprise kazakhe123456789012Oui
Kenyake_pinNuméro d'identification personnel de la Kenya Revenue AuthorityP000111111ANon
Kirghizistankg_tinNuméro fiscal du Kirghizistan12345678901234Non
Laosla_tinNuméro fiscal du Laos123456789-000Non
Lettonieeu_vatEuropean VAT numberLV12345678912Oui
Liechtensteinli_vatNuméro de TVA au Liechtenstein12345Oui
Lituanieeu_vatEuropean VAT numberLT123456789123Oui
Luxembourgeu_vatEuropean VAT numberLU12345678Oui
Macédoine du Nordmk_vatNuméro de TVA de la Macédoine du NordMK1234567890123Oui
Malteeu_vatEuropean VAT numberMT12345678Oui
Marocma_vatNuméro de TVA du Maroc12345678Oui
Mauritaniemr_nifNuméro fiscal de la Mauritanie (Número de Identificação Fiscal)12345678Non
Mexiquemx_rfcNuméro RFC mexicainABC010203AB9Non
Moldaviemd_vatNuméro de TVA de la Moldavie1234567Oui
Monténégrome_pibNuméro PIB du Monténégro12345678Non
Népalnp_panNuméro PAN du Népal123456789Oui
Nigériang_tinNuméro fiscal nigérian12345678-0001Non
Norvègeno_vatNuméro de TVA norvégien123456789MVAOui
Nouvelle-Zélandenz_gstNuméro GST Nouvelle-Zélande123456789Oui
Omanom_vatNuméro de TVA omanaisOM1234567890Oui
Ougandaug_tinNuméro fiscal de l’Ouganda1014751879Oui
Ouzbékistanuz_tinNuméro d'identification fiscale de l'Ouzbékistan123456789Non
Ouzbékistanuz_vatNuméro de TVA de l'Ouzbékistan123456789012Oui
Pays-Baseu_vatEuropean VAT numberNL123456789B12Oui
Péroupe_rucNuméro RUC péruvien12345678901Oui
Philippinesph_tinNuméro d'identification fiscale philippin123456789012Oui
Pologneeu_vatEuropean VAT numberPL1234567890Oui
Portugaleu_vatEuropean VAT numberPT123456789Oui
République tchèqueeu_vatEuropean VAT numberCZ1234567890Oui
Roumanieeu_vatEuropean VAT numberRO1234567891Oui
Royaume-Unieu_vatNorthern Ireland VAT numberXI123456789Oui
Royaume-Unigb_vatNuméro de TVA du Royaume-UniGB123456789Oui
Russieru_innNuméro INN russe1234567891Oui
Russieru_kppNuméro KPP russe123456789Oui
Sénégalsn_nineaNuméro NINEA du Sénégal12345672A2Non
Serbiers_pibNuméro PIB de la Serbie123456789Non
Singapoursg_gstNuméro GST singapourienM12345678XOui
Slovaquieeu_vatEuropean VAT numberSK1234567891Oui
Slovénieeu_vatEuropean VAT numberSI12345678Oui
Suèdeeu_vatEuropean VAT numberSE123456789123Oui
Suissech_vatNuméro de TVA suisseCHE-123.456.789 MWSTOui
Surinamesr_finNuméro FIN du Suriname1234567890Oui
Tadjikistantj_tinNuméro fiscal du Tadjikistan123456789Oui
Taïwantw_vatTVA Taïwan12345678Oui
Tanzanietz_vatNuméro de TVA de la Tanzanie12345678AOui
Thaïlandeth_vatTVA Thaïlande1234567891234Oui
Turquietr_tinNuméro d'identification fiscale turc0123456789Oui
Ukraineua_vatTVA Ukraine123456789Oui
Uruguayuy_rucNuméro RUC uruguayen123456789012Oui
Zambiezm_tinNuméro fiscal de la Zambie1004751879Non
Zimbabwezw_tinNuméro fiscal du Zimbabwe1234567890Non
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