user описывает учётную запись пользователя в школе Exode. Возвращается в методах user/create,
user/update, user/upsert, user/find, во вложенных полях других сущностей (счета, доступы, вебхуки) и,
вместе с объектом profile, в userWithProfile.
Состав полей строго соответствует схеме публичного ответа: служебные/приватные поля (внутренние метаданные,
токены) не возвращаются.
Поля user
Идентификаторы и логины
integer
required
ID пользователя в Exode.
string
required
UUID пользователя.
string
required
Доменный логин. Наряду с
email и phone используется как поле для входа в школу. По умолчанию генерируется
в формате id12345; свой логин (латинские буквы, цифры, _ и точки не по краям, до 65 символов) можно задать при
user/create/update/upsert.string | null
Email пользователя.
string | null
Телефон в международном формате.
integer | null
Telegram ID.
integer | null
VK ID (при авторизации через VK).
string | null
Apple ID (при авторизации через Apple).
string | null
Внешний идентификатор из вашей системы (CRM/LMS). Задаётся при
user/create/update/upsert и используется
для поиска в user/find — связывает пользователя Exode с записью в вашей базе. Логином не является —
авторизоваться по extId нельзя.integer | null
ID школы пользователя.
Статусы
enum
required
Статус учётной записи — единственный источник истины о жизненном цикле аккаунта:
Active, OnLeave, Banned, Blocked, Terminated, Deleted.Active— обычный доступ;OnLeave— «в отсутствии» (информационный, доступ не блокирует; синхронизируется автоматически с отсутствиями сотрудника, включая почасовой пересчёт по календарю);Banned— забанен администратором/модератором; при снятии бана фактический статус пересчитывается автоматически (Terminated/OnLeave/Active— по трудоустройствам и отсутствиям);Blocked— заблокирован администратором;Terminated— уволен (ставится автоматически при увольнении с последнего активного трудоустройства, повторный найм возвращаетActive);Deleted— аккаунт удалён (учётные данные затёрты, данные остаются для отчётов); ставится системой при удалении, вручную не передаётся.
Banned, Blocked, Terminated и Deleted закрывают доступ: вход запрещён, сессии завершаются,
зачисления на продукты блокируются.boolean
required
Пользователь подтвердил вход (через код/оплату).
boolean
required
Производное поле от
status: true, когда статус Banned или Deleted. Отдаётся для совместимости —
для управления блокировкой используйте status.boolean
required
Производное поле от
status: true, когда аккаунт не удалён (status ≠ Deleted). Отдаётся для
совместимости; фильтровать и управлять доступом следует по status.boolean | null
«Живой» доступ:
status не входит в блокирующие (Banned/Blocked/Terminated/Deleted).Локаль и активность
enum | null
Язык интерфейса:
Ru, Uz, En, Qa.integer | null
Смещение часового пояса относительно UTC в часах (например,
5).string | null
Последняя активность (ISO 8601).
string | null
Текущее локальное время пользователя с учётом часового пояса.
boolean | null
Эвристика «ночного» времени для пользователя.
Платформа и геймификация
integer
required
Баланс «звёзд» в системе геймификации.
Системные поля аудита
string
required
Дата создания (ISO 8601).
string
required
Дата последнего обновления (ISO 8601).
string | null
Дата архивации (ISO 8601) или
null.Поля profile
В userWithProfile объект пользователя дополнен полем profile (может быть null).
integer
required
ID профиля.
integer | null
ID пользователя.
boolean
required
Признак официального (верифицированного) профиля.
string | null
Имя.
string | null
Фамилия.
string | null
Полное имя.
string | null
Сокращённое имя.
object
Аватар пользователя — ссылки на изображение в разных размерах.
string | null
Дата рождения (
YYYY-MM-DD).enum
Пол:
Ufo, Women, Men.string | null
Страна.
string | null
Город.
enum
Роль:
Student, Tutor, Parent.string | null
Статус (произвольный текст).
string | null
Титул.
string | null
Эмодзи-титул.
object
Состояние титулов (ручные/локационные/достижения).
string
required
Дата создания профиля (ISO 8601).
string
required
Дата обновления профиля (ISO 8601).
Пример объекта userWithProfile
Обновлено: 2026-07-22 12:24 UTC