Title: Coder Vibe EU Parcel Duty
Author: oozye2
Published: <strong>October 29, 2026</strong>
Last modified: October 31, 2026

---

Search plugins

![](https://ps.w.org/coder-vibe-eu-parcel-duty/assets/banner-772x250.png?rev=3772559)

![](https://ps.w.org/coder-vibe-eu-parcel-duty/assets/icon-256x256.png?rev=3772559)

# Coder Vibe EU Parcel Duty

 By [oozye2](https://profiles.wordpress.org/oozye2/)

[Download](https://downloads.wordpress.org/plugin/coder-vibe-eu-parcel-duty.1.1.2.zip)

 * [Details](https://wordpress.org/plugins/coder-vibe-eu-parcel-duty/#description)
 * [Reviews](https://wordpress.org/plugins/coder-vibe-eu-parcel-duty/#reviews)
 *  [Installation](https://wordpress.org/plugins/coder-vibe-eu-parcel-duty/#installation)
 * [Development](https://wordpress.org/plugins/coder-vibe-eu-parcel-duty/#developers)

 [Support](https://wordpress.org/support/plugin/coder-vibe-eu-parcel-duty/)

## Description

Since 1 July 2026 the EU charges a flat **€3 customs duty per declaration line**
on distance-sale parcels worth €150 or less shipped from outside the EU, whether
or not you use IOSS. On a normal low-value declaration a line is a 6-digit HS code,
not a unit:

 * 5 cotton T-shirts = 1 line = €3
 * 3 T-shirts and a watch = 2 lines = €6

This plugin handles the whole flow for UK and other non-EU shops selling to EU consumers.

#### Order detection

 * Spots EU-bound consignments from outside the EU and tests the €150 limit on goods
   value (ex VAT, shipping excluded)
 * Your own exchange rate, or opt in to daily European Central Bank reference rates
 * Skips virtual products, local pickup, non-EU destinations and shops that ship
   from inside the EU

#### EU VAT under IOSS

 * Collects the destination country’s VAT at checkout on parcels of €150 or less,
   through WooCommerce’s own tax engine
 * One click adds standard VAT rates for all 27 member states; edit them or add 
   reduced rates as normal
 * Above €150, EU VAT is removed automatically: the sale is zero-rated and VAT is
   paid on import. The €150 test uses the goods value after coupons, the same value
   as the duty, and order recalculations in the admin use the order’s own value
 * Your IOSS number is encrypted at rest, masked in the admin, never shown to customers,
   and only sent to your carrier for parcels where IOSS VAT was actually collected,
   so nothing is taxed twice

#### The €3 duty

 * Charge it at checkout or absorb it and record it
 * Never charged at checkout on non-IOSS parcels shipped DAP, where the carrier 
   already collects it from your customer
 * Lines by 6-digit HS code (H7) or by 10-digit code plus origin (H1)

#### Customs paperwork and carriers

 * HS code, country of origin and customs description on every product, with category
   defaults
 * **HS code finder**: describe a product and pick a code from the official UK Trade
   Tariff
 * Printable commercial invoice per order, with your EORI number
 * Royal Mail Click & Drop order-import CSV, single order or bulk, with IOSS delivery
   terms only where IOSS applied
 * REST endpoint for other shipping platforms: `GET /wp-json/eupd/v1/orders/<id>/
   customs`
 * Warnings for missing HS codes, weights and SKUs (required by Royal Mail for EU
   e-commerce goods from 1 November 2026)

#### Audit trail

 * Every order stores a record of the calculation: goods value, exchange rate with
   its source and date, duty lines, HS codes, VAT by rate, delivery terms and plugin
   version
 * The record locks when the order is paid and an order note summarises it; later
   exports, shipment references and recalculations that change the customs outcome
   are logged with time and user
 * **Monthly IOSS report**: VAT and taxable amount per member state and rate, net
   of refunds, converted at the ECB rate for the last day of the month, with CSV
   download

#### Important

This plugin is a calculation and record-keeping aid, not tax or customs advice. 
Check how your carrier and IOSS intermediary handle duty and VAT before going live.
The €3 duty is transitional and due to run until 1 July 2028.

### External services

**GOV.UK Trade Tariff API** (HM Revenue & Customs), used by the HS code finder in
the admin. Only contacted when a store manager clicks “Find code” and searches.

 * Data sent: the search text, plus your site URL in the User-Agent header. No customer
   or order data.
 * Results are cached for a week.
 * Service: https://www.trade-tariff.service.gov.uk/
 * Terms: https://www.trade-tariff.service.gov.uk/terms
 * Privacy: https://www.trade-tariff.service.gov.uk/privacy

**European Central Bank euro reference rates**, optional and off by default. Only
if the store manager chooses “European Central Bank” as the rate source in settings,
the plugin downloads the public daily rates file twice a day, and the 90-day history
file when the IOSS report is opened. Nothing about your shop, customers or orders
is sent. Until then, the manual rate in settings is used and the ECB is never contacted.

 * Daily rates: https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
 * About the rates: https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/
   html/index.en.html
 * Legal notice and privacy: https://www.ecb.europa.eu/services/disclaimer/html/
   index.en.html

Checkout calculations never call an external service; they use the stored rate.

## Screenshots

[⌊Settings with exchange rate, IOSS and duty status.⌉⌊Settings with exchange rate,
IOSS and duty status.⌉[

Settings with exchange rate, IOSS and duty status.

[⌊HS code finder on the product screen.⌉⌊HS code finder on the product screen.⌉[

HS code finder on the product screen.

[⌊IOSS VAT and duty at checkout.⌉⌊IOSS VAT and duty at checkout.⌉[

IOSS VAT and duty at checkout.

[⌊EU customs panel on the order screen.⌉⌊EU customs panel on the order screen.⌉[

EU customs panel on the order screen.

[⌊Commercial invoice.⌉⌊Commercial invoice.⌉[

Commercial invoice.

[⌊Monthly IOSS report.⌉⌊Monthly IOSS report.⌉[

Monthly IOSS report.

## Installation

 1. Install and activate the plugin.
 2. Go to **WooCommerce  Settings  Tax  EU parcel duty**.
 3. Check “Ships from” and how your non-IOSS parcels ship (DAP or DDP).
 4. If you use IOSS: tick “Collect EU VAT”, enter your IOSS number, click “Add EU standard
    VAT rates”, and make sure tax calculation is enabled in WooCommerce  Settings  
    General and “Calculate tax based on” is the customer shipping address in WooCommerce
    Settings  Tax.
 5. Add HS codes, country of origin and weights to your products, or set default HS
    codes on categories.

## FAQ

### Can I use UK commodity codes?

Yes. The first 6 digits of any UK or EU commodity code are the international HS 
subheading.

### Why isn’t the duty added at checkout?

If you don’t use IOSS and your parcels ship DAP, the carrier collects the €3 from
your customer on delivery. Adding it at checkout as well would charge them twice,
so the plugin records it on the order instead. Switch “Non-IOSS parcels ship” to
DDP if you use a duties-paid service.

### Is the €3 duty included in the IOSS VAT?

The European Commission says the duty is not part of the VAT taxable amount for 
IOSS sales. The duty fee is therefore not taxed by default.

### What about orders over €150?

They can’t use IOSS. The plugin removes EU VAT and adds no flat duty; standard import
VAT and duty are paid on arrival.

### Does turning off “Enable” switch off the EU VAT handling?

No. “Enable” only controls the €3 duty. EU VAT follows the “Collect EU VAT (IOSS)”
setting: with IOSS on, EU VAT is collected on parcels of €150 or less and removed
above €150; with IOSS off, the EU VAT rates the plugin added are not used.

### What happens to the EU VAT rates if I deactivate or delete the plugin?

They stay in WooCommerce  Settings  Tax, because they are ordinary WooCommerce tax
rates you may have edited. Without the plugin nothing removes them, so they would
charge EU VAT on every EU order, including orders over €150. If you stop using the
plugin, delete those rates first. The Plugins screen shows a reminder while they
are installed.

### What about virtual products and local pickup?

Virtual products are not part of the parcel: they add no duty, their VAT is left
as you configured it, and it is not counted as IOSS VAT. Orders collected by local
pickup are not exported, so no EU duty is added and no EU customs record is made.

### Does it work with the block checkout?

Yes. VAT and fees go through WooCommerce’s standard tax and fee APIs, which both
checkouts use.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Coder Vibe EU Parcel Duty” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ oozye2 ](https://profiles.wordpress.org/oozye2/)

[Translate “Coder Vibe EU Parcel Duty” into your language.](https://translate.wordpress.org/projects/wp-plugins/coder-vibe-eu-parcel-duty)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/coder-vibe-eu-parcel-duty/),
check out the [SVN repository](https://plugins.svn.wordpress.org/coder-vibe-eu-parcel-duty/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/coder-vibe-eu-parcel-duty/)
by [RSS](https://plugins.trac.wordpress.org/log/coder-vibe-eu-parcel-duty/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.2

 * The €150 IOSS test now takes coupons into account, so VAT and the IOSS status
   always agree. A parcel is only marked IOSS when the destination country’s VAT
   was actually charged.
 * Recalculating an order in the admin, or creating one through the REST API, now
   judges the €150 limit on that order, not on the shop manager’s cart, and the 
   customs record is updated to match (logged if it was already locked).
 * Virtual items keep their VAT and no longer count towards the €150 limit or the
   IOSS VAT.
 * Local pickup orders are no longer treated as EU-bound parcels.
 * Only VAT of the country the parcel ships to is treated as IOSS VAT. Warning when
   tax is not calculated on the shipping address.
 * The duty “Enable” setting no longer switches off IOSS VAT handling.
 * Warning, and IOSS exports blocked, when the saved IOSS number is missing or can
   no longer be decrypted.
 * Warning on the Plugins screen that the EU VAT rates the plugin added stay active
   if it is deactivated.
 * Click & Drop CSV: phone numbers starting with + are no longer prefixed with an
   apostrophe. RFC 4180 output, with no PHP 8.4 deprecation notice.
 * Customs paperwork: refunded lines are left out, lines for deleted products are
   kept, a corrected shipping country is used, and totals add up when an order has
   virtual items.
 * Commercial invoice: neutral export VAT wording, no VAT box for non-EU or domestic
   orders, and translatable title and language.
 * The audit log records exports with the IOSS number status that was actually exported.
 * Fixed a fatal error when a refund ID was passed to the invoice, CSV export or
   customs REST endpoint.
 * IOSS report: fully refunded orders and refunds without line items are netted 
   off, unpaid on-hold orders are only reported once paid, and VAT on virtual items
   or other countries’ rates is left out.
 * IOSS report months follow the store’s timezone, and the taxable amount is taken
   from the order lines.
 * HS code finder: a failed Trade Tariff lookup is no longer cached as “no results”.
 * The “Settings” link on the Plugins screen is hidden while WooCommerce is inactive.
 * Settings defaults for origin and exchange rate are no longer frozen by WooCommerce
   on install.

#### 1.1.1

 * ECB exchange rates are now opt-in. Nothing is downloaded on activation or until
   the store manager chooses the ECB as the rate source.
 * The “WooCommerce required” notice only shows on the Plugins screen.

#### 1.1.0

 * EU VAT under IOSS through WooCommerce tax rates, removed automatically above 
   €150.
 * Encrypted, masked IOSS number, released only for IOSS consignments.
 * Daily ECB exchange rates.
 * Commercial invoice, Royal Mail Click & Drop CSV export and customs REST endpoint.
 * Country of origin and customs description on products.
 * Locked per-order audit record, audit log, shipment reference.
 * Monthly IOSS VAT report with CSV.
 * Duty is no longer charged at checkout on non-IOSS DAP parcels, where the carrier
   collects it.
 * Optional H1 line basis (10-digit code plus origin).

#### 1.0.0

 * First release.

## Meta

 *  Version **1.1.2**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.3 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [customs duty](https://wordpress.org/plugins/tags/customs-duty/)[eu vat](https://wordpress.org/plugins/tags/eu-vat/)
   [hs code](https://wordpress.org/plugins/tags/hs-code/)[IOSS](https://wordpress.org/plugins/tags/ioss/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/coder-vibe-eu-parcel-duty/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/coder-vibe-eu-parcel-duty/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/coder-vibe-eu-parcel-duty/reviews/)

## Contributors

 *   [ oozye2 ](https://profiles.wordpress.org/oozye2/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/coder-vibe-eu-parcel-duty/)