# Customer Tax IDs

WCPOS keeps a tax-ID field on your customers — a VAT number, ABN, CPF, GSTIN, NIF, and so on — for B2B sales where the buyer's tax identifier has to appear on the invoice. When an order is placed for a customer, WCPOS copies their tax ID onto the order so it can be printed on the receipt.

The **Tax IDs** section at **WP Admin > POS > Settings > General** controls how this field is detected and stored.

<!-- -->

## Plugins and field names[​](#plugins-and-field-names "Direct link to Plugins and field names")

Many WooCommerce plugins already add a VAT or tax-number field to customers, and they all use different database field names (meta keys) for it. So that your existing customer data keeps working — with no migration — WCPOS detects what you have installed and writes to the right field automatically.

WCPOS resolves the field name in this order:

1. **A recognised plugin is active** — WCPOS writes back to that plugin's field. Detected plugins include:

   <!-- -->

   * WooCommerce EU VAT Number
   * Aelia EU VAT Assistant (including its verification status)
   * EU VAT for WooCommerce (WPFactory)
   * WooCommerce Germanized / Germanized Pro
   * Brazilian Market on WooCommerce / Extra Checkout Fields for Brazil
   * NIF/CIF Spain

2. **No recognised plugin** — WCPOS scans recent orders for whatever VAT/CPF/etc. field is already in use and writes to that.

3. **Nothing found** — WCPOS falls back to sensible defaults (`_billing_vat_number` for VAT-style IDs, `_billing_cpf` / `_billing_cnpj` for Brazil, `_billing_gstin` for India, and so on).

### Choosing the field name yourself[​](#choosing-the-field-name-yourself "Direct link to Choosing the field name yourself")

To override the detected field name, go to **WP Admin > POS > Settings > General**, open the **Tax IDs** section, and expand **Advanced: use a different field name**.

A banner there shows which plugin was auto-detected (or "no plugin detected", with the built-in defaults in use). The override input has a typeahead that suggests the meta keys other plugins commonly use. Clear the input to drop your override and go back to the automatic field name.

note

Only the customer-facing tax-ID types appear in this editor. Company-registry identifiers like the German USt-IdNr. or Dutch KVK number are store-level fields — see [Store Tax IDs](/settings/wp-admin/store-tax-ids.md).

## Tax IDs are copied onto orders[​](#tax-ids-are-copied-onto-orders "Direct link to Tax IDs are copied onto orders")

When an order is placed, the customer's tax IDs are **snapshotted** onto the order — the order keeps the values that were on file at the moment of sale.

* Editing a customer's tax ID later does **not** rewrite their past orders.
* A tax ID a cashier enters at checkout overrides the value from the customer record for that order.
* Editing an existing order only changes its tax IDs if the update explicitly includes them; WCPOS never re-copies from the customer record.

This keeps historical invoices accurate even after a customer's details change.

## Supported types[​](#supported-types "Direct link to Supported types")

EU VAT, GB VAT, SA VAT, Australian ABN, Brazilian CPF / CNPJ, Indian GSTIN, Italian Codice Fiscale and Partita IVA, Spanish NIF, Argentine CUIT, Canadian GST/HST, and US EIN — plus a generic **Tax ID** for anything else.

## Finding customers by tax ID[​](#finding-customers-by-tax-id "Direct link to Finding customers by tax ID")

Customer search in the POS also matches tax-ID values, including the older plugin field names, so a cashier can look a customer up by their VAT number, CPF, or NIF.

## On receipts[​](#on-receipts "Direct link to On receipts")

Customer tax IDs appear on receipts that show customer details, with the correct localised label for each type. VAT numbers are country-prefixed (for example `DE123456789`).

## Related[​](#related "Direct link to Related")

[Store Tax IDsYour business's tax IDs on receipts](/settings/wp-admin/store-tax-ids.md)

[CustomersManaging customers in the POS](/customers/.md)

[Receipt DataTemplate variable reference](/receipts/receipt-data.md)
