# Use Case 4.1 Obtain one or more cards from a (Q)EAA Issuer ## Overview | Aspect | Description | |------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | **Summary** | The user adds one or more cards to their NL Wallet and/or updates one or more cards, by starting issuance flow at the issuer.
Depending on the flow the issuer uses, the user first shares data with the issuer using PIN (disclosure based issuance),
proceeds directly to the offered cards (pre-authorized code flow), or authenticates and/or gives consent at the issuer in the browser (authorization code flow, HAIP).
The user then confirms issuance of the offered cards with PIN. | | **Goal** | Obtaining and/or updating cards from a (Q)EAA Issuer. | | **Preconditions** | | | **Postconditions** | | | **Triggered by** | | | **Additional Documentation** | | | **Possible errors** | | | **Logical test cases** | | --- ## Flow | # | Description | Next | |----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------| | **1** | **PRIMARY SCENARIO** | | | **1.1** | **System retrieves data request or credential offer from issuer and displays loading indicator** | | | 1.1a | User selects Stop | 9 | | 1.1b | Case: Wallet does not contain requested attribute | 12 | | 1.1c | Error: No internet | Error flow: [No Internet](../errors.md#no-internet) | | 1.1d | Error: Server unreachable | Error flow: [Server Unreachable](../errors.md#server-unreachable) | | 1.1e | Error: Unknown issuer error | Error flow: [Unknown Issuer Error](../errors.md#unknown-issuer-error) | | 1.1f | Error: Known issuer error | Error flow: [Known Issuer Error](../errors.md#known-issuer-error) | | 1.1g | Case: Credential offer contains a pre-authorized code (issuer has already determined the cards) | 2 | | 1.1h | Case: Credential offer requires authentication and/or consent in the browser (authorization code flow, HAIP) | 3 | | 1.1i | Case: Universal link contains a disclosure based issuance request (issuer first requests data from the wallet) | 1.2 | | **1.2** | **System displays screen 'Share Details to get cards'** | | | 1.2a | User selects Share | 1.3 | | 1.2b | User selects View Data | 4 | | 1.2c | User selects Stop | 9 | | 1.2d | User selects Help | Show placeholder 'under construction' | | **1.3** | **System executes partial flow [PF2.4 Confirm a protected action](../partial-flows/PF2.4_ConfirmProtectedAction.md)** | | | 1.3a | Result: Confirm | 1.4 | | 1.3b | Result: Cancel | 9 | | 1.3c | Result: Back | Back | | **1.4** | **System retrieves cards for issuance, while displaying loading indicator** | | | 1.4a | Case: Cards can be retrieved | 1.5 | | 1.4b | Case: Issuer has no cards to issue to this user | 11 | | 1.4c | Error: No internet | Error flow: [No Internet](../errors.md#no-internet) | | 1.4d | Error: Server unreachable | Error flow: [Server Unreachable](../errors.md#server-unreachable) | | 1.4e | Error: Session expired | Error flow: [Session Expired](../errors.md#session-expired) | | 1.4f | User selects Stop | 9 | | **1.5** | **System displays screen 'Add cards'** | | | 1.5a | User selects Add Card(s) | 1.6 | | 1.5b | User selects View Data | 8 | | 1.5c | User selects Stop | 9 | | 1.5d | User selects Help | Show placeholder 'under construction' | | **1.6** | **System executes partial flow [PF2.4 Confirm a protected action](../partial-flows/PF2.4_ConfirmProtectedAction.md)** | | | 1.6a | Result: Confirm | 1.7 | | 1.6b | Result: Cancel | 9 | | 1.6c | Result: Back | Back | | **1.7** | **System displays screen 'Card added'** | | | 1.7a | User selects To my overview | Go to: [UC7.1 Show all available cards](UC7.1_ShowAllAvailableCards.md) | | 1.7b | User selects Close | Go to: [UC7.1 Show all available cards](UC7.1_ShowAllAvailableCards.md) | | 1.7c | Error: No internet | Error flow: [No Internet](../errors.md#no-internet) | | 1.7d | Error: Server unreachable | Error flow: [Server Unreachable](../errors.md#server-unreachable) | | **2** | **PRE-AUTHORIZED CODE FLOW** | | | **2.1** | **System redeems the pre-authorized code and retrieves the offered cards, while displaying loading indicator** | | | 2.1a | Case: Cards can be retrieved | 1.5 | | 2.1b | Case: Issuer has no cards to issue to this user | 11 | | 2.1c | Error: Pre-authorized code already used or expired
→ System displays screen 'QR code no longer valid' | Error flow: [Session Expired](../errors.md#session-expired) | | 2.1d | Error: No internet | Error flow: [No Internet](../errors.md#no-internet) | | 2.1e | Error: Server unreachable | Error flow: [Server Unreachable](../errors.md#server-unreachable) | | 2.1f | Error: Unknown issuer error | Error flow: [Unknown Issuer Error](../errors.md#unknown-issuer-error) | | 2.1g | User selects Stop | 9 | | **3** | **AUTHORIZATION CODE FLOW (HAIP)** | | | **3.1** | **System opens the browser for authentication and/or consent at the issuer and awaits its response** | | | 3.1a | Event: Browser returns control to System, authentication successful and/or consent given | 1.4 | | 3.1b | User selects Stop | 9 | | **4** | **GET SHARING DETAILS** | | | **4.1** | **System displays screen 'About sharing'** | | | 4.1b | User selects About [organization] | 6 | | 4.1a | User selects View card details | 4.2 | | 4.1c | User selects Read the agreement | 7 | | 4.1d | User selects Back | Back | | **4.2** | **System displays screen 'Requested data'** | | | 4.2a | User selects Details Incorrect | 5 | | 4.2b | User selects Help | Show placeholder 'under construction' | | 4.2c | User selects Back | Back | | **5** | **WHEN DETAILS ARE INCORRECT** | | | **5.1** | **System displays screen 'Details incorrect'** | | | 5.1a | User selects Back | Back | | **6** | **GET ISSUER ORGANIZATION DETAILS** | | | **6.1** | **System displays screen 'About organization screen'** | | | 6.1a | User selects Help | Show placeholder 'under construction' | | 6.1b | User selects Back | Back | | **7** | **GET SHARING AGREEMENT DETAILS** | | | **7.1** | **System displays screen 'Agreements'** | | | 7.1a | User selects Privacy policy
→ System opens browser and suspends app | | | 7.1b | User selects Back | Back | | **8** | **GET CARD TO ISSUE DETAILS** | | | **8.1** | **System displays screen 'Card data'** | | | 8.1a | User selects Details Incorrect | 5 | | 8.1b | User selects Back | Back | | 8.1c | User selects Help | Show placeholder 'under construction' | | **9** | **STOP** | | | **9.1** | **System displays screen 'Confirm stop'** | | | 9.1a | User selects Yes stop | 9.2 | | 9.1b | User selects No | Back | | 9.1c | User selects Report a problem | 10 | | **9.2** | **System displays screen 'Sharing stopped'** | | | 9.2a | User selects Yes stop | End | | 9.2b | User selects No | Back | | **10** | **REPORT PROBLEM** | | | **10.1** | **System displays screen 'Report problem'** | | | 10.1a | User selects Back | Back | | 10.1b | User selects Problem option | 10.2 | | **10.2** | **System displays screen 'Under construction'** | | | 10.2a | User selects Back | Back | | **11** | **WHEN NO CARDS AVAILABLE** | | | **11.1** | **System displays screen 'No cards found'** | | | 11.1a | User selects Close | Go to: [UC7.1 Show all available cards](UC7.1_ShowAllAvailableCards.md) | | 11.1b | User selects Help | Show placeholder 'under construction' | | **12** | **WHEN WALLET DOES NOT CONTAIN REQUESTED ATTRIBUTES** | | | **12.1** | **System displays screen 'Missing data'** | | | 12.1a | User selects Close | 10.2 | | 12.1b | User selects See details | 12.2 | | 12.1c | User selects Help | Show placeholder 'under construction' | | **12.2** | **System displays bottom sheet 'Error details' with list of all requested attributes** | | | 12.2a | User selects Close | 12.1 |