Skip to main content
Upsert — это операция “создать или обновить”. Если пользователь с указанным email, телефоном, Telegram ID или внешним идентификатором extId уже существует — его данные будут обновлены. Если пользователя нет — он будет создан.

Заголовки запроса

Authorization
string
required
API токен сервисного пользователя в формате Bearer. Получите токен в панели администратора школы. Формат: Bearer YOUR_TOKEN.
Seller-Id
string
required
Уникальный идентификатор продавца в системе. Используется для разграничения доступа между разными продавцами.
School-Id
string
required
Уникальный идентификатор школы в системе. Определяет контекст выполнения операции.

Параметры запроса

Для определения существующего пользователя по логину — передайте хотя бы один из ниже перечисленных параметров, в противном случае пользователь будет создаваться при каждом запросе.
В случае если пользователь найден по указанным ниже полям — произойдет только его обновление. В случае создания — логин и пароль для входа отправятся новому пользователю автоматически.
email
string
Email адрес пользователя. Должен быть валидным email форматом. При передаче пустой строки — преобразуется в null.
phone
string
Номер телефона пользователя. Должен быть в международном формате (например, +9876543210). При передаче пустой строки — преобразуется в null.
tgId
integer
Telegram ID пользователя. Целое число или null.
extId
string
Внешний идентификатор пользователя из вашей системы. Строка или null.

Параметры профиля

profile
object
Объект с данными профиля пользователя.
При создании пользователя автоматически создается связанный профиль с указанными данными. Если профиль не указан, создается пустой профиль, поля firstName и lastName будут заполнены пользователем при первом входе в аккаунт.
curl --location --request PUT 'https://api.exode.biz/saas/v2/user/upsert' \
  --header 'Seller-Id: {{ sellerId }}' \
  --header 'School-Id: {{ schoolId }}' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --data-raw '{
    "email": "[email protected]",
    "phone": "+9876543210",
    "extId": "crm_12345",
    "tgId": null,
    "banned": false,
    "profile": {
      "firstName": "Firstname",
      "lastName": "Lastname",
      "bdate": "1990-01-01",
      "sex": "Men",
      "role": "Student"
    }
  }'
{
  "success": true,
  "code": 200,
  "payload": {
    "isCreated": true,
    "user": {
      "id": 123,
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "active": true,
      "activated": true,
      "banned": false,
      "tgId": null,
      "domain": null,
      "email": "[email protected]",
      "phone": "+987654321",
      "language": null,
      "timezone": null,
      "lastOnlineAt": null,
      "starsBalance": 0,
      "createdAt": "2024-01-15T10:30:00Z",
      "updatedAt": "2024-01-15T10:30:00Z",
      "profile": {
        "id": 456,
        "firstName": "Firstname",
        "lastName": "Lastname",
        "bdate": "1990-01-01",
        "sex": "Male",
        "role": "Student",
        "createdAt": "2024-01-15T10:30:00Z",
        "updatedAt": "2024-01-15T10:30:00Z"
      }
    }
  }
}

Требования к правам доступа

Для создания или обновления пользователя требуется право на управление пользователями школы.
Сервисный пользователь должен быть аутентифицирован по токену и иметь соответствующие права доступа к указанной школе.
При установке статуса banned: true все активные сессии пользователя автоматически завершаются — это реализовано для обеспечения безопасности.