Skip to main content

When to use this

You don’t have a user identifier, or you’d rather render the request in your own UI. The user responds by scanning a QR or tapping a deeplink with their wallet. No second API call is needed: Create a presentation request already returned everything you need.

What you have

From the presentation request response:

QR code

Render authorizationRequestQrUri as a QR using any QR generator and display it wherever the user can scan it with their wallet. On mobile, render authorizationRequestUri as a regular link or button. Tapping it launches the user’s wallet with the request pre-loaded.

User experience

When the user scans or taps:
  1. Their wallet opens and displays the presentation request.
  2. The wallet shows credentials that match the request.
  3. The user picks one (if multiple match) and chooses what to share.
  4. Selective disclosure lets them withhold attributes that aren’t alwaysDisclosed.
  5. On confirmation, the response is sent back to the platform.
Users stay in control of what personal information they share, and can decline at any time.

What happens next

Once the user responds, retrieve the result. See Verify presentation. For real-time apps, register a webhook instead.
Already know the user’s email or username? You can let the platform do the delivery; see Deliver via identifier.