@startuml
participant UI
participant phone_resend_API as API
participant phone_resend_service as service
box  #WhiteSmoke
    participant phone_resend_client as client
    participant CreateProfile as profile
    database Redis
    participant encryptDecryptService as encrypt
    participant ErrorMapperEngine as errorMapper
end box

UI -> API: phone & session
API -> service: phone & session
service -> Redis: session
Redis -> service: redis_object
service -> service: email & msisdn isn't P
service -> service: phone is P
service -> encrypt: phone
encrypt -> service: encrypted_phone
service -> client: encrypted_phone & userID

alt #transparent Success
    client -> service: OK
    service -> profile: create profile request
    profile -> service: profile
    service -> API: userID & iam_session_id
    API -> UI: userID & iam_session_id
else Failure
    client -> service: Error
    service -> API: Error
    API -> errorMapper: Error
    errorMapper -> API: mapped_error
    API -> UI: mapped_error
end
@enduml