EU VAT & Customs Territory Check by Postcode
Pricing
from $0.56 / 1,000 classified places
EU VAT & Customs Territory Check by Postcode
Is this address in the EU VAT area, customs territory, excise area and Schengen? Send a country and postcode or coordinates. Covers the Canary Islands, Ceuta, Melilla, Heligoland, Büsingen, Livigno, Åland, Mount Athos, French overseas departments, Channel Islands and Northern Ireland.
Pricing
from $0.56 / 1,000 classified places
Rating
0.0
(0)
Developer
fetchgrove
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Send a country and postcode (or coordinates) and find out whether the place is really inside the EU VAT area, the EU customs territory, the excise area and Schengen. Built for the places checkout and tax tools get wrong: the Canary Islands, Ceuta and Melilla, Heligoland, Büsingen, Livigno, Campione d'Italia, Åland, Mount Athos, the French overseas departments, the Channel Islands, Northern Ireland and Monaco.
Runs on bundled, dated reference data. No outside calls, nothing stored beyond your own run.
What you get for each place
| Field | Example (Tenerife, 38001) |
|---|---|
| Territory | Canary Islands |
| In the EU | yes |
| In the EU VAT area | no |
| In the EU customs territory | yes |
| In the EU excise area | no |
| In Schengen, and since when | yes, since 1995-03-26 |
| Local indirect tax | IGIC |
| How it was decided | postcode, coordinates or country default |
| Confidence and near-border flag | high; true when a point is within 5 km of a territory boundary |
| Notes and sources | the special rule that applies, with official links and the date they were checked |
| Checkout answers | charge EU VAT on goods? customs paperwork from and to the EU? EU excise? the standard VAT or local tax rate on the date, each with a reason |
Northern Ireland has an extra field, inEUVatAreaForGoods, because EU VAT rules apply there to goods only.
Use it for
- Checkout and tax setup: stop charging EU VAT to Canary Islands or Channel Islands customers, and catch orders that need customs paperwork.
- Shipping and marketplaces: flag addresses that leave the EU customs territory.
- Data cleaning: tag a customer list with the right tax and customs status in one run.
- Travel tools: know whether a destination is in Schengen on a given date.
How to use it
Add items with country (ISO code) and a postcode, or lat and lon. Optional asOf date: answers use the rules in force on that date (for example before and after Croatia joined Schengen on 2023-01-01).
Or paste plain lines, one place per line: ES 38001, GB BT1 1AA, 29.035,-13.63.
Leave the input empty to see three examples.
Output example
Real output (shortened):
{"country": "ES","postcode": "38001","territory": { "code": "ES-CN", "name": "Canary Islands" },"inEU": true,"inEUVatArea": false,"inEUCustomsTerritory": true,"inEUExciseArea": false,"inSchengen": true,"schengenSince": "1995-03-26","localTax": "IGIC","basis": "postcode","confidence": "high"}
Pricing
| What | Price |
|---|---|
| One place classified | $0.0008 ($0.80 per 1,000) |
| Run start | $0.00005 per run (5 cents per 1,000 runs) |
Unknown countries and unreadable input are free. Free Apify plan: up to 50 places per run.
Good to know
- Status follows the European Commission's published territorial-scope table, with each special case noted in the result.
- Coordinates near a border are marked; map outlines can be off by up to about a kilometre.
- Not legal or tax advice. Check with the tax authority or an adviser before relying on a result.
Data sources and credits
EU and national official sources, listed with dates in each result. Map outlines: Natural Earth (public domain); © BKG (2026) dl-de/by-2-0, Datenquellen: https://sg.geodatenzentrum.de/web_public/gdz/datenquellen/datenquellen_vg_nuts.pdf (Helgoland, Büsingen); contains ISTAT data (CC BY 4.0), simplified (Livigno, Campione d'Italia).
Not affiliated with the European Commission or any national authority.
Support
Spotted a territory we have wrong? Open an issue on this page.