PRH: Finland VAT register
prhThe Finnish Patent and Registration Office publishes the Business Information System jointly with the Tax Administration, and its open data interface exposes the company records behind it, VAT registration included. A Finnish VAT number is the business ID with its hyphen removed, so one lookup covers both identifiers.
PRH is run by the Finnish Patent and Registration Office, and its data is published at avoindata.prh.fi. It is one of the 10 national registers Avatcado consults on the Pro and Business plans when VIES cannot answer for Finland, and it never replaces a VIES answer that does arrive. The national registry fallback guide covers the full precedence order.
What PRH publishes
- The company record behind a Finnish business ID, including its names with the dates each was entered and ended
- A list of registered entries, one per register the company is entered in, each with the authority that keeps it and an end date when the entry has lapsed
- Street addresses and postal addresses with post codes and post offices in several languages
- Open data licensed under Creative Commons Attribution 4.0, so the register can be read and reused without an agreement
How Avatcado uses it
A Finnish fallback turns the VAT number back into a business ID by inserting the hyphen before the check digit, then asks the open data interface for that company. VAT registration is read as a registered entry in the VAT register kept by the Tax Administration with no end date on it. An entry that has ended, or a company with no such entry, means Avatcado has learned nothing it can act on, so the request falls through to the cache rather than being answered as invalid.
PRH answers per number, so Avatcado calls it while your request is open, with a 10 second timeout. There is no snapshot to go stale (queried live on the request), so a fallback answer reflects the register as it stood at that moment. If the register is slow or down as well, the request falls through to the cache.
The rule that matters most is that a register can only ever confirm a registration. A miss, whether PRH says not registered or simply has no record, is never turned into valid: false: the request falls through to the stored result instead. An answer that does come from here carries source: "prh" and source_status: "fallback", and no consultation_number field at all, because only VIES issues those.
What a PRH answer contains
| Field | PRH |
|---|---|
| Company name | Yes |
| Company address | Yes |
| Consultation number | No, VIES only |
Data quirks worth knowing
- Open data has no private traders, municipalities or wellbeing services counties, so a missing record is never served as invalid
- The current name is the entry that has not ended, which matters for a company that has traded under several names: an old name is present in the record but is not what a fallback answer returns
- Registration is expressed as an entry in a numbered register rather than as a VAT flag, so the answer depends on reading the right register and the right authority
- Addresses come in more than one form and language, and the postal form is the one a fallback answer formats into a single line
Try it
Validating a Finland VAT number takes the same call whichever source answers it. This one uses FI01120389, a real registered number:
curl "https://api.avatcado.com/v1/validate?vat_number=FI01120389" \
-H "Authorization: Bearer avat_live_your_api_key"import Avatcado from "@avatcado/node";
const avatcado = new Avatcado("avat_live_your_api_key");
const { data, error } = await avatcado.vat.validate({
vatNumber: "FI01120389",
});
if (data?.meta.source === "prh") {
// VIES was unavailable; PRH confirmed the registration.
console.log(data.meta.source_status); // "fallback"
}On an ordinary day that answer comes from VIES, with source_status: "live". Only when VIES cannot answer for Finland does PRH step in, and then meta.source_status reads "fallback" and meta.source reads "prh". The register fallback is included in the Pro and Business plans; the free tier covers 500 validations per month from VIES and the cache. Get an API key or read the API documentation.
Frequently asked questions
Is the PRH open data API a substitute for VIES in Finland?
Not in general, and Avatcado does not treat it as one. The open data interface describes Finnish domestic registrations, while VIES answers the narrower question of whether a number is valid for intra-EU trade. The two agree for the great majority of companies, but they are different statements and only VIES makes the one a tax authority expects to see behind a zero-rated cross-border supply. The register earns its place during an outage, when the alternative is no answer at all. So it is called only after VIES has failed for Finland, and a number it confirms comes back marked as a fallback so your code can tell the two apart.
Why is a Finnish company missing from PRH open data not treated as invalid?
Because the open data set does not contain every VAT registered party in Finland. Private traders, municipalities and wellbeing services counties are outside it, and all three can hold a valid VAT registration. If a missing record were served as invalid, an outage in the Finnish member state would start rejecting real, VAT registered customers, which is a much worse failure than not answering. So the register can only ever confirm a registration, never deny one. A miss falls through to the cached result, or to a 503 if there is nothing stored, and that request is refunded rather than counted against your monthly quota.
Keep reading
Sources
- PRH open data interface for company information Finnish Patent and Registration Office (PRH), accessed September 4, 2026
- Business Information System (YTJ) Finnish Patent and Registration Office and Finnish Tax Administration, accessed September 4, 2026