# 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