Appearance
Registration & Onboarding
New users go through a multi-step onboarding process: account creation, email verification, terms acceptance, and KYC document submission.
Flow Overview
1. Register Account
| Route | /register |
| Layout | PublicLayout (no auth required) |
| Steps | 2-step flow via stepper |
Step 1 — Account Details
- Email input with format validation
- Password creation (8+ chars, requires upper, lower, number, special)
- Password confirmation
- Referral source selection (dropdown from CMS)
- Referral code (optional)
- Terms acceptance — multiple checkboxes, each opens a scrollable terms dialog. User must scroll to the bottom before accepting.
Step 2 — Email Verification
- 6-digit OTP sent to email
- 2-minute cooldown before resend is available
- On verification success → auto-login and redirect to dashboard
Existing User Path
If a returning user has not accepted updated terms, they are redirected to the terms-only flow (no re-registration needed).
2. Accept Terms & Conditions
| Route | /terms-conditions |
| Layout | PublicLayout |
- Loads required terms from CMS (Directus)
- Each term must be opened and scrolled to the end before checkbox can be checked
- OTP verification after accepting all terms
- On success → navigate to dashboard
3. Submit KYC Information
| Route | /update-kyc |
| Layout | MainLayout (authenticated) |
This is the primary KYC form supporting both Personal and Business accounts.
Personal Account Fields
- Citizenship type (Thai / Foreign)
- Title, first name, last name (Thai & English)
- Phone number (international format)
- Date of birth (age validation: 18–70)
- ID card or passport with expiry date
- Identity documents (ID card photo, selfie — or 2 sets for foreigners)
- Registered address (Thai citizens only)
- Current address (with "same as registered" option)
- PEP (Politically Exposed Person) status
- Occupation and workplace
Business Account Fields
- Company registration number
- Company name
- Business address
- Articles of Association / Certificate of Incorporation
- Authorized person details and director/shareholder documents
Bank Account (second panel)
- Bank name, account name, account number
- Book bank photo upload
Validations
- Thai ID: 13-digit checksum validation
- Passport: format validation
- ID/passport duplication check (calls .NET backend)
- Address cascading: Province → District → Sub-district → Postcode
4. Upgrade KYC Tier
| Route | /upgrade-kyc |
| Layout | MainLayout (authenticated) |
Upgrade through KYC levels for higher loan limits. See KYC Tiers & Limits for tier details.
Each tier upgrade requires submitting additional documents:
| Tier | Requirements | Access |
|---|---|---|
| 0 | Registration complete | Wallet only |
| 1 | ID/Passport + Selfie | Small loans |
| 2 | Address proof + Occupation | Higher limits |
| 3 | Source of funds + PEP declaration | Maximum limits |
5. Resubmit KYC
| Route | /update-kyc |
| Layout | MainLayout (authenticated) |
When admin requests a revision, the user is notified and redirected back to the KYC form to correct and resubmit.
What the user sees
- Notification banner indicating which fields need correction
- KYC form pre-filled with previously submitted data
- Flagged fields highlighted for the user to update
- Previously uploaded documents still available (no need to re-upload unless flagged)
- On resubmit → KYC status returns to
pendingfor admin review
Revision cycle
- There is no limit on the number of revision cycles
- Each resubmission resets
kyc_statustopending - Admin can approve, request another revision, or reject at any review
Next: Authentication →