ProcuraVista
🌐 EN

CPV codes: choosing the right ones, and their limits

Which CPV codes should my company follow, and can I rely on them to find every tender in my field?

Checked
11 Oct 2026
Next review
11 Oct 2027
Sources
5
Scope
EU rules

Procedures & timing ¡ This guide was generated with the help of an AI system. Its legal references were checked against the official EU texts listed under Sources on . Next review due by , or sooner if the law changes. EU rules only. Not legal advice.

Short answer. The Common Procurement Vocabulary (CPV) is the EU’s single list of codes for what public buyers purchase. The Directive requires it wherever procurement refers to a nomenclature (Article 23), and every contract notice must give CPV codes, lot by lot (Annex V part C, point 5). For a bidder, the codes are the most reliable search filter, because they’re the same in every language. But they’re a blunt tool. The list was last revised in 2008: no code’s wording mentions “cloud” or “charging”, and drones appear only as “unmanned aerial vehicles”. That doesn’t stop buyers buying these things. It means they code them under broader headings, and you can’t find them by their modern name. Buyers choose codes themselves, and not always the one you would. Follow a handful of codes at the level of a class or category, not single leaf codes, and back them up with keyword searches.

EU law ¡ How a CPV code is built

The main vocabulary is a tree of 8-digit codes with a ninth check digit (Regulation 2195/2002, Annex I):

The levels of a CPV code, with the cleaning branch as an example
LevelDigits that countExample
DivisionFirst 290000000-7 Sewage, refuse, cleaning and environmental services
GroupFirst 390900000-6 Cleaning and sanitation services
ClassFirst 490910000-9 Cleaning services
CategoryFirst 590911000-6 Accommodation, building and window cleaning services
Further precisionLast 390911200-8 Building-cleaning services

The digit after the hyphen only checks the others and adds no meaning. TED’s expert search takes the 8 digits without it: 90910000 works, 90910000-9 is rejected. There are 45 divisions. We counted 9,454 codes in the main vocabulary of the consolidated text.

The supplementary vocabulary. Letter-and-number codes can add detail about the material or use of what’s being bought, such as AA02-4 “Aluminium”. They’re optional, and we don’t use them in the searches on this page.

How old the list is. The current list comes from Regulation 213/2008. Since then, the list itself has been changed once: Regulation 2022/943 corrected the Croatian and Estonian wording of one code. (Regulation 596/2009 changed only the procedure for revising it.) The English list hasn’t changed since 2008.

  • In the notice. A contract notice must give the CPV codes, and for a procurement in lots, the codes of each lot (Annex V part C, point 5). In eForms, the notice has a main classification code (BT-262), “the code from the classification that best characterises the purchase”, and may add additional classification codes (BT-263).
  • For the light regime. The social and other specific services that follow the lighter rules of Articles 74 to 76, with their higher €750,000 threshold, are defined in Annex XIV by CPV codes, for example education and training services from 80000000-4 to 80660000-8. So the code can tell you which rules apply (see EU procurement procedures).
  • A parent code finds its children. We tested it: in TED’s expert search, classification-cpv = 90910000 returned exactly the same notices as classification-cpv = 9091*. You don’t have to list every code under a class.
  • Additional codes count too. classification-cpv searches the main code and the additional codes. For cleaning (9091), contract notices published from January to September 2026 numbered 7,873 by classification-cpv, and 6,637 by the main code of the procedure alone (main-classification-proc), when we ran both through the TED Search API on 11 October 2026. A notice where cleaning is only part of the contract may appear only under an additional code.
  • Codes are the same in every language. Unlike keywords, a code means the same thing in a Finnish notice and a Portuguese one.

Practice ¡ Choosing your codes

A made-up example. A facilities company offers office cleaning, window cleaning and minor maintenance of building installations.

  1. Start from what you sell, then find where buyers put it. Its core is 90910000-9 Cleaning services. That class already includes 90911300-9 Window-cleaning services and 90919200-4 Office cleaning services.
  2. Add neighbouring branches buyers use for the same work. Bundled contracts are often coded as 79993000-1 Building and facilities management services. The maintenance side sits under 50700000-2 Repair and maintenance services of building installations. And 98341130-5 Janitorial services is in another division altogether.
  3. Check by looking at real notices. Run the search, open a dozen contract award notices in your field, and note the codes the buyers actually used. Add any that keep coming up.
  4. Stay at class or category level. A search on one 8-digit leaf code misses every notice coded one level up, such as a buyer who chose 90910000-9 rather than 90919200-4.
  5. Keep supplies separate. Cleaning products are 39830000-9, a supply code. Leave them out unless you sell them, or they’ll fill your results.

The search for this company:

classification-cpv IN (90910000 79993000
  50700000 98341130)

Our analysis ¡ Where the list runs out

Because the list hasn’t been revised since 2008, some newer markets have no code of their own. To be precise about what that means: we searched the English wording of all 9,454 codes in the main vocabulary of the consolidated Regulation (45 divisions) for each word below. A zero means no code’s wording contains the word. It doesn’t mean the purchase can’t be coded, only that it has to go under a broader or neighbouring code.

Searching the CPV wording for newer subjects
Word searchedCodes whose wording contains itNearest codes that do exist
cloud072000000-5 IT services, 72300000-8 Data services, 72317000-0 Data storage services, 72416000-9 Application service providers
data centre072300000-8 Data services, 48800000-6 Information systems and servers
drone0The code exists under another name: 35613000-4 Unmanned aerial vehicles
charging034144900-7 Electric vehicles covers the vehicles, not charging points

So search the wording with synonyms before you decide a code is missing. Where it really is missing, buyers choose the nearest code they can find, and they don’t all choose the same one. In our search test, contract notices with “cloud” in the title from January to September 2026 included cloud telephony coded under telecommunications (64), not IT (see finding EU tenders on TED). In these markets, a keyword search in the title is not optional.

Practice ¡ Common mistakes

  • Following one code. One leaf code catches a fraction of the market.
  • Trusting the code alone. Buyers code by their main need. A cleaning contract inside a facilities management tender is coded as facilities management.
  • Ignoring the lots. Codes are given per lot. A works notice can contain a services lot that fits you.
  • Reading the code as the scope. The code is a label for searching and statistics. What you have to deliver is in the description and the documents (see technical specifications).
  • Forgetting it can change the rules. Where the main code is in Annex XIV, the light regime may apply.

What this page doesn’t cover

National classification systems. The correspondence tables between the CPV and other statistical classifications. Utilities, concessions and defence, which use the same vocabulary under their own Directives.

Sources checked for this page

This page is re-checked when any of the following happens: a revision of the CPV (Regulation (EC) No 2195/2002) or of Annex XIV to Directive 2014/24/EU; a change to the eForms fields for classification (BT-26, BT-262, BT-263). Spotted an error? See how corrections work.