Documentation
Guides, API reference, and examples for integrating with VU Credentials.
Getting Started
Apply for a workspace. Once it is approved, define a credential type and issue your first credential.
Authentication
VU Credentials uses API keys for server-to-server authentication. Create and manage keys in the dashboard.
OIDC4VCI Issuance Flow
The credential issuance follows the OIDC4VCI pre-authorized code flow: create an offer, wallet exchanges for a token, then fetches the signed credential.
Verifying Credentials
Relying parties verify JWT VCs by fetching the issuer public key from /jwks and checking the ES256 signature, expiration, and credentialSubject.type.
Webhooks
Receive HMAC-SHA256 signed HTTP POST callbacks when credentials are issued. Configure your endpoint in Settings.
Discovery Endpoints
Public endpoints for wallet and verifier discovery. No authentication required.
API Endpoints
Core endpoints for credential issuance and verification
| Method | Path | Description |
|---|---|---|
| POST | /v1/offers | Create a credential offer |
| POST | /token | Exchange pre-authorized code for access token |
| POST | /credential | Issue a signed JWT VC |
| GET | /.well-known/openid-credential-issuer/:slug | Issuer metadata |
| GET | /.well-known/did.json | DID Web document |
| GET | /jwks | JSON Web Key Set |
Create Offer Request
POST /v1/offers with your API key
curl -X POST https://issuer.vucredentials.com/v1/offers \
-H "X-Api-Key: vu_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"credentialTypeSlug": "kyc-level-2",
"subjectId": "user-123",
"claims": {
"firstName": "Jane",
"lastName": "Doe",
"country": "GB",
"kycProvider": "Onfido",
"kycStatus": "approved",
"kycApprovedAt": "2026-03-15T10:00:00Z"
}
}'
# Response:
# { "offerUri": "openid-credential-offer://...?credential_offer=..." }