---
# System prepended metadata

title: 3 AACO Pilots

---

# 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