NL Wallet Logo
  • About

Get Started

  • Preparations
  • Create a Verifier
  • Create an Issuer

Architecture

  • Overview in C4
    • System Context (C4)
    • Software System overview
  • Relevant Use Cases
    • Disclosure-based Issuance
    • Disclosure with OpenID4VP
    • Issuance with OpenID4VCI
    • Mobile App Startup
    • Pin Validation
    • Wallet Creation
    • Wallet recovery
  • Components Overview

Functional Design

  • Use case overview
  • About the Functional Design
  • Use Cases
    • Use Case 1.1 Introduce the app
    • Use Case 1.2 Open the app
    • Use Case 1.3 App tour
    • Use Case 2.1 Setup a remote PIN and biometric unlock
    • Use Case 2.2 Change biometric unlock
    • Use Case 2.3.2 Recover PIN
    • Use Case 2.3 Unlock the app
    • Use Case 2.6 Change remote PIN
    • Use Case 3.1 Obtain PID
    • Use Case 3.3 Renew PID
    • Use Case 4.1 Obtain one or more cards from a (Q)EAA Issuer
    • Use Case 5.1 Share data with a Relying Party
    • Use Case 5.2 Log in to Relying Party application
    • Use Case 6.1 Show complete history
    • Use Case 6.2 Show card history
    • Use Case 6.3 Show history event
    • Use Case 7.1 Show all available cards
    • Use Case 7.2 Show card details
    • Use Case 9.10 Transfer Wallet to another device
    • Use Case 9.1 Show app menu
    • Use Case 9.2 Get app information
    • Use Case 9.3 Change app language
    • Use Case 9.4 Wipe all app data
    • Use Case 9.6 Get help
    • Use Case 9.7 Log out of the app
    • Use Case 9.9 Scan QR
  • Partial Flows
    • Partial Flow 1.4 Apply update policy
    • Partial Flow 2.4 Confirm a protected action
    • Partial Flow 2.7 Resolve a universal link
    • Partial Flow 2.8 Validate entered PIN
    • Partial Flow 2.8 Setup PIN
  • Errors
  • Logical Test Cases

Development

  • Authorized attributes
  • Generic Issuance
  • OpenAPI Specifications
  • SD-JWT VC Profile
  • Specification References
  • Sphinx Documentation
  • Updating Rust
  • Using Lokalise

Community

  • Onboarding
  • Create a CA

Way of Working

  • Definition of Done
  • Definition of Ready
  • Merge Requests
  • Releases Howto

Glossary

  • Glossary

Release Notes

  • v0.3.0
  • v0.4.0
  • v0.5.0 (dev)
NL Wallet
  • Partial Flows
  • Partial Flow 2.7 Resolve a universal link
  • View page source

Partial Flow 2.7 Resolve a universal link

Overview

Aspect

Description

Summary

The system validates universal link and determines next step for the user.

Goal

Resolving a universal link invoked by the user.

Preconditions

None

Postconditions

None

Used by

  • UC1.2 Open the app
  • UC2.3 Unlock the app

Parameters

None

Possible Results

  • No (valid) universal link
  • Wallet rejects universal link
  • In case of a valid UL, the system continues with the corresponding use case
  • Additional Documentation

    None

    Possible errors

    None

    Logical test cases

    • LTC33 Open app via universal link
    • LTC35 Invoke universal link when app is not installed
    • LTC36 Open universal link via external QR scanner
    • LTC44 Wallet not created when universal link is invoked
    • LTC55 Invalid universal link
    • LTC69 Universal link is invoked while wallet is not personalized


    Flow

    #

    Description

    Next

    1

    UNIVERSAL LINK

    1.1

    System determines whether universal link is present

    • Provided by the operating system

    1.1a

    Case: universal link is present

    1.2

    1.1b

    Case: universal link is not present

    Result: No (valid) universal link

    1.2

    System validates universal link

    • Duration: 0.0 - 0.1 seconds

    1.2a

    Case: universal link is valid

    1.2b

    Case: universal link is scanned with external QR scanner (not allowed)

    2

    1.2c

    Case: universal link is invalid

    Result: No (valid) universal link

    1.2d

    Case: wallet is not personalized

    3

    1.2e

    Case: wallet is in a transfer session

    4

    1.2f

    Case: wallet is in a PIN recovery session

    5

    1.2g

    Case: wallet is in a disclosure session

    6

    1.2h

    Case: wallet is in an issuance session

    7

    1.3

    System resolves universal link

    • Contacts the URL provided in the UL
    • Duration: 0.0 - 0.1 seconds

    1.3a

    Case: UL resolves to issuance flow

    Go to: UC4.1 Obtain cards

    1.3b

    Case: UL resolves to sharing flow

    Go to: UC5.1 Share data

    1.3c

    Case: UL resolves to login flow

    Go to: UC5.2 Log in to Relying Party application

    2

    WHEN EXTERNAL QR SCANNER WAS USED

    2.1

    System displays prompt ‘Scan QR code with NL Wallet’

    • Actions: Close, Scan QR code

    2.1a

    User selects Close

    Result: No (valid) universal link

    2.1b

    User selects Scan QR code

    Go to: UC9.9 Scan QR

    3

    WHEN WALLET IS NOT PERSONALIZED

    3.1

    System displays prompt ‘Your NL Wallet is not ready’

    • Actions: OK

    3.1a

    User selects OK

    Result: Wallet rejects universal link

    4

    WWHEN WALLET IS IN A TRANSFER SESSION

    4.1

    System displays prompt ‘Finish moving your NL Wallet’

    • Actions: OK

    4.1a

    User selects OK

    Result: Wallet rejects universal link

    5

    WWHEN WALLET IS IN A PIN RECOVERY SESSION

    5.1

    System displays prompt ‘Finish your new PIN’

    • Actions: OK

    5.1a

    User selects OK

    Result: Wallet rejects universal link

    6

    WWHEN WALLET IS IN A DISCLOSURE SESSION

    6.1

    System displays prompt ‘Finish sharing’

    • Actions: OK

    6.1a

    User selects OK

    Result: Wallet rejects universal link

    7

    WWHEN WALLET IS IN AN ISSUANCE SESSION

    7.1

    System displays prompt ‘Finish adding your card’

    • Actions: OK

    7.1a

    User selects OK

    Result: Wallet rejects universal link

    Previous Next

    © Copyright 2025, NL Wallet.

    Other Versions v: main
    Releases
    v0.4.0
    Branches
    main