Your CSV file must include the following header row with these exact column names:
username,email,first_name,last_name,role,phone,date_of_birth,profile_picture,kyc_status,referred_by_email,challenge_name,phase_status,account_size,currency,broker_type,mt5_account_id,mt5_password,mt5_investor_password
Note: The order of columns must match the header order exactly.
| Field | Type | Required | Description | Allowed Values / Default |
|---|---|---|---|---|
| username | String | Yes | Unique username for the client. | — |
| String (email) | Yes | Unique email for login. | — | |
| first_name | String | No | Optional first name. | — |
| last_name | String | No | Optional last name. | — |
| role | String | No | User role. | client (default), support, affiliate, risk, admin |
| phone | String | No | Optional phone number. | — |
| date_of_birth | Date (YYYY-MM-DD) | No | Optional date of birth. | — |
| profile_picture | String (URL) | No | Optional profile picture URL. | — |
| kyc_status | String | No | KYC verification status. | pending (default), approved, rejected |
| referred_by_email | String (email) | No | Optional affiliate email who referred the client. | Must match an existing affiliate email |
| challenge_name | String | Yes | Name of the challenge to enroll the client in. | Must match one of the existing Challenges in the system: - HFT (1-Step Challenge) Accounts - 2-Step Challenge Accounts |
| phase_status | String | No | Current status of challenge enrollment. | phase_1_in_progress (default), phase_1_passed, phase_2_in_progress, phase_2_passed, live_in_progress, completed, failed |
| account_size | Decimal | No | Optional account size for challenge. | 10000.00 (default) |
| currency | String | No | Optional currency code. | USD (default) |
| broker_type | String | No | Optional broker type. | mt5, mt4, or leave blank |
| mt5_account_id | String | No | Optional MT5 login ID. | — |
| mt5_password | String | No | Optional MT5 master password. | — |
| mt5_investor_password | String | No | Optional MT5 read-only password. | — |
role
client
kyc_status
pending
phase_status
phase_1_in_progress
account_size
10000.00
currency
USD
Below is an example of a valid CSV row with all fields populated:
username,email,first_name,last_name,role,phone,date_of_birth,profile_picture,kyc_status,referred_by_email,challenge_name,phase_status,account_size,currency,broker_type,mt5_account_id,mt5_password,mt5_investor_password jane_doe,jane@example.com,Jane,Doe,client,9876543210,1992-05-15,,pending,,Demo Challenge,phase_1_in_progress,50000,USD,mt5,98823802,masterpass,investorpass