Skip to main content

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

string
обязательно
API-токен сервисного пользователя в формате Bearer YOUR_TOKEN. Токен выпускает владелец школы в кабинете: Управление → Школа → Для разработчиков → API-ключи — подробнее в разделе «Аутентификация».
integer
обязательно
Числовой ID продавца — аккаунта, которому принадлежит школа. Скопируйте его на странице API-ключи в карточке «Данные для интеграции → Идентификаторы». По этому ID проверяются права токена.
integer
обязательно
Числовой ID школы, берётся там же, где Seller-Id. Значение должно совпадать со школой продавца — иначе вернётся ошибка 400 с cause: "ForbiddenSchoolMismatch".
Требуется аутентификация и право «Управление формами» (FormManage).

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

Доступны два формата передачи значений: по slug (рекомендуемый) и по fieldId (расширенный).
integer
обязательно
Числовой ID пользователя в Exode (поле id из user/find), для которого устанавливаются значения полей. Пользователь должен принадлежать школе из заголовка School-Id.
integer
обязательно
ID макета формы, к которому принадлежат поля, — поле id из списка форм. Все поля из values должны принадлежать этому макету (иначе — FieldNotBelongsToLayout).
Откуда взять slug и fieldId. Поля формы создаются в кабинете школы (через API — нельзя); там же задаётся символьный код поля (slug). fieldId, slug и тип поля также возвращает получение значений во вложенном объекте field. Какой метод выбрать: set-by-slug удобнее — slug стабилен и тип значения подбирается по полю автоматически; set нужен, если вы уже храните fieldId у себя.

Формат 1: По slug (рекомендуемый)

Эндпоинт: POST /saas/v2/form/custom-field/value/set-by-slug Упрощённый формат — тип значения определяется автоматически на основе типа поля в макете.
object[]
обязательно
Массив значений полей. Минимум 1 элемент.

Формат 2: По fieldId (расширенный)

Эндпоинт: POST /saas/v2/form/custom-field/value/set Типизированный формат — вы сами указываете столбец для значения.
object[]
обязательно
Массив значений полей. Минимум 1 элемент.
Оба метода работают в режиме upsert — если значение поля для данного пользователя уже существует, оно будет обновлено. Если не существует — будет создано. Значение хранится одно на пару «пользователь + поле», поэтому повторный вызов безопасен и просто перезаписывает значение. Поля, не переданные в values, не изменяются. Если хотя бы одно поле из запроса не найдено или недоступно для записи, запрос отклоняется целиком.
Поля, у которых в настройках RBAC установлено api = false (доступ через API запрещён), не могут быть записаны через этот метод — вернётся ошибка FieldWritePermissionDenied. Разрешение меняется в настройках поля в кабинете.

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

Для установки значений кастомных полей требуется право «Управление формами» (FormManage) у сервисного пользователя.
Сервисный пользователь должен быть аутентифицирован по токену и иметь соответствующие права доступа к указанной школе.
Макет формы (layoutId) должен принадлежать текущей школе. Пользователь (userId) должен быть участником этой школы.

Обновлено: 2026-09-25 13:43 UTC