Naast de publieke passport-URL en de JWS-badge kun je je PROFOYO Compliance Passport downloaden als W3C Verifiable Credential 2.0. Dat is een gestandaardiseerd, cryptografisch ondertekend JSON-LD document dat elke opdrachtgever, wallet of ATS zelfstandig kan verifiëren — zonder afhankelijk te zijn van onze servers of API.
De publieke passport-URL is ideaal voor snelle menselijke verificatie. Een Verifiable Credential is bedoeld voor:
• **machine-to-machine verificatie** — ATS'en, VMS'en, procurement-systemen die automatisch je status willen valideren;
• **wallet-import** — je EU Digital Identity Wallet, of andere VC-compatibele wallets (Talao, Trinsic, Microsoft Entra Verified ID);
• **offline bewijs** — de credential blijft zelfstandig verifieerbaar zolang de handtekening klopt en de credential niet is ingetrokken;
• **selectieve openbaarmaking** — je kiest zelf welke velden je deelt.
De VC is bewust minimaal: alleen wat ook op de publieke passport zichtbaar zou zijn (naam, score, level, KvK-status, stage). Geen BSN, geen adres, geen contract-details.
Hoe download ik mijn Verifiable Credential?
Er zijn drie ingangen:
1. **Verify-pagina** — op `/verify/{token}` staat een 'Download VC' knop die het JSON-LD-document én de compact-JWT versie ophaalt.
2. **API** — POST naar `/functions/v1/passport-vc` met `{ action: 'issue', token }`; je krijgt zowel het JSON-LD credential als een compact JWT.
3. **MCP-tool** (binnenkort) — agent-integraties kunnen de credential rechtstreeks als tool-output ontvangen.
De credential is 30 dagen geldig; daarna genereer je een nieuwe. Intrekking van de onderliggende passport werkt onmiddellijk — verificatie via onze `verify`-endpoint retourneert dan `revoked` ongeacht of het JWT nog niet is verlopen.
Hoe verifieert een derde partij mijn VC?
Twee opties:
• **Cryptografische verificatie zonder onze API** — de JWT is een standaard compact JWS (HS256, kid `profoyo-passport-vc-v1`) waarmee de ontvanger de handtekening kan controleren tegen onze gepubliceerde signing key (rotatie via `passport_signing_keys`).
• **Live verificatie via onze endpoint** — POST `{ action: 'verify', jwt }` naar `/functions/v1/passport-vc`. Wij controleren de handtekening én of de onderliggende passport nog actief is. Het antwoord is `{ valid: true|false, reason?, credential? }`.
Voor eIDAS-2-wallets: onze `issuer` is `did:web:profoyo.com`. Op termijn publiceren we een DID-document en een status-list voor volledige interop met de EU Digital Identity Wallet.
Hoe past dit in de eIDAS-2 stack?
De VC-export dekt de 'attestatie'-laag. Voor ondertekening onder eIDAS-2 blijft de QES-rail (`/kennis/eidas-qes`) de plek waar we een gekwalificeerde handtekening plaatsen. Samen leveren ze:
• **QES** = ondertekende contract-akte (bewijs van wilsuiting).
• **VC** = ondertekende compliance-status (bewijs van geschiktheid als zzp'er).
De EU Digital Identity Wallet die eind 2026 breed uitrolt vereist beide primitieven; door ze nu al beschikbaar te maken is PROFOYO wallet-ready.
Wat gebeurt er als ik mijn passport intrek?
Als je de passport-token op `/freelancer/compliance` intrekt of laat verlopen, dan retourneert `passport-vc` bij een `verify`-aanroep onmiddellijk `revoked` — óók voor VC's die nog niet cryptografisch zijn verlopen. De credential zelf blijft technisch geldig ondertekend, maar `credentialStatus.id` verwijst dan naar een revoked passport op `/verify/{token}`.
Wat je krijgt met de VC-export
1W3C Verifiable Credential 2.0 in JSON-LD, compact JWT variant meegeleverd
2Handtekening HS256 met `kid: profoyo-passport-vc-v1` uit `passport_signing_keys`
3Issuer `did:web:profoyo.com`, `credentialStatus` verwijst naar `/verify/{token}`
4Geldigheid 30 dagen; passport-intrekking werkt onmiddellijk via `verify`-endpoint