Croatia VAT Number Format (HR12345678901)

Porez na dodanu vrijednost (PDV) number structure, regex & verified examples

Everything you need to know about Porez na dodanu vrijednost (PDV) numbers in Croatia — they follow the pattern HR + 11 digits (e.g. HR12345678901), and can be verified against VIES. For the rates themselves, see Croatia VAT rates and their history. Building a check into your app? See the Croatia VAT API.

The standard PDV rate has been 25% since 2012, up from 23%.

EU Member StatePDV — Porez na dodanu vrijednostEUR

VAT Number Format

Structure

HR + 11 digits

Example format

HR12345678901

Regex

^HR\d{11}$

VAT numbers are not case-sensitive – lowercase input is automatically normalised. See how this format compares across all 27 EU countries.

Company and Tax Identifiers in Croatia

What the registrar, the register and each identifier are called, in every official language and in English. These are names, not numbers.

Company registrar
  • Croatian: trgovački sud
  • English: commercial court
Company register
  • Croatian: sudski registar
  • English: court register
Register number
  • Croatian: MBS
  • English: registration number of the entity
Tax ID
  • Croatian: osobni identifikacijski broj
  • English: personal identification number
VAT ID

No official name confirmed

Each name is checked against the registrar’s or tax authority’s own pages or legal text. The same names ship in eu-vat-rates-data.json and in GET /v1/rates.

What we return for Croatia

Croatian VAT numbers are checked against VIES. A valid result also returns company name and address and national tax number (osobni identifikacijski broj).

  • VIES validation (valid / not valid)
  • Company name & address
  • National registry ID
  • National tax number
  • Founded date
  • Legal form
  • Industry
  • Works if VIES is down

See the full coverage table for all 27 EU member states + Northern Ireland →

Check a Croatia VAT Number

Enter a PDV number starting with HR to verify it against VIES.

Format: HR + 11 digits

Example:

Validate a Croatia HR VAT number via API

Get Croatia VAT rates via API — free, no key

No API key required
Request
curl "https://api.vatnode.dev/v1/rates/HR"
Response200 OK
{
  "countryCode": "HR",
  "countryName": "Croatia",
  "isEU": true,
  "vatName": "Porez na dodanu vrijednost",
  "vatAbbr": "PDV",
  "currency": "EUR",
  "standardRate": 25,
  "reducedRates": [
    13,
    5
  ],
  "superReducedRate": null,
  "parkingRate": null,
  "vatNumberFormat": "HR + 11 digits",
  "vatNumberPattern": "^HR\\d{11}$",
  "identifiers": {
    "registryAuthorityName": {
      "hr": "trgovački sud",
      "en": "commercial court"
    },
    "registryName": {
      "hr": "sudski registar",
      "en": "court register"
    },
    "registryCodeName": {
      "hr": "MBS",
      "en": "registration number of the entity"
    },
    "taxIdName": {
      "hr": "osobni identifikacijski broj",
      "en": "personal identification number"
    },
    "vatIdName": null
  },
  "updatedAt": "2026-10-03"
}

View full rates API reference →

Get Croatia VAT rates via package — offline, no HTTP

eu-vat-rates-data
Request
# npm install eu-vat-rates-data
import { getRate } from 'eu-vat-rates-data'

const rate = getRate('HR')
console.log(rate.standard) // HR standard VAT rate
getRate() result200 OK
{
  "country": "Croatia",
  "currency": "EUR",
  "eu_member": true,
  "vat_name": "Porez na dodanu vrijednost",
  "vat_abbr": "PDV",
  "standard": 25,
  "reduced": [
    5,
    13
  ],
  "super_reduced": null,
  "parking": null,
  "format": "HR + 11 digits",
  "pattern": "^HR\\d{11}$",
  "identifiers": {
    "registry_authority_name": {
      "hr": "trgovački sud",
      "en": "commercial court"
    },
    "registry_name": {
      "hr": "sudski registar",
      "en": "court register"
    },
    "registry_code_name": {
      "hr": "MBS",
      "en": "registration number of the entity"
    },
    "tax_id_name": {
      "hr": "osobni identifikacijski broj",
      "en": "personal identification number"
    },
    "vat_id_name": null
  }
}

View package on GitHub →

Validate Croatia HR VAT numbers

Requires API key
Request
curl "https://api.vatnode.dev/v1/vat/HR81793146560" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response200 OK
{
  "valid": true,
  "vatId": "HR81793146560",
  "countryCode": "HR",
  "companyName": "Hrvatski Telekom d.d.",
  "companyAddress": null,
  "companyRegistrationDate": null,
  "companyForm": null,
  "industryDescription": null,
  "registryCode": null,
  "registryCodeName": null,
  "taxId": "81793146560",
  "taxIdName": "osobni identifikacijski broj",
  "commercialName": null,
  "companyStatus": null,
  "secondaryActivities": [],
  "companyAgeYears": null,
  "registryPrivacy": false,
  "verifiedAt": "2026-04-25T12:00:00.000Z",
  "checkId": "019dc41e-d64d-7255-8ed7-cf5443103cd8",
  "countryName": "Croatia",
  "countryVat": {
    "vatName": "Porez na dodanu vrijednost",
    "vatAbbr": "PDV",
    "currency": "EUR",
    "standardRate": 25,
    "reducedRates": [
      13,
      5
    ],
    "superReducedRate": null,
    "parkingRate": null,
    "vatNumberFormat": "HR + 11 digits",
    "vatNumberPattern": "^HR\\d{11}$",
    "identifiers": {
      "registryAuthorityName": {
        "hr": "trgovački sud",
        "en": "commercial court"
      },
      "registryName": {
        "hr": "sudski registar",
        "en": "court register"
      },
      "registryCodeName": {
        "hr": "MBS",
        "en": "registration number of the entity"
      },
      "taxIdName": {
        "hr": "osobni identifikacijski broj",
        "en": "personal identification number"
      },
      "vatIdName": null
    },
    "countryVatUpdatedAt": "2026-10-03"
  },
  "consultationNumber": null,
  "specialTerritory": null,
  "source": "VIES"
}

View full API response schema →

Frequently Asked Questions

What is the VAT number format in Croatia?▾

VAT numbers in Croatia follow the format: HR + 11 digits. Example: HR12345678901. VAT numbers are not case-sensitive – lowercase input is automatically normalised.

What is the VAT number regex pattern in Croatia?▾

Use this regular expression to validate VAT numbers in Croatia PDV number format locally:

^HR\d{11}$

Test against the uppercase number. Format validation catches typos locally — always follow with a VIES check to confirm the number is active.

How do I validate a VAT number in Croatia programmatically?▾

Send a GET request to https://api.vatnode.dev/v1/vat/{vatId} with your Authorization: Bearer header. The API checks the number against VIES and returns a JSON response with a valid field, company name, address, and current PDV rates. Free plan available — 100 requests/month, no credit card required.

What does PDV stand for in Croatia?▾

PDV stands for Porez na dodanu vrijednost — the Croatian name for Value Added Tax (VAT). It appears on Croatian invoices and tax documents.

Validate Croatia VAT numbers in your app

Use the vatnode API to automate PDV validation in your invoicing or checkout flow. Free plan available, no credit card required.