Checkout VAT

The IOSS Import VAT tax class

The plugin charges VAT through WooCommerce’s own tax system, not a parallel one. It creates a dedicated tax class called IOSS Import VAT and, when a cart qualifies for IOSS, routes product tax lookups onto that class so the destination country’s rate applies. When a cart does not qualify, the customer is made VAT-exempt for the session and no EU VAT is charged. Eligibility is re-assessed whenever the address or cart contents change.

Because these are ordinary WooCommerce tax rates, they play well with the rest of your setup: they appear in WooCommerce’s tax reports, on invoices, and in order totals like any other rate.

One-click rate import

Under WooCommerce → IOSS → Settings (and on the wizard’s final step), the Import VAT rates button fills the IOSS Import VAT class with one standard rate per EU member state, from the plugin’s bundled, effective-dated dataset. Re-running the import updates existing rows rather than duplicating them. With the optional rates feed enabled, member-state rate changes reach you without a plugin update.

The free plugin imports standard rates. Per-country reduced rates by product category are a Pro feature — see Reduced rates.

Under EUR 150: charge and say so

When the consignment qualifies, the destination rate is charged and an optional customer notice appears at checkout along the lines of “Price includes EU VAT — no surprises at delivery.” That sentence does real work: it tells the customer the price is final, which is the whole selling point of IOSS.

Over EUR 150: don’t charge, and say so clearly

When the consignment is over the ceiling (or excluded for another reason), the cart is made VAT-exempt and a second editable notice explains what happens instead: import VAT and duties are collected on delivery by the carrier. The default text also mentions the EUR 3 per item flat customs duty that applies to low-value consignments since 1 July 2026 (until 1 July 2028, collected through customs, not through IOSS) — your customer should hear about that from you, not from the courier.

Both notice texts are editable under Settings, and each can be turned off independently. On the classic checkout the notices render inline; on the block checkout they are delivered through WooCommerce’s notice system.

Record-only mode

If an external tax service (Avalara, a merchant-of-record layer, or similar) already charges EU VAT at your checkout, you do not want this plugin charging it a second time. Turn Charge VAT at checkout off in Settings and the plugin switches to record-only mode: it stops touching checkout taxes and notices entirely but keeps doing everything else — eligibility assessment, ECB capture, EUR values, and the monthly per-country figures. Your external service charges; this plugin keeps your IOSS return numbers.

Record-only mode is also the right setting while you are waiting for your IOSS registration to come through and do not want to charge VAT you cannot yet remit.

What this feature does not do

  • It does not charge VAT on orders outside IOSS scope — that is by design, not a gap.
  • It does not calculate customs duty. The EUR 3 flat duty is collected in the customs process; the plugin only mentions it in the notice.
  • It does not validate addresses beyond country and postcode (used for territory resolution).

If VAT is not being applied when you expect it, Troubleshooting walks the usual causes in order.