Customer tax identification numbers

    Storing, validating, and rendering customer tax ID numbers with Stripe Billing.

    Displaying a customer’s tax ID on invoice documents is a common requirement.

    With Stripe, you can add one or multiple tax IDs to a customer. A customer’s tax IDs are displayed in the header of invoice and credit note PDFs.

    Supported Tax ID types

    Currently, Stripe Billing supports the following Tax ID types in the following regions:

    Country Enum Description
    Australia au_abn Australian Business Number (AU ABN)
    Canada ca_bn Canadian BN
    Canada ca_qst Canadian QST number
    Spain es_cif Spanish CIF number
    Austria eu_vat European VAT number
    Belgium eu_vat European VAT number
    Bulgaria eu_vat European VAT number
    Cyprus eu_vat European VAT number
    Czech eu_vat European VAT number
    Germany eu_vat European VAT number
    Denmark eu_vat European VAT number
    Estonia eu_vat European VAT number
    Spain eu_vat European VAT number
    Finland eu_vat European VAT number
    France eu_vat European VAT number
    United Kingdom eu_vat European VAT number
    Greece eu_vat European VAT number
    Croatia eu_vat European VAT number
    Hungary eu_vat European VAT number
    Ireland eu_vat European VAT number
    Italy eu_vat European VAT number
    Lithuania eu_vat European VAT number
    Luxembourg eu_vat European VAT number
    Latvia eu_vat European VAT number
    Malta eu_vat European VAT number
    Netherlands eu_vat European VAT number
    Poland eu_vat European VAT number
    Portugal eu_vat European VAT number
    Romania eu_vat European VAT number
    Sweden eu_vat European VAT number
    Slovenia eu_vat European VAT number
    Slovakia eu_vat European VAT number
    Hong Kong hk_br Hong Kong BR number
    India in_gst Indian GST number
    Japan jp_cn Japanese Corporate Number (Hōjin Bangō)
    South Korea kr_brn Korean BRN
    Liechtenstein li_uid Liechtensteinian UID number
    Mexico mx_rfc Mexican RFC number
    Malaysia my_itn Malaysian ITN
    Malaysia my_sst Malaysian SST number
    Norway no_vat Norwegian VAT number
    New Zealand nz_gst New Zealand GST number
    Russia ru_inn Russian INN
    Singapore sg_uen Singaporean UEN
    Thailand th_vat Thai VAT
    Taiwan tw_vat Taiwanese VAT
    United States us_ein United States EIN
    South Africa za_vat South African VAT number

    Validation

    You are responsible for ensuring customer information, including their tax identification number, is accurate.

    Stripe Billing provides automatic validation for some tax ID types.

    European Value-Added-Tax (EU VAT) Numbers

    Stripe automatically validates all European Value-Added-Tax (EU VAT) numbers with the European Commission’s VAT Information Exchange System (VIES). This process only validates whether or not the tax ID is valid—you’ll still need to verify the customer’s name and address to make sure it matches the registration information.

    VIES validation usually takes only a few seconds, but depending on the availability of various government databases, may take longer. Stripe will automatically handle VIES downtime and attempt retries for you.

    Australian Business Numbers (ABN)

    Stripe also automatically validates all Australian Business Numbers (ABNs) with the Australian Business Register (ABR).

    Validation webhooks and Dashboard display

    Because this validation process happens asynchronously, you will be notified of validation updates via the customer.tax_id.updated webhook.

    Hover over a customer’s EU VAT number to display their VIES information.

    The results of the validation are displayed in the Dashboard while displaying the customer details, including details returned from the government databases, as well as the registered name and address.

    When automatic validation is not available, we strongly recommend that you manually verify these IDs.

    Managing

    Tax IDs can be managed via the Customer page on the Dashboard, or via the Tax ID API.

    The Customer detail page and Tax ID field.

    Navigate to the Customer page, clicking the Update details button in the top of the Details panel. The Update customer invoice details modal will appear, with the Tax ID section visible.

    Clicking the Add tax ID link will add a row to the Tax ID list, where you can select the ID type and value.

    Removing a Tax ID from a customer is as simple as removing the row.

    Using the API

    You can add or delete Tax IDs using the API.

    The following example shows how to create a new Tax ID on a Customer, storing their VAT number.

    curl https://api.stripe.com/v1/customers/cus_4fdAW5ftNQow1a/tax_ids \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d value=DE123456789 \ -d type=eu_vat
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' Stripe::Customer.create_tax_id( 'cus_4fdAW5ftNQow1a', { type: 'eu_vat', value: 'DE123456789', } )
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' stripe.Customer.create_tax_id( 'cus_4fdAW5ftNQow1a', type='eu_vat', value='DE123456789', )
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); \Stripe\Customer::createTaxId( 'cus_4fdAW5ftNQow1a', [ 'type' => 'eu_vat', 'value' => 'DE123456789', ] );
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; Customer customer = Customer.retrieve("cus_4fdAW5ftNQow1a"); TaxIdCollectionCreateParams params = TaxIdCollectionCreateParams.builder() .setType(TaxIdCollectionCreateParams.Type.EU_VAT) .setValue("DE123456789") .build(); TaxId taxId = customer.getTaxIds().create(params);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); stripe.customers.createTaxId( 'cus_DqZrTNCO4puf2p', { type: 'eu_vat', value: 'DE123456789', }, function(err, taxId) { // asynchronously called } );
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.TaxIDParams{ Customer: stripe.String("cus_4fdAW5ftNQow1a"), Type: stripe.String(string(stripe.TaxIDTypeEUVAT)), Value: stripe.String("DE123456789"), } taxId, err := taxid.New(params)
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options = new TaxIdCreateOptions { Type = "eu_vat", Value = "DE123456789", }; var service = new TaxIdService(); var taxId = service.Create("cus_4fdAW5ftNQow1a", options);

    You can delete a Tax ID, as shown in the this example:

    curl https://api.stripe.com/v1/customers/cus_Euql8T6KrknXwN/tax_ids/txi_123456789 \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -X DELETE
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' Stripe::Customer.delete_tax_id( 'cus_4fdAW5ftNQow1a', 'txi_123456789', )
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' stripe.Customer.delete_tax_id( 'cus_4fdAW5ftNQow1a', 'txi_123456789', )
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); \Stripe\Customer::deleteTaxId( 'cus_4fdAW5ftNQow1a', 'txi_123456789', function(err, confirmation) { // asynchronously called } );
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; Customer customer = Customer.retrieve("cus_4fdAW5ftNQow1a"); TaxId taxId = customer.getTaxIds().retrieve("txi_123456789"); taxId.delete();
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); stripe.customers.deleteTaxId( 'cus_4fdAW5ftNQow1a', 'txi_123456789', function(err, confirmation) { // asynchronously called } );
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.TaxIDParams{ Customer: stripe.String("cus_4fdAW5ftNQow1a"), } taxid, err := taxid.Del("txi_123456789", params)
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var service = new TaxIdService(); service.Delete("cus_4fdAW5ftNQow1a", "txi_123456789");

    To update a Tax ID, delete the old ID and create another.

    Was this page helpful?

    Feedback about this page?

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.

    On this page