Enter the 6-digit code sent to your mobile number
You entered the wrong verification code 5 times โ this channel is locked for 15 minutes.
Time remaining: 15:00
A4B2
Screen Flow (per flow.puml):
/forgot-password// when returnUrl is empty&sub_cancelled=1(none — fallback to returnUrl?sub_cancelled=1)6-digit SMS verification code sub-flow. System sends the code before opening this page; user enters it; system verifies. Handles wrong code (inline error + retry), expired code (inline message + auto-resend), resend throttling, and 5-failure inline lockout (AF 3C / SS-IDP.01) โ all without page redirect.
delivery_channel "Channel" โ text ยท read-only ยท source: session.otp_channel ยท alwayscontact "Sent to" โ text ยท read-only ยท source: session.contact_full (full unmasked โ AR-7) ยท alwaysotp_code "Verification Code" โ text ยท required ยท always ยท validation: length:6, digits_onlycountdown_remaining "Expires in" โ text ยท read-only ยท computed ยท alwaysref_key "REF" โ text ยท read-only ยท source: session.otp_ref_key ยท alwaysverify "Verify" โ enabled when otp_code.length == 6 && !locked ยท triggers SUC-IDP-02-M-2resend "Resend verification code" โ enabled when not locked ยท triggers SUC-IDP-02-A-3A-2change_method "Change Method" โ always ยท back navigation to calling UC's method-selection screencontact always displayed full and unmasked โ SMS: full number (e.g. +856 20 1234 5678). session.contact_full must carry the unmasked value. [โ]