Credential Issuance

Issuance is very simple, in fact, you only need to call a single HTTP POST endpoint:

Issue Credential

POST /issuer-api/{tenantId}/credentials/issuance/request

curl -X 'POST' \
  'http://0.0.0.0:8080/issuer-api/default/credentials/issuance/request?isPreAuthorized=true&walletId=$walletId' \
  -H 'accept: text/plain' \
  -H 'Content-Type: application/json' \
  -d 'SEE EXAMPLE BODY'

Wallet When issuing a credential, you will have to pre-select what type of wallet shall be used.

There are three types of wallets:

  1. Mobile wallets:

    • Cross device flow: User uses another device (desktop pc, laptop) than where their wallet is installed (smartphone).

    • In this case, you will use the virtual wallet "x-device", which creates an "openid-initiate-issuance://..." URL.

  2. Web wallets:

    • Same device flow: User uses the same device that their wallet is installed on.

    • In this case, you will have to additionally ask what web wallet the user is using (if you aren't forcing them to use your or an specific web wallet).

    • e.g. "walt.id", which creates an "https://wallet.walt.id/..." URL.

  3. App wallets

    • Theoretically same device flow, but also uses the virtual wallet "x-device" for creating an "openid-initiate-issuance://..." URL.

In the default configuration you can use the wallet "walt.id" (https://wallet.walt.id), or the virtual wallet "x-device" for the cross device flow ("openid-initiate-issuance://...").

The selected walletId is the id configured in the mappings seen in wallet_kit-configuration.m

Last updated