Wie aanbestedingen zoekt, ziet ze in bijna elke aankondiging staan: codes als 90911200-8 of 72000000-5. Dat zijn CPV-codes. Aanbestedende diensten beschrijven daarmee het voorwerp van hun opdracht. TenderNed en TED gebruiken ze om opdrachten te ordenen en doorzoekbaar te maken.
Voor jou als ondernemer bepalen CPV-codes voor een groot deel welke opdrachten je te zien krijgt. Kies je de verkeerde codes, dan mis je kansen of verdrink je in ruis. In dit artikel lees je hoe een CPV-code is opgebouwd, welke spelregels gelden en hoe je codes slim inzet. Je leest ook waar het in de praktijk vaak misgaat.
Wat is een CPV-code? De Europese standaard voor het voorwerp van een opdracht
CPV staat voor Common Procurement Vocabulary. In het Nederlands heet dit de gemeenschappelijke woordenlijst overheidsopdrachten. Het is een Europees classificatiesysteem dat aan elk type werk, levering of dienst een vaste cijfercode koppelt. De lijst bevat duizenden omschrijvingen, van bouwwerkzaamheden tot ballroomdanslesdiensten.
De codes zijn in alle EU-talen gelijk. Daardoor herken je een opdracht ook als de aankondiging in een andere taal staat. Zo kun je als Nederlandse leverancier via TED ook Duitse of Belgische aanbestedingen volgen.
In het tenderproces staat de CPV-code helemaal aan het begin. De aanbestedende dienst kiest bij de voorbereiding een of meer codes en neemt die op in de aankondiging. Voor jou is die code vaak het eerste filter. Komt een opdracht in je zoekresultaten of melding terecht, of niet?
Wettelijk kader
De CPV is ingesteld bij Verordening (EG) nr. 2195/2002. De huidige versie, CPV 2008, volgt uit Verordening (EG) nr. 213/2008. Volgens TED is die versie sinds 17 september 2008 in gebruik. Het gebruik van de CPV in Europese aankondigingen is sinds 1 februari 2006 verplicht. Een Europese verordening geldt rechtstreeks in Nederland, naast de Aanbestedingswet 2012.
Voor wie zijn CPV-codes belangrijk?
CPV-codes raken iedereen die met overheidsopdrachten werkt. Wel gebruikt ieder ze op een andere manier.
- Inschrijvers en mkb-ondernemers gebruiken codes om nieuwe opdrachten te vinden en meldingen in te stellen.
- Tendermanagers en bidteams bouwen er een pijplijn mee op. Ze zien welke opdrachtgevers regelmatig vergelijkbaar werk uitbesteden.
- Leveranciers en onderaannemers volgen codes van grotere opdrachten waarin zij een rol kunnen spelen, bijvoorbeeld als combinatiepartner.
- Aanbestedende diensten bepalen met hun codekeuze voor een deel welke ondernemers hun opdracht zien.
Opbouw: van brede afdeling naar specifieke precisering
De basiswoordenlijst heeft een boomstructuur. Elke code bestaat uit acht cijfers, een streepje en een controlecijfer. Hoe meer cijfers aan het eind een nul zijn, hoe algemener de code. Het voorbeeld hieronder komt uit de uitleg van PIANOo over CPV-codes.
| Niveau | Bepaald door | Voorbeeld |
|---|---|---|
| Afdeling | Eerste 2 cijfers | 34000000-7 Vervoersmaterieel en bijbehorende producten |
| Groep | Eerste 3 cijfers | 34100000-8 Motorvoertuigen |
| Klasse | Eerste 4 cijfers | 34110000-1 Personenwagens |
| Categorie | Eerste 5 cijfers | 34114000-9 Speciale voertuigen |
| Precisering | Cijfer 6 tot en met 8 | 34114200-1 Politieauto’s en 34114210-4 Arrestantenwagens |
Meer nullen betekent een bredere code
Een code met veel nullen beschrijft een brede groep. 34000000-7 omvat al het vervoersmaterieel. 34114210-4 gaat alleen over arrestantenwagens. Vindt een aanbestedende dienst geen code die precies past? Dan kiest hij volgens de toelichting van TED het niveau dat de aankoop het best omschrijft. Dat is dan een algemenere code met meer nullen.
Voor jou betekent dit: een opdracht kan op elk niveau van de boom zijn ingedeeld. Zoek je alleen op het meest specifieke niveau, dan mis je opdrachten die breder zijn gecodeerd.
Het controlecijfer zegt niets over de inhoud
Het cijfer na het streepje dient alleen om de voorgaande cijfers te controleren. Het zegt niets over de opdracht zelf. Bij het kiezen en vergelijken van codes draait het dus om de eerste acht cijfers.
De aanvullende woordenlijst voegt kenmerken toe
Naast de basiswoordenlijst bestaat een aanvullende woordenlijst. Daarmee voegt een aanbestedende dienst extra kenmerken toe, zoals materiaal, vorm, werkwijze of gebruik. Deze codes zijn alfanumeriek: ze beginnen met letters en eindigen met een controlecijfer. Voor het vinden van opdrachten is vooral de basiswoordenlijst van belang.
De eerste twee cijfers tonen werk, levering of dienst
De afdeling laat direct zien om welk type opdracht het gaat. PIANOo hanteert deze indeling:
- Leveringen: codes die beginnen met 0 tot en met 44, plus afdeling 48 (software en informatiesystemen).
- Werken: codes die beginnen met 45.
- Diensten: codes die beginnen met 50 tot en met 98.
Codes die met 46, 47 of 49 beginnen, bestaan niet. Het type opdracht is meer dan een administratief detail. Het bepaalt onder meer welk Europees drempelbedrag geldt en welke regels van toepassing zijn.
Het onderscheid is niet altijd logisch. Volgens PIANOo gelden bijvoorbeeld schilderwerk, behangen, maaiwerk, het plaatsen van een deur en onderhoud van daken als werk. De vuistregel: onderhoud van een bestaand bouwwerk is een werk zodra het verder gaat dan het in stand houden van functies. Denk aan herstellen of vervangen.
CPV gaat voor NACE
Richtlijn 2014/24/EU koppelt in Bijlage II bouwactiviteiten uit de NACE-indeling aan CPV-codes. Is er een verschil tussen beide, dan geldt volgens PIANOo de CPV-code. Je SBI-code bij de KvK is op NACE gebaseerd. Die is dus geen betrouwbare basis om je CPV-codes uit af te leiden.
Spelregels: zo kiezen aanbestedende diensten hun codes
Begrijp je hoe opdrachtgevers codes kiezen, dan zoek je gerichter. Dit zijn de belangrijkste spelregels uit de toelichtingen van PIANOo en TED.
Hoofdcode, aanvullende codes en percelen
- Zo specifiek mogelijk. De dienst kiest de code die het best bij de opdracht past.
- Het hoofdonderdeel bepaalt de hoofdcode. Bij een samengestelde opdracht krijgt het hoofdonderdeel de hoofdcode. Andere onderdelen kunnen als aanvullende code worden opgenomen.
- Eén hoofdcode per aankondiging. Een opdracht kan meerdere codes hebben, maar de titel van de aankondiging krijgt er één.
- Controle bij publicatie. TED weigert een publicatie als de hoofdcode niet past bij het type opdracht. TenderNed geeft een foutmelding bij een onjuiste combinatie.
- Percelen kunnen eigen codes hebben. In de Europese aankondigingsformulieren (eForms) kan elk perceel een eigen classificatie krijgen.
Sociale en andere specifieke diensten hebben eigen codes
Voor sociale en andere specifieke diensten geldt een lichter regime. Denk aan onderwijs, zorg en maatschappelijke dienstverlening. Welke diensten daaronder vallen, is vastgelegd aan de hand van CPV-codes. PIANOo publiceert daarvan een apart overzicht.
Nationale en onderhandse opdrachten
Bij nationale aanbestedingen is het beeld minder strak. De CPV-verordening richt zich op Europese aankondigingen. Toch bevatten ook nationale aankondigingen op TenderNed in de regel CPV-codes. Onderhandse procedures worden vaak helemaal niet openbaar aangekondigd. Die vind je dus ook niet via een code.
Praktijkvoorbeelden: waar zoeken op één code tekortschiet
Schoonmaakbedrijf: één code is te smal
Een schoonmaakbedrijf stelt een melding in op 90911200-8 (reinigen van gebouwen). Daarmee mist het opdrachten die als 90919200-4 (reinigen van kantoren) zijn gecodeerd. Ook een integrale facilitaire opdracht met schoonmaak als perceel kan onder een andere hoofdcode vallen.
Beter werkt het om ook een hoger niveau te volgen, zoals de klasse 90910000-9 (reinigingsdiensten). Filter daarbinnen op zoekwoorden en percelen. Controleer per platform of een zoekopdracht op een hoger niveau de onderliggende codes automatisch meeneemt.
Dat opdrachtgevers hun eigen afweging maken, blijkt uit een gemeentelijke schoonmaakaanbesteding. Een ondernemer vroeg in de nota van inlichtingen waarom de codes niet aansloten op het overzicht van sociale en andere specifieke diensten. De gemeente hield de codes ongewijzigd. Volgens de gemeente bereikte zij met codes en omschrijving de markt voldoende.
IT-dienstverlener: actief in twee delen van de boom
Een IT-bedrijf dat software ontwikkelt én licenties levert, valt in twee delen van de boom. Ontwikkeling en ondersteuning horen bij de diensten, onder 72000000-5 (IT-diensten). Standaardsoftware en informatiesystemen vallen onder 48000000-8, een leveringsafdeling.
Volgt het bedrijf alleen afdeling 72? Dan mist het aanbestedingen waarin de software zelf het hoofdonderdeel is. Dat geldt ook als implementatie en beheer deel van de opdracht zijn.
Schildersbedrijf: een werk, geen dienst
Schilderwerk voelt als een dienst, maar valt onder de werken: 45442100-8 (schilderwerk) in afdeling 45. Een schilder die alleen dienstencodes volgt, ziet daardoor een deel van de markt niet. Omgekeerd kan meerjarig vastgoedonderhoud ook onder onderhoudsdiensten in afdeling 50 vallen. Volg dus beide routes en lees steeds de omschrijving.
Stappenplan: zo bouw je een CPV-profiel dat werkt
Stap 1: Beschrijf je aanbod in gewone woorden
Begin niet bij de codelijst, maar bij je eigen werk. Welke diensten of producten lever je? In welke regio werk je? En wat doe je juist niet? In het artikel over passende aanbestedingen vinden lees je hoe je dat scherp krijgt.
Stap 2: Zoek de bijbehorende codes op
Zoek per activiteit naar codes in de officiële lijst. De CPV-code-zoekmachine van Europa decentraal werkt met Nederlandse zoektermen. Via de CPV-pagina van TED download je de volledige lijst. Probeer meerdere synoniemen. “Groenonderhoud” en “onderhoud van parken” kunnen tot verschillende codes leiden.
Stap 3: Kies per activiteit het juiste niveau
Gebruik specifieke codes voor je kernactiviteiten. Kies een hoger niveau voor aangrenzend werk. Te specifiek levert gemiste kansen op. Te breed levert vooral ruis op.
Stap 4: Leer van eerdere opdrachten
Bekijk welke codes opdrachtgevers de afgelopen jaren gebruikten voor werk dat jij uitvoert. Daar zitten vaak codes tussen die je zelf niet had gekozen. TenderNed publiceert ook een overzicht van de meestgebruikte CPV-codes.
Stap 5: Combineer, controleer en evalueer
Combineer codes met zoekwoorden. Lees bij elke treffer de omschrijving en de percelen. Een match op code zegt nog niets over de eisen. Die zet je op een rij met de uitleg over eisen in tenderdocumenten. Evalueer je profiel periodiek: welke treffers waren relevant en welke niet?
Tip van de expert
Werk met drie lagen. Laag 1 zijn je kerncodes, zo specifiek mogelijk. Laag 2 zijn aangrenzende codes een niveau hoger. Laag 3 zijn brede afdelingen die je alleen samen met zoekwoorden gebruikt. Noteer per kwartaal welke laag de relevante opdrachten opleverde. Verschuif codes op basis daarvan.
Gebruik CPV-codes ook voor marktinzicht
CPV-codes helpen niet alleen bij het vinden van lopende aanbestedingen. Ze geven ook zicht op je markt. Bekijk aankondigingen en gunningen onder je codes over meerdere jaren. Dan zie je welke opdrachtgevers regelmatig inkopen, hoe groot opdrachten zijn en hoe lang contracten lopen.
- Plan vooruit. Codes van lopende contracten helpen je om heraanbestedingen te herkennen voordat ze worden gepubliceerd.
- Maak een betere go/no-go. Je ziet sneller of een opdracht past bij je omvang en ervaring.
- Vind samenwerkingspartners. Gunningen laten zien welke partijen actief zijn in aangrenzende codes.
Veelgemaakte fouten bij zoeken op CPV-codes
- Zoeken op één zeer specifieke code. Opdrachtgevers coderen dezelfde soort opdracht verschillend.
- Zoeken op een hele afdeling zonder filter. Je krijgt zoveel resultaten dat relevante opdrachten ondersneeuwen.
- Aannemen dat de code de hele opdracht beschrijft. De hoofdcode zegt iets over het hoofdonderdeel, niet over alles wat gevraagd wordt.
- Percelen overslaan. Een deel van een grote opdracht kan precies bij je passen, ook als de hoofdcode dat niet doet.
- Het type opdracht verkeerd inschatten. Wie schilderwerk als dienst ziet, zoekt in de verkeerde afdeling.
- Codes afleiden uit je SBI-code. SBI en CPV zijn verschillende systemen. In de aanbesteding telt de CPV-code.
- Een match op code zien als geschiktheid. Of je mag meedoen, hangt af van de eisen in de aanbestedingsstukken.
- Je profiel nooit bijwerken. Je aanbod verandert, en daarmee ook de codes die bij je passen.
Kijk verder dan de code
CPV-codes zijn een nuttig startpunt, maar ze blijven een keuze van de opdrachtgever. TenderSignal vergelijkt nieuwe aanbestedingen daarom met je bedrijfsprofiel en de inhoud van de opdracht. Zo kijkt TenderSignal verder dan een vaste lijst codes of exacte zoekwoorden. Percelen worden afzonderlijk gematcht. Je ziet dus ook wanneer een deel van een grote opdracht bij je past. Lees meer over de software van TenderSignal.
Samenvatting
Een CPV-code is de Europese standaardcode waarmee een aanbestedende dienst het voorwerp van een opdracht beschrijft. De acht cijfers lopen van brede afdeling naar specifieke precisering. Het negende cijfer is een controlecijfer. De eerste twee cijfers tonen of het om een werk, levering of dienst gaat. Gebruik codes op meerdere niveaus en combineer ze met zoekwoorden. Controleer bij elke opdracht de inhoud, de percelen en de eisen.
Lees ook
- Wat is een aanbesteding? Uitleg, regels en drempels 2026
- Onrechtmatige aanbestedingen bij omgevingsdiensten
- Passende aanbestedingen vinden
Veelgestelde vragen over CPV-codes
Wat betekent CPV?
CPV staat voor Common Procurement Vocabulary, de gemeenschappelijke woordenlijst overheidsopdrachten. Het is een Europees classificatiesysteem. Aanbestedende diensten beschrijven daarmee het voorwerp van een opdracht met een vaste cijfercode, ongeacht de taal van de aankondiging.
Uit hoeveel cijfers bestaat een CPV-code?
Een CPV-code bestaat uit acht cijfers en een controlecijfer, bijvoorbeeld 34114210-4. De eerste twee cijfers geven de afdeling aan. Daarna volgen groep, klasse, categorie en preciseringen. Het controlecijfer na het streepje zegt niets over de inhoud van de opdracht.
Hoe vind ik de juiste CPV-codes voor mijn bedrijf?
Beschrijf eerst je aanbod in gewone woorden. Zoek daarna per activiteit naar codes, bijvoorbeeld via de CPV-zoekmachine van Europa decentraal of de officiële lijst op TED. Kijk ten slotte welke codes opdrachtgevers gebruikten bij eerdere opdrachten die bij je passen.
Hoeveel CPV-codes moet ik volgen?
Daar is geen vast aantal voor. Het hangt af van de breedte van je aanbod. Een werkbare aanpak is een kleine set specifieke kerncodes, aangevuld met bredere codes die je combineert met zoekwoorden. Evalueer periodiek welke codes relevante opdrachten opleveren.
Zijn CPV-codes ook verplicht bij nationale aanbestedingen?
De CPV-verordening richt zich op Europese aankondigingen. Ook nationale aankondigingen op TenderNed bevatten in de regel CPV-codes. Onderhandse procedures worden vaak niet openbaar gepubliceerd. Die vind je dus niet via een CPV-code.
Kan een aanbesteding meerdere CPV-codes hebben?
Ja. Een aankondiging heeft één hoofdcode voor het hoofdonderdeel en kan daarnaast aanvullende codes bevatten. Bij opdrachten met percelen kan elk perceel bovendien een eigen classificatie hebben. Kijk daarom niet alleen naar de hoofdcode.
Wat kan ik doen als een opdracht volgens mij een onjuiste CPV-code heeft?
Je kunt een vraag stellen via de nota van inlichtingen. De aanbestedende dienst beslist zelf of de codes worden aangepast. Wat er precies gevraagd wordt, lees je in de aanbestedingsstukken, niet in de code.
Wat is het verschil tussen CPV-codes en SBI-codes?
Een SBI-code beschrijft de activiteiten van je bedrijf en wordt gebruikt door de KvK en het CBS. Een CPV-code beschrijft het voorwerp van een overheidsopdracht. De systemen sluiten niet één-op-één op elkaar aan. In een aanbesteding is de CPV-code leidend.

