Y-tunnus — PRH legal company identifier
The Y-tunnus (Yritys- ja yhteisötunnus) is the legal
identifier of every company, foundation or NGO registered in
Finland. Jointly operated by PRH
(Patentti- ja rekisterihallitus — Finnish Patent and Registration
Office) and Vero.fi, it takes the form
NNNNNNN-N (7 digits + check digit). Prefixed by 0037
in the PEPPOL scheme, by FI in intra-EU VAT.
What is the Y-tunnus?
The Y-tunnus is the unique identifier assigned to every legal person registered in Finland — commercial companies (osakeyhtiö Oy, osuuskunta, kommandiittiyhtiö Ky), associations (yhdistys), foundations (säätiö) and registered individual entrepreneurs (toiminimi). It serves simultaneously as:
- Trade Register (Kaupparekisteri) identifier — held by PRH.
- Tax identifier — Vero.fi number for VAT, corporate tax, social contributions.
- Customs identifier — national EORI equivalent, used for Tulli (Finnish Customs) declarations.
- Statistical identifier — Tilastokeskus (Statistics Finland) uses the Y-tunnus for economic aggregates.
- E-invoicing identifier — basis of the OVT-tunnus (with the 0037 prefix).
Uniqueness means there is no need for multiple numbers (SIRET vs SIREN vs VAT vs Trade Register number, like in France). All administrative life of a Finnish company revolves around a single identifier.
Format and checksum algorithm
The Y-tunnus has a simple structure: 7 digits + dash + 1 check digit. The checksum algorithm is public (validated by PRH):
Y-tunnus checksum algorithm
─────────────────────────────────────────────────────
Y-tunnus = NNNNNNN-C
where NNNNNNN = 7 sequential digits allocated by PRH
and C = check digit (0-9), computed as follows:
Weights = [7, 9, 10, 5, 8, 4, 2]
Step 1 — Weighted sum:
S = Σ (digit[i] × weight[i]) for i = 0..6
Step 2 — Modulo 11:
R = S mod 11
Step 3 — Determine check digit:
If R = 0 : C = 0
If R = 1 : Y-tunnus invalid (PRH rejection — intentional gap)
If R ≥ 2 : C = 11 − R
Example: 1234567
S = 1·7 + 2·9 + 3·10 + 4·5 + 5·8 + 6·4 + 7·2
= 7 + 18 + 30 + 20 + 40 + 24 + 14
= 153
R = 153 mod 11 = 10
C = 11 − 10 = 1
Full Y-tunnus: 1234567-1 Note: if step 2 yields R = 1, the number is invalid by construction — PRH never allocates these sequences, leaving a reserve range. A detail that throws off developers (not finding a check digit between 1 and 10 is not an error, it's the spec).
PRH — governance and registries
PRH (Patentti- ja rekisterihallitus) is the Finnish Patent and Registration Office, a Finnish State agency attached to the Ministry of Economic Affairs and Employment (Työ- ja elinkeinoministeriö). Beyond patents, trademarks and designs, PRH maintains:
- Kaupparekisteri — Trade Register: commercial companies (Oy, Oyj, Ky, Ay), registered individual entrepreneurs (toiminimi).
- Yhdistysrekisteri — Associations Register (yhdistys).
- Säätiörekisteri — Foundations Register (säätiö).
- Yrityskiinnitysrekisteri — Business Mortgages Register.
Registration, articles of association, registered office and the list of legal representatives are public. All raw data lookups are free, only PRH-signed certified extracts are paid.
# Company search via Avoindata.prh.fi API
# All active Y-tunnus are public, free, open data.
GET https://avoindata.prh.fi/bis/v1?totalResults=true&maxResults=10&resultsFrom=0&businessId=1234567-1
Response (JSON):
{
"type": "results",
"version": "1",
"totalResults": 1,
"resultsFrom": 0,
"previousResultsUri": null,
"nextResultsUri": null,
"exceptionNoticeUri": null,
"results": [
{
"businessId": "1234567-1",
"name": "Esimerkki Yritys Oy",
"registrationDate": "2010-04-15",
"companyForm": "OY",
"detailsUri": "https://avoindata.prh.fi/bis/v1/1234567-1",
"businessLines": [
{
"code": "62010",
"name": "Computer programming activities",
"language": "EN",
"registrationDate": "2010-04-15"
}
],
"addresses": [...]
}
]
} Y-tunnus → FI VAT, and back
The Finnish intra-EU VAT number is mechanically derived from the Y-tunnus:
- Remove the dash:
1234567-1→12345671 - Add the prefix
FI:FI12345671
Conversely, from a Finnish VAT number, the Y-tunnus is recovered by:
- Removing
FI - Inserting a dash before the last digit
This deterministic relation makes SAP/Oracle matching trivial between the supplier master data (Y-tunnus) and the intra-EU VAT return (FI prefix). No ambiguity — not the case in France (SIREN ≠ intra-EU VAT in group situations).
PEPPOL ICD 0037
In the PEPPOL scheme, Finland uses ICD 0037 with the Y-tunnus as identifier. The full form is:
iso6523-actorid-upis::0037:1234567-1 or in short form in some Finvoice contexts (no dash):
iso6523-actorid-upis::0037:12345671
The official normalisation (PEPPOL Coordinating Community + Tieke)
keeps the form with dash
(1234567-1) — this is the form published in the
international SMP/SML registry.
Common pitfalls
- Confusing Y-tunnus and OVT-tunnus. Y-tunnus = legal identifier (NNNNNNN-N, 9 chars). OVT-tunnus = e-invoice routing address (12-17 chars, 0037 prefix). The OVT contains the Y-tunnus but is not reducible to it.
- Dash in the wrong place. The dashed form is
before the last digit (
1234567-1), not before the second-to-last (123456-71). Old CSV tools sometimes break this rule. - Believing every Y-tunnus is active. A struck-off company (lakannut yhtiö) keeps its Y-tunnus, but the PRH API returns a passiivinen status. Always check the status before issuing an invoice.
- Confusing Y-tunnus and HETU. HETU (henkilötunnus) is the Finnish personal social security number (format DDMMYY-XXXX). Never use a HETU instead of a Y-tunnus in a Finvoice — GDPR + personal data disclosure risk.
- Forgetting the checksum. A Y-tunnus with an invalid check digit must be rejected ERP-side before any PRH call. Many Finvoice operators silently reject invoices with an invalid Y-tunnus.