Project

General

Profile

Onboarding Foreign » History » Revision 6

Revision 5 (Ryan Supawarapong, 02/27/2026 07:10 AM) → Revision 6/11 (Ryan Supawarapong, 03/02/2026 01:44 AM)

# Onboarding Foreign 

 Changes: 
 |page|details| 
 |--|--| 
 |1|remove thai title, name, lastname, laser code, id card number| 
 |1|add passport| 
 |2|new page| 
 |5|new page| 
 |6|chnage email link from thaid to success page| 

 Workflow Diagram 

 <img style="width: 291px;" src="clipboard-202602271329-bsehb.png"><br> 

 ``` 
 @startuml onboarding foreign 

 start 
 :fullname; 
 note right: page 1 
 :appman; 
 note right: acecoin 
 :eligibleCheck; 
 note right: page 2 new 
 :crsQuestion; 
 note right: page 2 new 
 :currentAddress; 
 note right: page 3 Basic info 
 :occupation; 
 note right: page 3 Basic info 
 :sourceOfIncome; 
 note right: page 3 Basic info 
 :workAddress; 
 note right: page 3 Basic info 
 :bank; 
 note right: page 3 Basic info 
 :suitabilityTest; 
 note right: page 4 
 :selectDocument; 
 note right: page 5 new 
 :uploadDocument;  
 note right: page 5 new 
 :email mobile verify; 
 note right: page 6 
 end  
 @enduml 

 ``` 

 ## Sequence Diagram 
 <img style="width: 797px;" src="clipboard-202603020844-povww.png"><br> 1292px;" src="clipboard-202602271410-821bj.png"><br> 

 ``` 
 @startuml 

 title Onboarding Foreigner 

 actor "customer" as c 
 participant "frontend" as fe 
 participant "backend" as be 
 database "database" as db 
 participant "notification" as n 
 participant "appman" as ap 


 c -> fe: choose Foreign Investor 
 fe --> c: ok 

 group Fullname Page 

 c -> fe: fill fullname, email, mobile and passport detail 
 fe -> be: send fullname, email, mobile and passport detail 

 be -> db: check for existing email, mobile and passport 
 db --> be: not found 
 be -> db: create user entry in information 
 db --> be: ok 
 be --> fe: ok & redirect to appman page (init by BE) 
 fe --> c: show next page (Appman) 

   group Back to Register 
     db --> be: found 
     be --> fe: found existing user 
     fe --> c: this account already exist. "Enter passport no" 
     c -> fe: enter passport no 
     fe --> be: check passport no for existing user 
   end 

 end 

 group Appman Page 
   c -> ap: do passport 
   ap --> fe: redirect to next page(CRS) 
 end 

 group CRS page 
   fe -> be: send appman state code 
   be -> ap: request customer data 
   ap --> be: send customer data 
   be --> fe: ok 
  
   c -> fe: do eligibility 
   fe --> c: ok 
   c -> fe: TIN detail for CRS 
   fe -> be: send Tin detail 
   be -> db: save TIN 
   db --> be: ok 
   be --> fe: ok 
   fe --> c: redirect to next page(basic info) 
 end 

 group Basic Info page 

   c -> fe: input data 
   fe -> be: same info (Same as regular onboarding) 
   be -> db: save info 
   db --> be: ok 
   be --> fe: ok 
   fe --> c: redirect to next page(Suite test) 
 end 

 group Suite test 
   c -> fe: do suite test 
   fe -> be: send suite test result 
   be -> db: save suite test result 
   db --> be: ok 
   db --> fe: ok 
   fe --> c: redirect to next page(verification document) 
 end 

 group Verification Document 

   c -> fe: choose type & upload document 
   fe -> be: document & document type 
   be -> db: save document & document type 
   db --> be: ok 
   be --> fe: ok 
   fe --> c: redirect to next page(verify email and mobile) 

 end 

 group Veirfy Email and Mobile 

   c -> fe: verify mobile 
   fe -> be: request sms otp 
   be -> n: send sms otp 
   n --> be: ok 
   be --> fe: ok 
   n -> c: sms otp 
   c -> fe: input otp 
   fe -> be: otp code 
   be -> db: check otp code 
   db --> be: ok 
   be --> fe: ok 
   fe --> c: ok 

   c -> fe: verify email 
   fe -> be: request verification link 
   be -> n: send email with link 
   n --> be: ok 
   be --> fe: ok 
   n -> c: email with link 

   c -> fe: click link 
   fe -> be: jwt token 
   be -> be: check jwt token 
   be -> db: update status 
   db --> be: ok 
   be --> fe: ok 
   fe --> c: ok 

 end 

 @enduml 
 ```