Collect Customer Tax IDs with Checkout
Displaying a customer’s tax ID and legal business name on invoices is a common requirement that you can satisfy by enabling tax ID collection in Checkout. This guide assumes that you’ve already integrated Checkout. If you haven’t, see the guide.
Supported Tax ID types
Checkout collects the following tax ID types in the given regions:
Pays | Enum | Description | Exemple |
---|---|---|---|
Afrique du Sud | za_vat | Numéro de TVA sud-africain | 4123456789 |
Allemagne | eu_vat | European VAT number | DE123456789 |
Arabie saoudite | sa_vat | TVA Arabie Saoudite | 123456789012345 |
Australie | au_abn | Numéro d'identification australien (AU ABN) | 12345678912 |
Autriche | eu_vat | European VAT number | ATU12345678 |
Bahreïn | bh_vat | Numéro de TVA du Bahreïn | 123456789012345 |
Belgique | eu_vat | European VAT number | BE0123456789 |
Bulgarie | eu_vat | European VAT number | BG0123456789 |
Canada | ca_bn | BN canadien | 123456789 |
Canada | ca_gst_hst | Numéro de TPS/TVH canadien | 123456789RT0002 |
Canada | ca_pst_bc | Numéro de TVP canadien (Colombie-Britannique) | PST-1234-5678 |
Canada | ca_pst_mb | Numéro de TVP canadien (Manitoba) | 123456-7 |
Canada | ca_pst_sk | Numéro de TVP canadien (Saskatchewan) | 1234567 |
Canada | ca_qst | Numéro de TVQ canadien (Québec) | 1234567890TQ1234 |
Chili | cl_tin | TIN chilien | 12.345.678-K |
Chypre | eu_vat | European VAT number | CY12345678Z |
Corée du Sud | kr_brn | BRN coréen | 123-45-67890 |
Croatie | eu_vat | European VAT number | HR12345678912 |
Danemark | eu_vat | European VAT number | DK12345678 |
Égypte | eg_tin | Numéro d'identification fiscale égyptien | 123456789 |
Émirats arabes unis | ae_trn | TRN des Émirats arabes unis | 123456789012345 |
Espagne | es_cif | Numéro NIF espagnol (ancien numéro CIF espagnol) | A12345678 |
Espagne | eu_vat | European VAT number | ESA1234567Z |
Estonie | eu_vat | European VAT number | EE123456789 |
Finlande | eu_vat | European VAT number | FI12345678 |
France | eu_vat | European VAT number | FRAB123456789 |
Géorgie | ge_vat | TVA Géorgie | 123456789 |
Grèce | eu_vat | European VAT number | EL123456789 |
Hongrie | eu_vat | European VAT number | HU12345678 |
Inde | in_gst | Numéro de TPS indien | 12ABCDE3456FGZH |
Irlande | eu_vat | European VAT number | IE1234567AB |
Islande | is_vat | TVA Islande | 123456 |
Italie | eu_vat | European VAT number | IT12345678912 |
Kazakhstan | kz_bin | Numéro d'identification d'entreprise du Kazakhstan | 123456789012 |
Kenya | ke_pin | Numéro d'identification personnel de la Kenya Revenue Authority | P000111111A |
Lettonie | eu_vat | European VAT number | LV12345678912 |
Lituanie | eu_vat | European VAT number | LT123456789123 |
Luxembourg | eu_vat | European VAT number | LU12345678 |
Malte | eu_vat | European VAT number | MT12345678 |
Mexique | mx_rfc | Numéro de RFC mexicain | ABC010203AB9 |
Nigéria | ng_tin | Numéro d'identification fiscale du Nigéria | 12345678-0001 |
Norvège | no_vat | Numéro de TVA norvégien | 123456789MVA |
Nouvelle-Zélande | nz_gst | Numéro TPS Nouvelle-Zélande | 123456789 |
Oman | om_vat | Numéro de TVA de l'Oman | OM1234567890 |
Pays-Bas | eu_vat | European VAT number | NL123456789B12 |
Pologne | eu_vat | European VAT number | PL1234567890 |
Portugal | eu_vat | European VAT number | PT123456789 |
République tchèque | eu_vat | European VAT number | CZ1234567890 |
Roumanie | eu_vat | European VAT number | RO1234567891 |
Royaume-Uni | eu_vat | Northern Ireland VAT number | XI123456789 |
Royaume-Uni | gb_vat | Numéro de TVA du Royaume-Uni | GB123456789 |
Russie | ru_inn | INN russe | 1234567891 |
Russie | ru_kpp | KPP russe | 123456789 |
Singapour | sg_gst | TPS singapourien | M12345678X |
Slovaquie | eu_vat | European VAT number | SK1234567891 |
Slovénie | eu_vat | European VAT number | SI12345678 |
Suède | eu_vat | European VAT number | SE123456789123 |
Suisse | ch_vat | Numéro de TVA suisse | CHE-123.456.789 MWST |
Thaïlande | th_vat | TVA Thaïlande | 1234567891234 |
Turquie | tr_tin | Numéro d'identification fiscale turc | 0123456789 |
Enable Tax ID collection
With tax ID collection enabled, Checkout shows and hides the tax ID collection form depending on your customer’s location. If your customer is in a location supported by tax ID collection, Checkout shows a checkbox allowing the customer to indicate that they’re purchasing as a business. When a customer checks the box, Checkout displays fields for them to enter their business’s tax ID and their business’s legal entity name. If available, Checkout uses the customer’s shipping address to determine their location, otherwise Checkout uses the customer’s billing address. Customers can only enter one tax ID.
New Customers
To enable tax ID collection for new customers, set tax_id_collection[enabled]
to true
when creating a Checkout session.
Remarques
The above code example creates a Session in payment
mode with tax ID collection enabled. To enable tax ID collection in subscription
mode you would make the same changes highlighted in green to your subscription
mode Session creation request.
You can additionally configure Checkout to create a new Customer for you using customer_creation. If you do, Checkout saves any tax ID information collected during a Session to that new Customer. If not, the tax ID information will still be available at customer_details.tax_ids.
Existing Customers
If you pass an existing Customer when creating a Session, Checkout updates the Customer with any tax ID information collected during the Session. Checkout saves the collected business name onto the Customer’s name property, and adds the collected tax ID to the Customer’s customer.tax_ids array. Since the collection of a business name could result in the Customer’s existing name being overridden, you must set customer_update[name]
to auto
when creating the Session.
Avertissement
Checkout only collects tax IDs on Customer’s that don’t already have an existing tax ID. If a Customer has one or more tax IDs saved, Checkout does not display the tax ID collection form even if tax ID collection is enabled.
When collecting tax IDs for existing customers you can choose to either base their location on existing addresses on the customer or the addresses entered during checkout. By default, Checkout looks for existing addresses on the customer to assess their location:
If you don’t have the addresses of your existing customers saved, you can choose to base their location on the billing or shipping address entered during Checkout. To specify that you want to use the billing address entered during Checkout to assess the customer’s location, you must set customer_update[address]
to auto
.
Remarques
When setting customer_update[address]
to auto
Checkout replaces any previously saved addresses on the customer with the address entered during the session.
If you’re collecting shipping addresses for existing customers, you must base their location on the shipping address entered during checkout. To do so, set customer_update[shipping]
to auto
.
Remarques
When setting customer_update[shipping]
to auto
Checkout replaces any previously saved shipping addresses on the customer with the shipping address entered during the session.
Remarques
The above code examples create Sessions in payment
mode with tax ID collection enabled. To enable tax ID collection in subscription
mode you would make the same changes highlighted in green to your subscription
mode Session creation request.
Retrieving Customer Tax ID details after a Session
Checkout includes provided tax IDs on the resulting Session object. After each completed Session, Checkout emits a checkout.session.completed event that you can listen for in a webhook endpoint. If you wish to retrieve the collected tax ID from the Session object, it’s available under the Session’s customer_details.tax_ids array:
{ "object": { "id": "cs_test_a1dJwt0TCJTBsDkbK7RcoyJ91vJxe2Y", "object": "checkout.session", ... "customer": "cus_id_of_new_customer", "customer_details": { ... "tax_ids": [ {
Checkout also saves collected tax IDs and business names to the Customer object if one is associated with the Session. A tax ID collected during checkout is accessible under the Customer’s customer.tax_ids array. You can also retrieve all tax IDs saved to a Customer with the Tax IDs resource by specifying the owner[type]
parameter to customer
and owner[customer]
to the Customer’s ID. Every new tax ID includes an associated legal business name, which Checkout saves to the Customer’s name property. In doing so, the collected legal business name is always visible on any subscription invoices for that Customer.
Testing your integration
In test mode 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: test business tax IDs.
Validation
Checkout performs checks during the Session to ensure that provided tax IDs are formatted correctly. We don’t verify that provided tax IDs are valid during the Session. You’re responsible for ensuring the validity of customer information collected during Checkout. To help, Stripe automatically performs asynchronous validation against government databases for Australian Business (ABN) numbers, European Value-Added-Tax (EU VAT) numbers, and United Kingdom Value-Added-Tax (GB VAT) numbers. You can read more on the validation we perform, and how to consume the status of those checks in our Customer Tax ID guide.