Issuance is very simple, in fact, you only need to call a single HTTP POST endpoint:
POST /issuer-api/{tenantId}/credentials/issuance/request
Wallet When issuing a credential, you will have to pre-select what type of wallet shall be used.
There are three types of wallets:
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.
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.
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
Answers with a redirect (header "Location") to the issuance URL, e.g. http://localhost:3000/api/siop/initiateIssuance/?issuer=http%3A%2F%2Flocalhost%3A8080%2Fissuer-api%2Fdefault%2Foidc%2F&credential_type=VerifiableId&pre-authorized_code=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxYTYyMzJiMy1hZDE0LTQ3YTYtYjMxNi00NzUzZjJhM2Q2NWYiLCJwcmUtYXV0aG9yaXplZCI6dHJ1ZX0.TGYpvRwE9Qc7-BSMLAA-u3Kweyf8ks2w3ulBpSyZQiI&user_pin_required=false