Billing field names added by POP at checkout
Goal
Know the technical names (name/meta key) of the fields POP adds to WooCommerce checkout, useful if you
customize the theme, a custom checkout plugin, or read order meta via code.
Fields added
| Field | What it contains |
|---|---|
billing_choice_type | Document choice: receipt or invoice. Visible only if the choice is enabled (see below). |
billing_invoice_type | Customer type: private, company, or freelance — fixed keys, even if you customize the labels. |
billing_sdi_type | A single field for either PEC or the 7-character SDI recipient code (these are not two separate fields). |
billing_vat_number | VAT number. |
billing_tax_code | Tax code (codice fiscale). |
A format check (RegEx) is applied to the billing_sdi_type, billing_vat_number, and billing_tax_code
fields, in addition to any required-field setting, which varies by country and customer type.
Where visibility/labels are configured
All of these behaviors are set in POP → Electronic Invoice - Settings, Checkout tab:
- Customer type list — customizes the labels of
billing_invoice_type(theprivate,company,freelancekeys stay fixed); format: one line per entry,key:Label. - Activate the choice of receipt — shows/hides the
billing_choice_typefield. - Disable PEC/unique code field — hides
billing_sdi_type(the recipient code is automatically set to0000000). - Disable Fiscal Code — hides
billing_tax_codefor companies and freelancers. - VAT number and tax code for non-EU customers — shows/hides these fields for non-EU customers.
- Position of the fields (e-invoice) in the checkout form — positions the field block at the top or bottom of the form.
Verify
Inspect the checkout HTML (or the order meta in wp-admin > Orders) and check that the field names
match exactly what’s in the table.
Common errors
- A custom plugin/theme can’t find the PEC field — it probably looks for
billing_pec: the correct name isbilling_sdi_type(used for both PEC and the SDI code). - You’re looking for
billing_cf— the actual name isbilling_tax_code. - The meta saved on the order doesn’t match what was entered at checkout — if you use a custom checkout plugin, compatibility with these fields isn’t guaranteed: POP can’t account for third-party logic that alters the order flow.
Related configuration
To add custom logic based on these fields (e.g. via the wc_el_inv-* hooks) see
custom-code-snippets.