If you have ever read a public tender notice from a European contracting authority, you will have noticed a five-to-eight digit number followed by a short description — something like 72212000-4 — Programming services of application software. That number is a CPV code, and it is the universal language of European public procurement.
This guide explains exactly what CPV codes are, how the classification system is structured, and how both buyers and suppliers should use them.
What Is a CPV Code?
CPV stands for Common Procurement Vocabulary. It is the official classification system for public contracts in the European Union. Every contract notice published in the Official Journal of the EU (the Supplement, also known as TED — Tenders Electronic Daily) must include at least one CPV code that describes the subject matter of the procurement.
The system was established by Regulation (EC) No 2195/2002 and has been in force since 2006. It replaced dozens of national classification systems with a single, multilingual vocabulary covering all possible goods, services, and works a public authority might purchase.
CPV codes exist in all 24 official EU languages, meaning a Finnish hospital and a Portuguese city council can both publish tenders for medical equipment under the same code — making cross-border search possible for any supplier.
How the CPV System Is Structured
The CPV vocabulary has two components: the Main Vocabulary and the Supplementary Vocabulary.
Main Vocabulary
The Main Vocabulary uses a tree structure with five levels. Each code is an 8-digit number plus a 1-digit check number (the digit after the hyphen), giving a 9-character code in total.
| Level | Digits used | Example | Meaning |
|---|---|---|---|
| Division | First 2 | 72000000-5 | IT services |
| Group | First 3 | 72200000-7 | Software programming and consultancy services |
| Class | First 4 | 72210000-0 | Programming services |
| Category | First 5 | 72212000-4 | Programming services of application software |
| Sub-category | First 8 | 72212110-0 | Point of sale (POS) software development services |
The eight main divisions cover the entire range of public expenditure:
- 03000000 – 09999999: Agricultural, farming, fishing, forestry and related products
- 14000000 – 16999999: Mining, basic metals and related products
- 18000000 – 19999999: Clothing, footwear, luggage articles and accessories
- 22000000 – 23999999: Printed matter and related products
- 24000000 – 25999999: Chemical products
- 30000000 – 44999999: Office and computer machinery, equipment and supplies
- 45000000 – 45999999: Construction work
- 48000000 – 48999999: Software packages and information systems
- 50000000 – 55999999: Repair and maintenance services
- 60000000 – 99999999: Transport, postal, professional, financial and other services
Supplementary Vocabulary
The Supplementary Vocabulary adds optional attributes to Main Vocabulary codes. These codes begin with a letter (e.g. AA01, FA03) and describe additional characteristics like size, material, or intended use. Their use is optional and far less common than main codes.
The Check Digit
The single digit after the hyphen is a mathematical check digit calculated from the eight preceding digits. It has no procurement meaning of its own — it simply allows computer systems to detect typos or data entry errors. You can ignore it for search purposes; all that matters for finding the right contract category is the 8-digit code itself.
How to Find the Right CPV Code
Choosing the correct CPV code matters enormously. Buyers who misclassify a contract may receive fewer bids; suppliers who search by the wrong code miss relevant opportunities. Here is a practical approach:
1. Start with the product or service name
Use a CPV search tool (like this one at cpvcodes.eu) to search by keyword. Try synonyms: "cleaning" and "janitorial" may return different results. Look at the full description, not just the top-level label.
2. Navigate the hierarchy
If keyword search returns too many results, browse the division tree. Find the relevant division (e.g. 90000000 for sewage, refuse, cleaning services), then drill down to the most specific category that fits.
3. Use the most specific code that fits
Do not use a broad code (e.g. 72000000 — IT services) when a precise one exists (e.g. 72212000 — Application software programming). Specificity helps both buyers and suppliers. However, do not force an over-specific code that does not accurately describe the subject matter.
4. Include additional CPV codes for mixed contracts
A contract covering both software development and IT support may have a main CPV code of 72212000 and an additional CPV code of 72611000 (Technical computer support services). Most eProcurement platforms accept multiple codes per notice.
Why CPV Codes Matter for Suppliers
Automatic tender alerts
Most tender monitoring platforms — including TED itself — let you subscribe to email or RSS alerts by CPV code. Once you know which codes cover your products or services, you can receive every relevant EU-wide opportunity automatically without manual searching.
Market intelligence
Historical contract award notices are searchable by CPV code. By analysing past awards in your category, you can understand market size, typical contract values, incumbent suppliers, and renewal cycles — all valuable intelligence when planning a bid.
Pre-market engagement
When responding to Prior Information Notices (PINs) or market consultations, quoting the correct CPV code signals to the buyer that you understand the procurement correctly.
Why CPV Codes Matter for Contracting Authorities
Legal obligation
EU procurement directives (2014/24/EU for public sector, 2014/25/EU for utilities) require CPV codes on all above-threshold notices. Missing or incorrect codes can result in challenges to the procurement process.
Accurate market outreach
The right CPV code ensures your notice reaches suppliers who have set up alerts for that category. A miscoded IT contract buried in the construction division will receive fewer — and less relevant — bids.
Data and spend analysis
Finance and audit teams use CPV-coded contract data for spend analytics, detecting unusual patterns or concentrations in supplier relationships, and benchmarking against peer institutions.
CPV Codes and the EU Thresholds
Whether a contract must be advertised across the EU depends on its estimated value and its CPV classification. The European Commission updates thresholds roughly every two years. For 2024-2025, the main thresholds are:
- Works contracts: EUR 5,538,000
- Supply and service contracts (central government): EUR 143,000
- Supply and service contracts (sub-central authorities): EUR 221,000
- Utilities (supply, services, works): EUR 443,000 / EUR 5,538,000
Contracts below these thresholds may still require national publication, but CPV codes remain good practice at all values.
Common Mistakes with CPV Codes
- Using a division-level code for a specific purchase. Buying office chairs under 39000000 (Furniture and related items) instead of 39113100 (Armchairs) reduces search relevance.
- Copying codes from a previous contract without review. A framework renewed after several years may cover services that now have more accurate codes.
- Confusing works, supplies, and services. A maintenance service and the supply of spare parts have very different CPV roots; mixing them distorts spend reporting.
- Ignoring the supplementary vocabulary entirely. For large framework agreements, supplementary codes can significantly improve the precision of what suppliers actually see.
How This Site Can Help
CPVcodes.eu provides a fast, multilingual search across the entire CPV tree. You can:
- Search by keyword in any of the 24 EU official languages
- Browse the full hierarchy from division to sub-category
- View the official description and code for any entry
- Find related codes at adjacent levels of the tree
Whether you are a procurement officer classifying a new contract or a supplier identifying which codes to monitor, accurate CPV classification is the foundation of effective public procurement.
Summary
CPV codes are the standardised classification language of European public procurement. They make cross-border tendering possible, power automated supplier alert systems, and underpin spend analytics for public institutions. Understanding how the eight-digit hierarchy works — and how to find the most precise code for any given subject matter — is a core skill for anyone working in or with the public sector.