Заметки
lists.element.add не видит IBLOCK_ID из-за лишнего fields
Сообщение про отсутствующий IBLOCK_CODE сбивает с толку, когда в запрос уже передан IBLOCK_ID. Одна из причин — весь запрос завёрнут в fields, и метод не видит идентификатор списка на ожидаемом уровне.
В lists.element.add тип списка, его ID и символьный код нового элемента передаются отдельно. Только значения полей элемента находятся внутри FIELDS:
{
"IBLOCK_TYPE_ID": "lists",
"IBLOCK_ID": 12,
"ELEMENT_CODE": "demo-request-001",
"FIELDS": {
"NAME": "Заявка на доступ"
}
} Здесь 12 — пример ID списка, а demo-request-001 — символьный код создаваемого элемента. Для другого элемента нужен другой код. Достаточно передать IBLOCK_ID или IBLOCK_CODE; требование не означает, что всегда нужны оба.
Значение IBLOCK_TYPE_ID тоже имеет смысл: lists — обычные списки, bitrix_processes — процессы в ленте, lists_socnet — списки групп. Для группового списка нужен соответствующий контекст группы.
Если после исправления структуры приходит ACCESS_DENIED, это уже другой ответ: проверьте доступ владельца вебхука к выбранному списку. Скоуп REST и права на конкретный список — разные настройки.
Для файлового свойства есть отдельный пример загрузки файла в список.
Документация: lists.element.add.