FortID LogoFortID

Credential Issuance

Issue verifiable credentials from an issuer using OpenID4VCI.

Initiate the OpenID4VCI protocol to issue a Verifiable Credential.

POST
/wallets/{walletId}/issue/initiate

This API is intended to be called when being offered a credential from an issuer via the OpenID for Verifiable Credential Issuance protocol.

The caller needs to specify which Wallet will store the Credential. The Credential Offer should be set to the one received from the issuer.

The issuanceSessionId will be returned. Caller can check the status of this session using the /wallets/{walletId}/issue/{issuanceSessionId}/session-status API.

Once the consentRequest is ready (fetched with /wallets/{walletId}/issue/{issuanceSessionId}/session-status), the user chooses one of the available grant options and proceeds accordingly.

Path Parameters

walletId*string

The unique identifier of the Wallet.

Formatuuid

Header Parameters

Authorization*string

Token for authenticating requests to the FortID Wallet Service.

Request Body

application/json

credentialOffer*string

URI of the Credential Offer by reference or by value, as defined by the OpenID4VCI specification.

publicJwk?object

The optional public JWK to which the issued credential should be bound.

Only ES256 keys are supported.

If present, the proofSignature must also be included within the request to /wallets/{walletId}/issue/{issuanceSessionId}/consent.

The credential issued as such will not be presentable using the Wallet Service.

[key: string]?never

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://ews.mds2026.fortid.dev/wallets/f4856bb7-d77a-4a6a-9c8a-7d7f6f639cfb/issue/initiate" \  -H "Authorization: Bearer {access_token}" \  -H "Content-Type: application/json" \  -d '{    "credentialOffer": "openid-credential-offer://?credential_offer_uri=https%3A%2F%2Fserver%2Eexample%2Ecom%2Fcredential-offer%2FGkurKxf5T0Y-mnPFCHqWOMiZi4VS138cQO_V7PZHAdM"  }'
{
  "issuanceSessionId": "dd6473c2-2043-4523-b359-ceb596ddae66"
}
{
  "error": "Bad request: Invalid credential offer"
}
{
  "error": "Unauthorized access to wallet service is not allowed."
}
{
  "error": "User user:9d18dc5a409e4f0f94ff6812e324c959 unauthorized for Wallet f5d223f6-fc41-42b1-b2a6-475a2984486c"
}
{
  "error": "Authorization Server not compatible"
}
{
  "error": "Internal Server Error"
}