Getting Started
ERPNext Europe ships with sensible defaults — most EU countries are preconfigured, common commodity codes are mapped, and the ICP/Intrastat calculation runs from existing Sales Invoice and Purchase Invoice data. You just need to point the app at your reality.
Step 1 — Seed the EU member states list
After install, open EU Intracommunity Settings in the awesomebar. Click Setup Default EU Member States. This populates a child table with all 27 EU countries, their 2-letter ISO codes, and the Intrastat thresholds the European Commission publishes for each one.
You can edit individual rows afterwards — drop the threshold for your own country to zero if you want Intrastat to include every transaction, or raise it if you only care about meaningful volume.
Step 2 — Configure the ICP triggers
Still on EU Intracommunity Settings, find the ICP Tax Categories
field. This is a comma-separated list of Tax Category names that
indicate an intracommunity supply. Default value: EU-B2B.
If you've set up extra Tax Categories for specific EU scenarios (e.g.
EU-B2B-Reduced for reduced-rate intracommunity services), add them
here. Any Sales Invoice line whose Customer carries one of these
categories will flow into the next ICP declaration.
Step 3 — Set Intrastat defaults
Three more fields on EU Intracommunity Settings:
- Default Transport Code — 1 (Sea), 2 (Rail), 3 (Road), 4 (Air), 5 (Postal), 7 (Pipeline), 8 (Inland waterway), 9 (Self-propelled). Most companies use 3 (Road) — this becomes the fallback when the Shipping Rule doesn't specify one.
- Default Region Code — the NUTS region code where your warehouse
is located. For Utrecht:
NL310. Used as fallback when the Warehouse doesn't specify one. - Default Dispatches / Arrivals Threshold — the EUR threshold below which Intrastat reporting is optional. Defaults match the European Commission's published values.
Step 4 — Tag your Items with commodity codes
Open each Item that ships across borders and fill in:
- Customs Tariff Number — the CN8 (8-digit) code. The app validates the format on save and rejects invalid codes. Find codes at taxation.ec.europa.eu.
- Intrastat Supplementary Unit — if your CN8 code requires a secondary unit of measure (kg, litres, pairs, etc.), fill it in. The Intrastat report needs both the value and the quantity.
For items that legitimately have no commodity code (services), tick Skip Commodity Code Validation so they don't block Intrastat generation.
Step 5 — Configure Warehouses with NUTS codes
For Intrastat dispatches, the report needs to know which NUTS region the
goods left from. Open each Warehouse that ships internationally and
set Intrastat Region Code to the NUTS code (e.g. NL310 Utrecht,
NL326 Greater Amsterdam).
The Warehouse-level code overrides the EU Intracommunity Settings default.
You're done
The first ICP declaration and Intrastat report are now one click away — see ICP Declaration and Intrastat Report.