How to Collect Customer VAT and Tax IDs
in WooCommerce (Step-by-Step)
VAT numbers, GST numbers, tax IDs — whatever your market calls them, collecting them correctly at WooCommerce checkout is a legal and operational requirement for B2B stores. This step-by-step guide explains exactly how to do it without code.
Updated 2026
Tax Compliance & B2B Guide

For many WooCommerce store owners, VAT and tax ID collection exists in an uncomfortable middle ground: they know they need to collect it for certain customers, they are not entirely sure how to do it correctly, and the default WooCommerce checkout does not help them at all. The result is often a patchwork of workarounds — order notes fields with instructions to enter your VAT number, post-purchase email requests for tax IDs, manual invoice corrections — that add administrative overhead, create inconsistent data, and occasionally cause genuine legal compliance problems.
The underlying requirement is not complicated. Business customers purchasing from VAT-registered suppliers need their VAT number on the invoice. In the European Union, this is a legal requirement for zero-rated intra-community B2B transactions — the buyer must provide a valid VAT number for the transaction to qualify for the zero rate, and the seller must record it. In other jurisdictions, the equivalent tax identification number (ABN in Australia, GSTIN in India, EIN or Resale Certificate in the US, company RFC in Mexico) serves similar roles in different tax frameworks. The WooCommerce checkout form, by default, has no field for any of these.
This guide provides a complete step-by-step walkthrough for adding VAT and tax ID collection to your WooCommerce checkout correctly — including which field type to use, how to configure validation, how to show the field only to customers who need it, how the collected data appears on invoices, and the specific formats for each major tax jurisdiction. The implementation uses a WooCommerce checkout field editor for VAT number and tax ID collection rather than custom code — no PHP, no hooks, no developer required.
This guide covers the technical implementation of VAT and tax ID collection in WooCommerce. It does not constitute legal or tax advice. VAT treatment for cross-border B2B transactions, the conditions under which zero-rating applies, and the specific record-keeping requirements in each jurisdiction are legal and tax questions. For guidance on your specific obligations, consult a qualified tax adviser in your jurisdiction. What this guide handles is the practical question of how to collect and display the tax ID data once you know you need to.
Why WooCommerce has no native tax ID field
WooCommerce was built as a general-purpose e-commerce platform serving primarily consumer (B2C) transactions. Consumer transactions, in most jurisdictions, do not require the seller to collect or record the buyer’s tax identification number — the transaction is simply subject to the applicable consumer tax rate with no further identification required. WooCommerce’s default checkout reflects this design assumption: it collects enough information to process the payment and deliver the goods, but nothing related to the buyer’s tax status.
The moment a store starts serving business customers across national borders — particularly within the European Union — this assumption breaks down. Under EU VAT rules, when a VAT-registered business in one EU member state sells goods or services to a VAT-registered business in another EU member state, the transaction can qualify for the zero rate of VAT, provided the seller verifies and records the buyer’s EU VAT number. Without the buyer’s VAT number on record, the seller cannot legally apply the zero rate — they must charge VAT at the full domestic rate, which may be refundable to the buyer but creates immediate cash flow and administrative costs for everyone involved.
Under Article 138 of the EU VAT Directive (Council Directive 2006/112/EC), the supply of goods from one EU member state to a VAT-registered buyer in another EU member state can be zero-rated, but only when the seller has verified that the buyer holds a valid VAT identification number in their member state. The European Commission’s VIES (VAT Information Exchange System) provides a public database for checking whether a given VAT number is currently registered and valid. Recording the buyer’s VAT number at the point of sale is the foundation of the documentary evidence the seller needs to justify zero-rating the transaction.
Outside the EU, similar requirements exist in different forms. Australian GST-registered businesses need their ABN (Australian Business Number) recorded for B2B transactions. Indian businesses need their GSTIN (Goods and Services Tax Identification Number). Canadian businesses need their GST/HST registration number. US businesses purchasing for resale often need to provide a Resale Certificate or State Tax Exemption Certificate. Each jurisdiction has its own system, its own format, and its own compliance requirements — but they all share the same fundamental need: the buyer’s tax identification number must be collected at the point of sale and recorded against the transaction.
Tax ID formats by jurisdiction: what you are collecting and what it looks like
Before configuring your field, it helps to understand the specific format of the tax identification number you are collecting. Format knowledge is necessary for writing useful placeholder text, for configuring basic validation rules, and for creating the correctly labeled field that the buyer immediately recognizes as the right place to enter their number.
Understanding these formats before you configure the field is important for two reasons. First, the field label you choose should match the terminology your customers use for their tax ID in their own jurisdiction — a German business buyer will look for a field labeled “USt-IdNr.” or “VAT Number,” not “Tax ID.” Second, the format information is what your placeholder text should show — an example in the correct format that the customer immediately recognizes as matching their own number.
Step-by-step: adding a VAT or tax ID field to WooCommerce checkout

The VAT or tax ID field belongs in the billing section, close to the company name field. The logical sequence is: company name, then VAT/tax number. Both fields are billing identity fields — they identify who is making the purchase from a legal and tax perspective — and grouping them together creates a coherent “business billing details” section. In WooCommerce checkout field editors, this means adding the field to the billing fields section and positioning it immediately after the company name field using drag-and-drop reordering.
Use a standard text input field for VAT and tax ID collection. Tax ID numbers are alphanumeric in most jurisdictions — they contain both letters (the country code prefix for EU VAT numbers, letters in GST/HST numbers, etc.) and digits, which rules out a pure number field type. A text field with appropriate placeholder text and validation is the correct choice. Do not use a textarea — tax IDs are single-line data entries and a textarea implies the customer should write more than one line, which creates unnecessary confusion.
If your store primarily serves one jurisdiction, use the exact terminology that market uses for its tax number. “VAT Number” for UK and most EU stores. “ABN” for Australian stores. “GSTIN” for Indian stores. If your store serves multiple international markets, “VAT / Tax ID Number” is a reasonable universal label that most business buyers in different countries will recognize as the field intended for their tax identification number. Avoid generic labels like “Tax Number” without further context — they are ambiguous and may cause buyers to enter the wrong identifier.
Placeholder text for a VAT or tax ID field should show an example number in the correct format for your primary market. For a UK store: “e.g. GB123456789.” For a German store: “e.g. DE123456789.” For a store serving all of Europe: “e.g. DE123456789 or GB123456789.” The example communicates both the expected prefix format and the approximate length of the number, which is the most common source of format errors. Customers who have their VAT number but are unsure whether to include the country code prefix will see from the example that it should be included.
Whether the VAT or tax ID field should be required depends on your specific business model and tax obligations. For stores where all orders are B2B and all are cross-border EU transactions, making it required is appropriate — every order needs the buyer’s VAT number for correct tax treatment. For stores that serve a mix of business and consumer customers, or domestic and international customers, making it required globally will block legitimate customers who genuinely do not have a tax ID to provide. The better approach is to make it optional globally, but required conditionally for customers who have identified themselves as business buyers from specific countries.
Individual consumers do not have VAT numbers and will be confused by a VAT number field — either they leave it blank (fine operationally but creates form clutter) or they worry that their absence of a VAT number means something is wrong with their order (a trust concern). The cleanest implementation uses a “Business customer” checkbox or radio button at the top of the billing section, with the company name field and the VAT number field appearing conditionally when the business option is selected. Individual customers see neither field. Business customers see both, in immediate sequence, with the VAT number field labeled and placeholdered appropriately for their context.
Format validation for VAT numbers helps catch obvious errors — a number entered without the country prefix, a number that is too short or too long, a number with invalid characters. However, VAT number format validation must be calibrated to the diversity of formats you actually expect to receive. If you serve all of Europe, your validation needs to accommodate the format variations across all EU member states. If you only serve UK businesses, a simple “starts with GB, 9 digits follow” rule is sufficient. The most common mistake is using a regex that is correct for one country’s format and incorrectly rejects valid numbers from another country.
Place a test order with a sample VAT number and confirm that the number appears in the WooCommerce order detail view in your admin panel. Then check the order confirmation email to confirm it is included there too. If you use an invoice plugin (such as WooCommerce PDF Invoices, Germanized, or a third-party invoicing integration), check that the VAT number field data from custom checkout fields is mapped into the invoice template. A VAT number that is collected at checkout but does not appear on the invoice defeats the entire compliance purpose of collecting it.

Handling multiple tax jurisdictions on one checkout form
Stores serving customers across multiple countries face a more complex configuration challenge: the correct field label, placeholder text, and validation rules differ by country. A customer in Germany expects to see a field relevant to their VAT number format. A customer in Australia expects an ABN field. A customer in India expects a GSTIN field. Running a separate checkout page for each country is impractical. The better approach uses country-based conditional logic to show jurisdiction-appropriate fields.

The multi-jurisdiction implementation creates a separate tax ID field for each jurisdiction you serve, each with its market-appropriate label, placeholder text, and validation rule, and each shown conditionally based on the billing country selected. When a customer selects Germany as their billing country, the “USt-IdNr.” field appears. When they select Australia, the “ABN” field appears instead. When they select the United States, neither field appears unless your US workflow requires an EIN or resale certificate collection.
This approach requires more initial configuration than a single universal tax ID field, but it produces a meaningfully better experience for buyers in each market and higher-quality, correctly formatted data for your tax records and invoice system. The time investment in setting up country-specific fields is recovered quickly in reduced invoice correction requests and cleaner tax documentation.
VIES validation: format checking vs. real-time validity checking
There is an important distinction that store owners implementing EU VAT number collection should understand: the difference between format validation (checking that the number matches the expected structural pattern for the country) and real-time validity checking (verifying against the European Commission’s VIES database that the number is currently registered and active).
Checks that the entered number matches the structural pattern for the selected country. A UK VAT number starting with “GB” followed by 9 digits passes format validation even if that specific number is not registered. Format validation catches obvious entry errors — wrong prefix, wrong length, invalid characters — at the moment of form submission, before the order is placed.
Checks the entered VAT number against the European Commission’s VIES database in real time, confirming whether the number is currently active and registered in the stated member state. VIES validation catches structurally valid numbers that belong to businesses whose registration has lapsed or was never valid. It requires an API call to the VIES service during checkout submission.
For most WooCommerce stores, format validation at the checkout field level is the right starting point. Real-time VIES validation is a valuable additional layer for high-volume B2B stores or stores where VAT fraud risk is a genuine concern, but it adds API dependency, response latency to the checkout process, and occasional VIES service unavailability that must be handled gracefully. The European Commission’s VIES service itself acknowledges response time variability and recommends not blocking transactions if the service is temporarily unavailable.
A practical middle ground: implement format validation at checkout to catch entry errors, and perform VIES validity verification as a post-order batch process rather than a real-time checkout gate. This approach captures the data accurately, prevents the most common format errors, and leaves VIES verification as an asynchronous process that does not introduce latency or failure risk into the checkout flow itself.
Ensuring the tax ID appears on WooCommerce invoices
Collecting the VAT or tax ID at checkout is only half the requirement. The number must appear on the invoice issued to the buyer — this is the documentary record that substantiates the zero-rating or tax exemption for both the seller and the buyer’s accounts payable. A VAT number collected as a checkout field custom meta value needs to be pulled through to the invoice template.

Plugins like WooCommerce PDF Invoices and Packing Slips by WP Overnight, Germanized for WooCommerce, and similar invoice plugins typically allow you to include custom order meta fields in the invoice template. After placing a test order with your VAT number field, check the order meta in the order detail view (often accessible through the WooCommerce order screen under custom fields) and use the meta key for your VAT number field to reference it in the invoice template. The specific implementation varies by invoice plugin — refer to the plugin’s documentation for custom field inclusion.
Custom checkout field data collected through a quality field editor plugin is stored as WooCommerce order meta and can be included in order confirmation emails. For most invoice and order email customization, the custom field data appears automatically in the order detail section if the plugin stores it correctly — test by placing an order and reviewing the order confirmation email received. If the VAT number does not appear automatically, adding it to the email template requires editing the WooCommerce email template or using an email customizer plugin that supports order meta display.
Quick-reference implementation summary
VAT and tax ID collection at WooCommerce checkout is one of those requirements that feels more complex than it is before you start, and straightforwardly manageable once you understand the specific pieces: field type, label, placeholder, conditional display, validation, and invoice integration. The implementation described in this guide — using a WooCommerce checkout field editor with conditional logic for business tax ID collection — handles all of these pieces without requiring custom development or ongoing code maintenance.
The result is a checkout form that serves both consumer and business customers correctly: individual buyers see a clean form with no unnecessary business fields, while B2B buyers see a professionally configured billing section that includes exactly the tax identification field their purchasing and accounts payable processes require. That combination — frictionless for everyone, precise for each type — is what a well-configured WooCommerce B2B checkout looks like in practice.
Collect VAT and tax IDs at checkout — correctly, cleanly, and without code
Advanced WooCommerce Checkout Field Editor gives you text field creation, country-based and business-type conditional logic, format validation, placeholder text configuration, and WooCommerce Blocks support — everything you need to implement professional VAT and tax ID collection for your B2B customers.

Finally a clear guide for ABN collection! Saved me so many headaches
Just wanted to drop a quick note to say this guide was a total lifesaver for setting up VAT fields in WooCommerce. The tip about placing the field right after the company name was perfect it keeps everything looking clean and makes sense for business buyers. The only thing I'd tweak is adding a little note about using conditional logic so the field only shows up if someone selects "business" at checkout. that'd save my clients from dealing with extra fields they don't need.
This guide was a total lifesaver for setting up VAT fields for my B2B customers. The part about conditional logic for business buyers only was exactly what I needed no coding, just simple, clear steps.