# 3 AACO Pilots ## DTC Anoncred Issuance Workflow 1. User installs Mobile App 2. User uses Mobile App to scan passport using OCR and NFC and authenticate with a liveness check 3. Mobile App establishes connection with SITA DTC Issuer Agent 4. SITA DTC Issuer Agent requests self-attested presentation from Mobile App 5. Mobile App sends ICAO DTC to SITA DTC Issuer Agent via self-attested presentation 6. DTC Issuer Agent checks validity of ICAO DTC using an ICAO DTC PKD service (Auctorizium) 7. ICAO DTC PKD service responds with validity result 8. SITA DTC Issuer Agent offers a DTC Anoncred credential to the Mobile App 9. Mobile App presents the credential offer to the User 10. User accepts the credential offer on the Mobile App ```plantuml skinparam backgroundColor #fff skinparam handwritten false skinparam BoxPadding 10 skinparam ParticipantPadding 10 skinparam NoteFontSize 24 skinparam NoteBorderColor #f80 skinparam NoteBackgroundColor #fea skinparam sequenceArrowThickness 1 skinparam sequence { BoxFontSize 36 BoxBorderColor #555 BoxBackgroundColor #fbfbfb ActorFontColor #333 ActorFontSize 24 ActorFontName Arial ActorBorderColor #555 ActorBackgroundColor #ccc ParticipantFontName Arial ParticipantFontSize 24 ParticipantFontColor #333 ParticipantBorderColor #555 ParticipantBackgroundColor #eee LifeLineBorderColor #ccc LifeLineBackgroundColor #000 ArrowFontSize 24 ArrowColor #f80 DividerFontSize 24 } actor User participant "Mobile App" as Mobile participant "DTC Issuer Agent" as Issuer participant Auctorizium User -> Mobile: Install Mobile -> Mobile: Scan Passport, Liveness Check Mobile -> Mobile: Encode ICAO DTC note over Mobile: ICAO DTC stored on Mobile App Mobile -> Issuer: Connect Issuer -> Mobile: Request Self-attested\nDTC information Mobile -> Issuer: Send ICAO DTC note over Issuer: ICAO DTC stored on\nDTC Issuer Agent\n(temporarily) note over Issuer: Passport attributes\nstored on\nDTC Issuer Agent (temporarily) Issuer -> Auctorizium: ICAO DTC validity request Auctorizium -> Issuer: ICAO DTC validity result Issuer -> Mobile: Offer DTC Anoncred credential Mobile -> User: Display DTC\nAnoncred credential offer User -> Mobile: User accepts credential note over Mobile: DTC Anoncred credential\nstored on Mobile App ``` ## Frequent Flyer Issuance Workflow (New Account, Website) 1. User opens Airline Website in a browser 2. User clicks on "Create an Account" 3. Airline Website requests an invitation from the Airline Server Agent 4. Airline Server Agent returns invitation 5. Airline Website presents a QR code to the user 6. User scans the QR code with their Mobile App 7. Mobile App connects to the Airline Server Agent 8. Airline Website requests verification of a DTC Anoncred from the Airline Server Agent. 9. Airline Website uses API to poll the Airline Server Agent for the verification result 10. Airline Server Agent requests a DTC Anoncred credential from the Mobile App 11. Mobile App presents request to User 12. User consents to share a DTC Anoncred presentation 13. Mobile App sends a DTC Anoncred presentation to the Airline Server Agent 14. Airline Server Agent parses details of DTC Anoncred presentation 15. Airline Server Agent sends DTC Anoncred data to the Airline Website (in response to the polling request in #9) 16. Airline Website presents a user profile form with fields from passport pre-populated 17. User fills out the user profile information and clicks "Submit" 18. The account data is sent to the Airline Website and account is created 19. Website uses account data to request issuance of Frequent Flyer credential 20. Airline Server Agent offers a Frequent Flyer credential to the Mobile App 21. Mobile App presents the offer to the User 22. User clicks accept in the Mobile App and the Frequent Flyer credential is added to their wallet 23. User is redirected to account page on the Airline Website ```plantuml skinparam backgroundColor #fff skinparam handwritten false skinparam BoxPadding 10 skinparam ParticipantPadding 10 skinparam NoteFontSize 24 skinparam NoteBorderColor #f80 skinparam NoteBackgroundColor #fea skinparam sequenceArrowThickness 1 skinparam sequence { BoxFontSize 36 BoxBorderColor #555 BoxBackgroundColor #fbfbfb ActorFontColor #333 ActorFontSize 24 ActorFontName Arial ActorBorderColor #555 ActorBackgroundColor #ccc ParticipantFontName Arial ParticipantFontSize 24 ParticipantFontColor #333 ParticipantBorderColor #555 ParticipantBackgroundColor #eee LifeLineBorderColor #ccc LifeLineBackgroundColor #000 ArrowFontSize 24 ArrowColor #f80 DividerFontSize 24 } actor User participant "Mobile App" as Mobile participant "Airline Website" as Website participant "Airline Server Agent" as Agent User -> Website: Open Website Website -> Website: User clicks "Create Account" Website -> Agent: Requests invitation Agent -> Website: Returns invitation Website -> Website: Displays QR code Mobile -> Website: Scan QR code Mobile -> Agent: Connect Website -> Agent: Requests verification\nof a DTC Anoncred Website -> Agent: Poll for the\nverification result Agent -> Mobile: Requests a DTC Anoncred\ncredential from the Mobile App Mobile -> User: Presents request to User User -> Mobile: Consents to share DTC Anoncred Mobile -> Agent: sends DTC Anoncred presentation Agent -> Agent: Parses details of\nDTC Anoncred presentation Agent -> Website: Sends DTC\nAnoncred data Website -> Website: Displays user profile form\n(prepopulated with data from DTC) User -> Website: User submits\nuser profile data Website -> Website: User data submitted, account created Website -> Agent: Frequent Flyer\ncredential requested note over Agent: User data stored\non Airline Server Agent Agent -> Mobile: Offer Frequent\nFlyer credential Mobile -> User: Display Frequent\nFlyer credential offer User -> Mobile: User accepts credential note over Mobile: Frequent Flyer credential\nstored on Mobile App Website -> User: User redirected to account page ``` ## Frequent Flyer Issuance Workflow (Existing Account, Website) 1. After login, Website shows a banner, button, or link asking the User to get a Frequent Flyer credential for future logins and other benefits 2. User clicks the banner, button, or link 3. Airline Website requests an invitation from the Airline Server Agent 4. Airline Server Agent returns invitation 5. Airline Website presents a QR code to the user 6. User scans the QR code with their Mobile App 7. Mobile App connects to the Airline Server Agent 8. Airline Website requests verification of a DTC Anoncred from the Airline Server Agent. 9. Airline Website uses API to poll the Airline Server Agent for the verification result 10. Airline Server Agent requests a DTC Anoncred credential from the Mobile App 11. Mobile App presents request to User 12. User consents to share a DTC Anoncred presentation 13. Mobile App sends a DTC Anoncred presentation to the Airline Server Agent 14. Airline Server Agent parses details of DTC Anoncred presentation 15. Airline Server Agent sends DTC Anoncred data to the Airline Website (in response to the polling request in #9) 16. Airline Website updates User's account (to correct passport data inaccuracies) 17. Website uses account data to request issuance of Frequent Flyer credential 20. Airline Server Agent offers a Frequent Flyer credential to the Mobile App 21. Mobile App presents the offer to the User 22. User clicks accept in the Mobile App and the Frequent Flyer credential is added to their wallet 23. User is redirected to account page on the Airline Website ## Frequent Flyer Issuance Workflow (New Account, Application) 1. User opens Mobile App (which requires biometric authentication) 2. User clicks on "Join Now" 3. Mobile App reads invitation from Airline governance file (or config) 4. Mobile App connects to the Airline Server Agent 5. Mobile App presents a user profile form 6. Mobile App prefills fields from DTC credential 7. User fills out the remaining user profile information and clicks "Submit" 8. Mobile App submits data to the Airline Server (including connection_id) 9. Airline Server creates account and returns Account ID to Mobile App 10. Airline Server submits connection_id and contact_id to Airline Server Agent so they can be linked 11. Airline Server requests verification of a DTC Anoncred from the Airline Server Agent. 12. Airline Server uses API to poll the Airline Server Agent for the verification result 13. Airline Server Agent requests a DTC Anoncred credential from the Mobile App 14. Mobile App presents request to User 15. User consents to share a DTC Anoncred presentation 16. Mobile App sends a DTC Anoncred presentation to the Airline Server Agent 17. Airline Server Agent parses details of DTC Anoncred presentation 18. Airline Server Agent sends DTC Anoncred data to the Airline Server (in response to the polling request in #9) 19. Airline Server compares verified data from DTC with data in user profile (for security purposes) and overwrites if necessary 20. Airline Server requests issuance of Frequent Flyer credential using Account ID as the contact_id 21. Airline Server Agent offers a Frequent Flyer credential to the Mobile App 22. Mobile App presents the offer to the User 23. User clicks accept in the Mobile App and the Frequent Flyer credential is added to their wallet 24. Mobile App displays the account page ```plantuml skinparam backgroundColor #fff skinparam handwritten false skinparam BoxPadding 10 skinparam ParticipantPadding 10 skinparam NoteFontSize 24 skinparam NoteBorderColor #f80 skinparam NoteBackgroundColor #fea skinparam sequenceArrowThickness 1 skinparam sequence { BoxFontSize 36 BoxBorderColor #555 BoxBackgroundColor #fbfbfb ActorFontColor #333 ActorFontSize 24 ActorFontName Arial ActorBorderColor #555 ActorBackgroundColor #ccc ParticipantFontName Arial ParticipantFontSize 24 ParticipantFontColor #333 ParticipantBorderColor #555 ParticipantBackgroundColor #eee LifeLineBorderColor #ccc LifeLineBackgroundColor #000 ArrowFontSize 24 ArrowColor #f80 DividerFontSize 24 } actor User participant "Mobile App" as Mobile participant "Airline Server" as Server participant "Airline Server Agent" as Agent User -> Mobile: Open Mobile App User -> Mobile: User clicks "Join Now" Server -> Server: Displays user profile form User -> Server: User submits\nuser profile data Server -> Agent: User data submitted Server -> Agent: Requests invitation Agent -> Server: Returns invitation Server -> Server: Displays QR code Mobile -> Server: Scan QR code Mobile -> Agent: Connect Server -> Agent: Frequent Flyer credential requested note over Agent: User data stored\non Airline Server Agent Agent -> Mobile: Offer Frequent Flyer credential Mobile -> User: Display Frequent\nFlyer credential offer User -> Mobile: User accepts credential note over Mobile: Frequent Flyer credential\nstored on Mobile App Server -> User: User redirected to account page ``` ## Frequent Flyer Issuance Workflow (Existing Account, Application) 1. After login, Mobile App shows a banner, button, or link asking the User to get a Frequent Flyer credential for future logins and other benefits 2. User clicks the banner, button, or link 3. Mobile App reads invitation from Airline governance file (or config) 4. Mobile App connects to the Airline Server Agent 5. Mobile App requests account credential from Airline Server (and the request contains the User's account ID) 6. Airline Server requests verification of a DTC Anoncred from the Airline Server Agent. 7. Airline Server uses API to poll the Airline Server Agent for the verification result 8. Airline Server Agent requests a DTC Anoncred credential from the Mobile App 9. Mobile App presents request to User 10. User consents to share a DTC Anoncred presentation 11. Mobile App sends a DTC Anoncred presentation to the Airline Server Agent 12. Airline Server Agent parses details of DTC Anoncred presentation 13. Airline Server Agent sends DTC Anoncred data to the Airline Server (in response to the polling request in #7) 14. Airline Server updates User's account (to correct passport data inaccuracies) 15. Airline Server uses account data to request issuance of Frequent Flyer credential 16. Airline Server Agent offers a Frequent Flyer credential to the Mobile App 17. Mobile App presents the offer to the User 18. User clicks accept in the Mobile App and the Frequent Flyer credential is added to their wallet 19. User is redirected to account page on the Airline Website ## Airline Account Login Workflow (Website) 1. User opens Airline Website in a browser 2. User clicks on "Log In" 3. Airline Website requests an invitation from the Airline Server Agent 4. Airline Website requests a credential verification from the Airline Server Agent 5. Airline Website begins polling for verification result 6. Airline Server Agent returns invitation 7. Airline Website presents a QR code to the user 8. User scans the QR code with their Mobile App 9. Mobile App connects to the Airline Server Agent 10. Airline Server Agent sends a presentation request to the Mobile App requesting the Frequent Flyer credential 11. Mobile App displays the presentation request to the User 12. User accepts the presentation request 13. Mobile App sends the presentation to the Airline Server Agent 14. Airline Server Agent verifies the credential 15. Airline Server Agent sends the result to the Airline Website 16. Airline Website redirects User to the account page (or displays an error message) ```plantuml skinparam backgroundColor #fff skinparam handwritten false skinparam BoxPadding 10 skinparam ParticipantPadding 10 skinparam NoteFontSize 24 skinparam NoteBorderColor #f80 skinparam NoteBackgroundColor #fea skinparam sequenceArrowThickness 1 skinparam sequence { BoxFontSize 36 BoxBorderColor #555 BoxBackgroundColor #fbfbfb ActorFontColor #333 ActorFontSize 24 ActorFontName Arial ActorBorderColor #555 ActorBackgroundColor #ccc ParticipantFontName Arial ParticipantFontSize 24 ParticipantFontColor #333 ParticipantBorderColor #555 ParticipantBackgroundColor #eee LifeLineBorderColor #ccc LifeLineBackgroundColor #000 ArrowFontSize 24 ArrowColor #f80 DividerFontSize 24 } actor User participant "Mobile App" as Mobile participant "Airline Website" as Website participant "Airline Server Agent" as Agent User -> Website: Open Website Website -> Website: User clicks "Log In" Website -> Agent: Requests invitation Website -> Agent: Requests login verification Agent -> Website: Returns invitation Website -> Website: Displays QR code Mobile -> Website: Scan QR code Mobile -> Agent: Connect Agent -> Mobile: Request Frequent Flyer credential Mobile -> User: Request sharing of Frequent\nFlyer credential User -> Mobile: Authorize sharing of Frequent\nFlyer credential Mobile -> Agent: Present Frequent\nFlyer credential Agent -> Agent: Interpret Frequent\nFlyer credential note over Agent: Frequent Flyer\npresentation stored\n on Airline Server\nAgent (optional) Agent -> Website: Send Frequent Flyer details Website -> User: User redirected to account page ``` ## Airline Account Login Workflow (Application) 1. User opens Mobile App (which requires biometric authentication) 2. User clicks on "Log In" 3. Mobile App sends DIDComm trust ping to ensure it has an active connection to the Airline Server Agent 4. If it does not, Mobile App uses invitation from governance file (or config) to connect to Airline Server Agent 5. Mobile App sends login request to Airline Server (including Safar ID) 6. Airline Server sends verification request to the Airline Server Agent 7. Airline Server Agent sends a presentation request to the Mobile App requesting the Frequent Flyer credential 8. Mobile App displays the presentation request to the User 9. User accepts the presentation request 10. Mobile App sends the presentation to the Airline Server Agent 11. Airline Server Agent verifies the credential 12. Airline Server Agent sends the result to the Airline Server 13. Airline Server sends positive log in response to Mobile App ```plantuml skinparam backgroundColor #fff skinparam handwritten false skinparam BoxPadding 10 skinparam ParticipantPadding 10 skinparam NoteFontSize 24 skinparam NoteBorderColor #f80 skinparam NoteBackgroundColor #fea skinparam sequenceArrowThickness 1 skinparam sequence { BoxFontSize 36 BoxBorderColor #555 BoxBackgroundColor #fbfbfb ActorFontColor #333 ActorFontSize 24 ActorFontName Arial ActorBorderColor #555 ActorBackgroundColor #ccc ParticipantFontName Arial ParticipantFontSize 24 ParticipantFontColor #333 ParticipantBorderColor #555 ParticipantBackgroundColor #eee LifeLineBorderColor #ccc LifeLineBackgroundColor #000 ArrowFontSize 24 ArrowColor #f80 DividerFontSize 24 } actor User participant "Mobile App" as Mobile participant "Airline Server" as Server participant "Airline Server Agent" as Agent User -> Mobile: Open Mobile App User -> Mobile: User clicks "Log In" Mobile -> Agent: Sends trust ping Mobile -> Server: Send login request Server -> Agent: Requests login verification Agent -> Mobile: Request Frequent Flyer credential Mobile -> User: Request sharing of Frequent\nFlyer credential User -> Mobile: Authorize sharing of Frequent\nFlyer credential Mobile -> Agent: Present Frequent\nFlyer credential Agent -> Agent: Interpret Frequent\nFlyer credential note over Agent: Frequent Flyer\npresentation stored\n on Airline Server\nAgent (optional) Agent -> Server: Send Frequent Flyer details Server -> Mobile: Send positive login response ``` ## Boarding Pass Workflow (Website) 1. Airline Website displays flight details, including a "Visa Required" ribbon for flights with a visa requirement and a checkbox labeled "Seamless Journey" 2. User selects a flight and clicks on "Get Boarding Pass" 3. Regardless of which flight is selected, Airline Website requests verification of a DTC Anoncred from the Airline Server Agent. The verification requested varies based on whether "Seamless Journey" was selected. 4. Airline Website uses API to poll the Airline Server Agent for the verification result 5. Airline Server Agent requests a DTC Anoncred credential from the Mobile App 6. Mobile App presents request to User 7. User consents to share a DTC Anoncred presentation 8. Mobile App sends a DTC Anoncred presentation to the Airline Server Agent 9. Airline Server Agent parses details of DTC Anoncred presentation 10. Airline Server Agent sends DTC Anoncred data to the Airline Website (in response to the polling request in #4) 11. For flights with a visa requirement, Airline Website requests verification of a Visa Anoncred from the Airline Server Agent. 12. Airline Website uses API to poll the Airline Server Agent for the verification result 13. If a visa is required, the Airline Server Agent sends a basic message to the Mobile App to notify the user that a Travel Authentication credential is required. 14. If a visa is required, the Airline Server Agent requests a Travel Authorization Anoncred credential from the Mobile App 15. Mobile App presents request to the User 16. If a Travel Authentication credential was requested and if the user has (an) existing credential(s) suitable for the purpose, they can select one OR the User can select to "Obtain a new visa credential." 17. If a new credential is requested, the app will trigger the Regula visa workflow a. The User will be asked to scan their visa b. After scanning, the Mobile App will send a presentation to the Airline Server Agent with the User’s visa data. c. The Airline Server Agent will extract the data from the presentation and confirm its validity d. Airline Server Agent offers the Travel Authorization credential to the Mobile App d. Mobile App presents the credential offer to the User e. User accepts the credential offer and the credential is added to their Mobile App wallet f. After the Travel Authorization credential is received, the Mobile App returns the User to the verification workflow 18. User consents to share a Travel Authorization presentation 19. Mobile App sends a Travel Authorization credential presentation to the Airline Server Agent 20. Airline Server Agent parses details of Travel Authorization presentation 21. Airline Server Agent sends Travel Authorization Anoncred data to the Airline Website (in response to the polling request in #12) 22. Airline Website submits data to Flight Check-in System (e.g. Amadeus) 23. Flight Check-in System responds with boarding pass details 24. Airline Website displays Boarding Pass details to the User 25. User clicks "Download Boarding Pass" on the Airline Website 26. Airline Website requests issuance of Boarding Pass credential from the Airline Server Agent 27. If the user selected "Seamless Journey", Airline Website submits passenger check-in details to SITA SmartPath 28. Airline Server Agent offers a Boarding Pass credential to the Mobile App 29. Mobile App presents the offer to the User 30. User clicks "accept" in the Mobile App and the Boarding Pass credential is added to their wallet ```plantuml skinparam backgroundColor #fff skinparam handwritten false skinparam BoxPadding 10 skinparam ParticipantPadding 10 skinparam NoteFontSize 24 skinparam NoteBorderColor #f80 skinparam NoteBackgroundColor #fea skinparam sequenceArrowThickness 1 skinparam sequence { BoxFontSize 36 BoxBorderColor #555 BoxBackgroundColor #fbfbfb ActorFontColor #333 ActorFontSize 24 ActorFontName Arial ActorBorderColor #555 ActorBackgroundColor #ccc ParticipantFontName Arial ParticipantFontSize 24 ParticipantFontColor #333 ParticipantBorderColor #555 ParticipantBackgroundColor #eee LifeLineBorderColor #ccc LifeLineBackgroundColor #000 ArrowFontSize 24 ArrowColor #f80 DividerFontSize 24 } actor User participant "Mobile App" as Mobile participant "Airline Website" as Website participant "Airline Server Agent" as Agent Website -> User: Display flight details User -> Website: Selects flight from list Website -> Agent: Submits verification request\nfor DTC Anoncred Website -> Agent: Poll for\nverification result Agent -> Mobile: Request DTC\nAnoncred credential Mobile -> User: Request sharing of DTC\nAnoncred credential User -> Mobile: Consent to share DTC\nAnoncred credential Mobile -> Agent: Present DTC\nAnoncred credential Agent -> Agent: Interpret DTC\nAnoncred credential note over Agent: DTC Anoncred\npresentation stored\n on Airline Server\nAgent (optional) Agent -> Website: Send passport details Website -> Agent: Submits verification request\nfor Travel Authorization credential Website -> Agent: Poll for verification result Agent -> Mobile: Send notification basic message Agent -> Mobile: Request Travel\nAuthorization credential Mobile -> User: Request sharing of Travel\nAuthorization credential User -> Mobile: Request new visa Mobile -> User: Scan visa document Mobile -> Agent: Present visa data Agent -> Mobile: Extract data and offer Travel Authorization credential Mobile -> User: Display Travel\nAuthorization credential offer User -> Mobile: User accepts credential note over Mobile: Travel Authorization credential\nstored on Mobile App User -> Mobile: Consent to share Travel\nAuthorization credential Mobile -> Agent: Present Travel\nAuthorization credential note over Agent: Travel Authorization\npresentation stored\n on Airline Server\nAgent (optional) Agent -> Website: Send visa details Website -> User: Display Boarding Pass details User -> Website: Click "Download Boarding Pass" Website -> Agent: Request to issue\nBoarding Pass\ncredential to User Agent -> Mobile: Offer Boarding\nPass credential Mobile -> User: Display Boarding Pass\ncredential offer User -> Mobile: User accepts credential note over Mobile: Boarding Pass credential\nstored on Mobile App ``` ## Boarding Pass Workflow (Application) 1. Mobile App displays flight details, including a "Visa Required" ribbon for flights with a visa requirement and a checkbox labeled "Seamless Journey" 2. User selects a flight and clicks on "Get Boarding Pass" 3. Mobile App requests boarding pass from Airline Server 4. Regardless of which flight is selected, Airline Server requests verification of a DTC Anoncred from the Airline Server Agent. The verification requested varies based on whether "Seamless Journey" was selected. 5. Airline Server uses API to poll the Airline Server Agent for the verification result 6. Airline Server Agent requests a DTC Anoncred credential from the Mobile App 7. Mobile App presents request to User 8. User consents to share a DTC Anoncred presentation 9. Mobile App sends a DTC Anoncred presentation to the Airline Server Agent 10. Airline Server Agent parses details of DTC Anoncred presentation 11. Airline Server Agent sends DTC Anoncred data to the Airline Server (in response to the polling request in #5) 12. For flights with a visa requirement, Airline Server requests verification of a Travel Authorization credential from the Airline Server Agent. 13. Airline Server uses API to poll the Airline Server Agent for the verification result 14. If a visa is required, the Airline Server Agent sends a basic message to the Mobile App to notify the user that a Travel Authentication credential is required. 15. If a visa is required, the Airline Server Agent requests a Travel Authorization Anoncred credential from the Mobile App 16. Mobile App presents request to the User 17. If a Travel Authentication credential was requested and if the user has (an) existing credential(s) suitable for the purpose, they can select one OR the User can select to "Obtain a new visa credential." 18. If a new credential is requested, the Mobile App will trigger the Regula visa workflow a. The User will be asked to scan their visa b. After scanning, the Mobile App will send a self-attested presentation to the Airline Server Agent with the User’s visa data. c. The Airline Server Agent will extract the data from the presentation and confirm its validity d. Airline Server Agent offers the Travel Authorization credential to the Mobile App d. Mobile App presents the credential offer to the User e. User accepts the credential offer and the credential is added to their Mobile App wallet f. After the Travel Authorization credential is received, the Mobile App returns the User to the verification workflow 19. User consents to share a Travel Authorization presentation 20. Mobile App sends a Travel Authorization credential presentation to the Airline Server Agent 21. Airline Server Agent parses details of Travel Authorization presentation 22. Airline Server Agent sends Travel Authorization data to the Airline Server (in response to the polling request in #13) 23. Airline Server submits data to Flight Check-in System (e.g. Amadeus) 24. Flight Check-in System responds with boarding pass details 25. Airline Server requests issuance of Boarding Pass credential from the Airline Server Agent 26. If the user selected "Seamless Journey", Airline Server submits passenger check-in details to SITA SmartPath 27. Airline Server Agent offers a Boarding Pass credential to the Mobile App 28. Mobile App presents the offer to the User 29. User clicks "accept" in the Mobile App and the Boarding Pass credential is added to their wallet ```plantuml skinparam backgroundColor #fff skinparam handwritten false skinparam BoxPadding 10 skinparam ParticipantPadding 10 skinparam NoteFontSize 24 skinparam NoteBorderColor #f80 skinparam NoteBackgroundColor #fea skinparam sequenceArrowThickness 1 skinparam sequence { BoxFontSize 36 BoxBorderColor #555 BoxBackgroundColor #fbfbfb ActorFontColor #333 ActorFontSize 24 ActorFontName Arial ActorBorderColor #555 ActorBackgroundColor #ccc ParticipantFontName Arial ParticipantFontSize 24 ParticipantFontColor #333 ParticipantBorderColor #555 ParticipantBackgroundColor #eee LifeLineBorderColor #ccc LifeLineBackgroundColor #000 ArrowFontSize 24 ArrowColor #f80 DividerFontSize 24 } actor User participant "Mobile App" as Mobile participant "Airline Server" as Server participant "Airline Server Agent" as Agent Mobile -> User: Display flight details User -> Mobile: Selects flight from list Mobile -> Server: Request boarding pass Server -> Agent: Submits verification request\nfor DTC Anoncred Server -> Agent: Poll for\nverification result Agent -> Mobile: Request DTC\nAnoncred credential Mobile -> User: Request sharing of DTC\nAnoncred credential User -> Mobile: Consent to share DTC\nAnoncred credential Mobile -> Agent: Present DTC\nAnoncred credential Agent -> Agent: Interpret DTC\nAnoncred credential note over Agent: DTC Anoncred\npresentation stored\n on Airline Server\nAgent (optional) Agent -> Server: Send passport details Server -> Agent: Submits verification request\nfor Travel Authorization credential Server -> Agent: Poll for verification result Agent -> Mobile: Send notification basic message Agent -> Mobile: Request Travel\nAuthorization credential Mobile -> User: Request sharing of Travel\nAuthorization credential User -> Mobile: Request new visa Mobile -> User: Scan visa document Mobile -> Agent: Present visa data Agent -> Mobile: Extract data and offer Travel Authorization credential Mobile -> User: Display Travel\nAuthorization credential offer User -> Mobile: User accepts credential note over Mobile: Travel Authorization credential\nstored on Mobile App User -> Mobile: Consent to share Travel\nAuthorization credential Mobile -> Agent: Present Travel\nAuthorization credential note over Agent: Travel Authorization\npresentation stored\n on Airline Server\nAgent (optional) Agent -> Server: Send visa details Server -> Agent: Request to issue\nBoarding Pass\ncredential to User Agent -> Mobile: Offer Boarding\nPass credential Mobile -> User: Display Boarding Pass\ncredential offer User -> Mobile: User accepts credential note over Mobile: Boarding Pass credential\nstored on Mobile App ``` ## Boarding Pass Verification Workflow 1. Verifier displays an invitation URL as a QR code 2. User scans QR code with Mobile App 3. Mobile App connects to Verifier Agent 4. Verifier Agent requests Boarding Pass credential 5. Mobile App displays the presentation request to the User 6. User consents to share the Boarding Pass credential 7. Mobile App sends the Boarding Pass credential to the Verifier Agent 8. Verifier Agent interprets the presentation 9. Both Mobile App and Verifier Agent display the verification result. The Mobile Verifier Agent has two display options, Lounge Access and Boarding Pass ```plantuml skinparam backgroundColor #fff skinparam handwritten false skinparam BoxPadding 10 skinparam ParticipantPadding 10 skinparam NoteFontSize 24 skinparam NoteBorderColor #f80 skinparam NoteBackgroundColor #fea skinparam sequenceArrowThickness 1 skinparam sequence { BoxFontSize 36 BoxBorderColor #555 BoxBackgroundColor #fbfbfb ActorFontColor #333 ActorFontSize 24 ActorFontName Arial ActorBorderColor #555 ActorBackgroundColor #ccc ParticipantFontName Arial ParticipantFontSize 24 ParticipantFontColor #333 ParticipantBorderColor #555 ParticipantBackgroundColor #eee LifeLineBorderColor #ccc LifeLineBackgroundColor #000 ArrowFontSize 24 ArrowColor #f80 DividerFontSize 24 } actor User participant "Mobile App" as Mobile participant "Verifier Agent" as Verifier Verifier -> Verifier: Display QR code Mobile -> Verifier: Scan QR code Mobile -> Verifier: Connect Verifier -> Mobile: Request Boarding\nPass credential Mobile -> User: Request sharing of Boarding\nPass credential User -> Mobile: Authorize sharing of Boarding\nPass credential Mobile -> Verifier: Present Boarding\nPass credential Verifier -> Verifier: Interpret Boarding\nPass credential Verifier -> Mobile: Both agents display verification result note over Verifier: Boarding Pass\npresentation stored\n on Verifier\nAgent (optional) ``` # Requirements ## SOW 18 - 3 AACO Pilots Agent development: each airline to get separate instances SITA - DTC Airline - Frequent Flyer, Visa, Boarding Pass Airline support for server agent integration/installation. May be on SITA or Airline cloud infrastructure Credential issuance/verification services: DTC (existing), Visa (lessons from demo), Boarding pass Integration with Amadeus services, Timatic. Airline/SITA will need to define an API. Documentation for 3rd parties to use for integration. Level 2/3 Support for the 3 AACO airline pilots when in pilot (make sure SoW 17 is factored) for 4 weeks. Marketing and communications support (if required) Other: Mike, add anything else that we spoke about this week. Privacy Review Ensure server agents purge data Security Review Mobile Verifier for counter agents DEGov Full Proven update Project Initiation: Complete by November 23 Project Development: Complete by December 23 (!) Prototype Testing: Complete by January 24 Operational Testing: Complete by February 24 Pilot: Complete by March 24 Pre-Productized Prototype: Complete April 24 ## SOW 17 - Embedded Digital Wallet SDK Support for the 3 AACO airline pilots RAM - Use RAM Assistant App SIF/Regula SDK SITA (Indicio) SDK UX/UI UX/UI guidance for RAM, others (?) Need to address some core visuals like rendering a boarding bar code that can be scanned. RAM - Color coded/status for visa that allows seamless enrollment Business logic updates Support only one DTC--allow user to overwrite old one Use DTC for FF account creation Privacy Review Security Review Multi-platform support: iOS and Andriod. Documentation for 3rd parties to use for integration. Ability to delete wallet VC’s Marketing and communications support (if required) Other: Mike, I’ll let you add the details we spoke about this week - Regula database updates - Incremental? - UI for download process - Progress bar, etc. - if not a background process - RAM - React Native version = 067.4 - Deployed in both iOS & Android - Need both SIF and wallet ## SOW 16 - Aruba Production SITA SOW 16 - Aruba Production Readiness Core Services: resiliency (network stability), failover, redundancy, and scalability Wallet UX: We need a UX/UI workshop with Aruba. Let’s try for the week of the DTC pilot in Nov 9/10 Schema updates: changes to the all Schemas (small) based on lessons learned the past several months Migration to MainNet: Endorser support and production Usage tracking for invoicing: include both the AHOP app and the verifier app for billing purposes Other: Mike… I forget what we also spoke about, but I think you have a good list also Transaction Endorser Tool - Most needed for revocation