swiyu_taler_sequence_diagram.txt (2538B)
1 sequenceDiagram 2 title Swiyu-Taler Interaction 3 4 participant Browser 5 participant TalerWallet 6 participant Exchange 7 participant Oauth2Gateway 8 participant SwiyuVerifier 9 participant SwiyuWallet 10 11 TalerWallet ->> Exchange: Initiate KYC-required operation 12 Exchange -->> TalerWallet: Send verification link 13 TalerWallet ->> Browser: Open link 14 Browser ->> Exchange: Select verification method (Swiyu) 15 16 note over Exchange,Oauth2Gateway: Exchange initiates KYC verification process 17 Exchange ->> Oauth2Gateway: POST /setup/$CLIENT_ID 18 Oauth2Gateway -->> Exchange: $NONCE 19 Exchange ->> Browser: Send /authorize endpoint 20 21 Browser ->> Oauth2Gateway: GET /authorize/$NONCE... 22 Oauth2Gateway ->> SwiyuVerifier: POST /management/api/verifications 23 SwiyuVerifier -->> Oauth2Gateway: $VERIFICATION_URL, $REQUEST_ID 24 Oauth2Gateway -->> Browser: Send $VERIFICATION_URL 25 26 Browser ->> Oauth2Gateway: Poll Verification Status 27 Browser ->> SwiyuWallet: Open $VERIFICATION_URL 28 SwiyuWallet ->> SwiyuVerifier: GET /oid4vp/api/request-object/{request_id} (DCQL Query) 29 SwiyuVerifier -->> SwiyuWallet: verification presentation definition 30 SwiyuWallet ->> SwiyuVerifier: GET verifier_metadata 31 SwiyuVerifier -->> SwiyuWallet: return metadata 32 SwiyuWallet ->> SwiyuWallet: Grant Permission 33 SwiyuWallet ->> SwiyuVerifier: POST /oid4vp/api/request-object/{request_id}/response-data (VP Token) 34 35 note over Oauth2Gateway,Exchange: Oauth2Gateway receives webhook and retrieves swiyu wallet response 36 SwiyuVerifier ->> Oauth2Gateway: POST /notification {verification_id, timestamp} 37 Oauth2Gateway ->> SwiyuVerifier: GET /management/api/verifications/{verification_id} 38 SwiyuVerifier -->> Oauth2Gateway: {state: SUCCESS/FAILED, wallet_response} 39 Oauth2Gateway -->> Browser: Notify verification result 40 Oauth2Gateway ->> Exchange: POST /oauth2gw/kyc/notify/$CLIENT_ID {status} 41 42 note over Exchange,Oauth2Gateway: Exchange retrieves the final proof (Verifiable Credential) 43 Exchange ->> Oauth2Gateway: POST /token 44 Oauth2Gateway -->> Exchange: Access token 45 Exchange ->> Oauth2Gateway: GET /info (with access token) 46 Oauth2Gateway ->> SwiyuVerifier: GET /management/api/verifications/{verificationId} 47 SwiyuVerifier -->> Oauth2Gateway: Send proof (Verifiable Credential) 48 Oauth2Gateway -->> Exchange: Send proof (in response body) 49 50 Exchange -->> TalerWallet: Notify success 51 TalerWallet ->> Exchange: Retry original operation 52