Интеграция с системой управления заявками (Enroll)

Общая схема движения заявки

ИИ Код будущего (набор весна 2025 года)

Схема появится позднее

Методы API

ВАЖНО: в любом запросе необходимо указывать код платформы. Код платформы - это транскрибированное (на латинице, без пробелов) короткое название организации, которое присылали в запросе на доступ. Это не id организации в CAT!!! Платформа привязывается к каждому курсу по списку, который отправляется в запросе на доступ. Если курса не было в списке, по нему невозможно получить информацию через api.

/api/v2/ticket_application/

Получение списка заявок по платформе и курсу (курс указывается опционально). По каждой заявке в списке возвращается unti_id, id заявки,
статус. Запрос должен содержать хедер "Authorization: Token ***" с токеном администратора платформы.

Пример get запроса

GET /api/v2/ticket_application/

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

* platform_id - код платформы, отправленный в запросе на доступ, обязательный параметр,
* course_id - id курса на Платформе У2035 (из адресной строки курса в Каталоге)
* unti_id - идентификатор пользователя (обязательно, если не указан course_id)
Возможные комбинации фильтров:
  platform_id + course_id + unti_id 
  <span class="speller-hint" data-toggle="popover" data-hint="1" data-original-title="" title="">platform</span>_id + <span class="speller-hint" data-toggle="popover" data-hint="2" data-original-title="" title="">unti</span>_id 
  platform_id + course_id.

Пример ответа

{
"id": 825024,                      / id заявки на курс /
"<span class="speller-hint" data-toggle="popover" data-hint="3" data-original-title="" title="">unti</span>_id": "1280859",              / UntiID пользователя /
"status": "approved",              / статус заявки на курс /
"future_code_module_id": null,     / ID модуля /
"future_code_module_num": null,    / номер модуля /
"<span class="speller-hint" data-toggle="popover" data-hint="4" data-original-title="" title="">transfert</span>_status": "activated",   / статус трансферта /
"admission_order_number": null,    / номер приказа о зачислении /
"admission_order_date": null,      / дата приказа о зачислении /
"expulsion_order_date": null,      / дата приказа об отчислении /
"course_id": 27211,                / ID курса /
"flow_id": 5827,                   / ID потока /
"flow_num": 4,                     / номер потока /
"pgu_id": null,                    / номер заявления в ЕПГУ /
"pgu_dt": null,                    / дата подачи заявления в ЕПГУ /
"<span class="speller-hint" data-toggle="popover" data-hint="5" data-original-title="" title="">service</span>_<span class="speller-hint" data-toggle="popover" data-hint="6" data-original-title="" title="">okato</span>": null,             / ОКАТО пользователя /
"algorithm_grade":null,            / уровень знания алгоритмов /
"language_grade": null,            / уровень знания языка /
"motivation_grade": null,          / уровень мотивации /
"end_dt": null,                    / дата прохождения ВИ /
"untill_dt": null,                 / дата автоотклонения /
"difficulty_level": "intermediate" / уровень сложности /
"<span class="speller-hint" data-toggle="popover" data-hint="7" data-original-title="" title="">cof</span>_exit_exam_status": null,      / статус прохождения испытания, допустимые значения: start (зашел на страницу итогового испытания), InProcess (приступил к итоговому испытанию), Success (успешное прохождение итогового испытания), UnSuccess (неуспешное прохождение итогового испытания) /
"exit_motivation_grade": null,     / уровень мотивации по итогу обучения /
"exit_algorithm_grade": null,      / уровень знания алгоритмов по итогу обучения /
"exit_language_grade": null,       / уровень знания языка программирования по итогу обучения /
"is_timeout": null,                / было ли завершено испытание, допустимые значения: true - испытание завершено принудительно по таймеру,
false - испытание завершено самостоятельно слушателем /
"exit_end_dt":  null,              / дата прохождения испытания по итогу обучения /
"certificate_url: "", / ссылка на скачивание сертификата
"certificate_number": "" /  номер выданного сертификата
}

* 400 если не хватает параметров в запросе или они не верны * 401 если запрос не авторизован * 403 если пользователь не является администратором указанной платформы


Ссылки на сваггеры:
тест https://cat.u2035test.ru/api/docs/#api-v2-ticket_application-list

прод https://cat.2035.university/api/docs/#api-v2-ticket_application-list

/api/v5/course/enroll/

Получение статуса заявки на курс по платформе, unti_id и id курса. В ответе приходит статус заявки.
Возможные значения статусов:
- review (На рассмотрении),
- approved (Одобрена),
- declined (Отклонена),
- expelled (Отчислен),
- accepted (Зачислен),
- transfer (Переведен).
Если нет заявки - возвращается статус null.
В запросе нужно указывать ИЛИ course_id - id курса на Платформе У2035 ИЛИ external_course_id - идентификатор курса на платформе провайдера.
Удобнее указывать course_id, как в других методах.
Запрос должен содержать хедер "Authorization: Token ***" с токеном администратора платформы.

Обратите внимание, что заполнение полей в additional_info зависит от того, кем была подана заявка. Если заявку подавал родитель, то в delegate_*
лежат данные ребенка, а в first_name, surname, middle_name, email - данные родителя. Если заявку подавал ребенок самостоятельно, delegate_*
пустые, а в first_name, surname, middle_name, email - данные самого ребенка.
Также состав полей в ответе зависит от наличия защищенного канала.

Пример get запроса

GET /api/v5/<span class="speller-hint" data-toggle="popover" data-hint="17" data-original-title="" title="">course</span>/<span class="<span class="speller-hint" data-toggle="popover" data-hint="18" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="7" data-original-title="" title="">enroll</span>/

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

* platform_id - код платформы, отправленный в запросе на доступ, обязательный параметр,
* <<span class="speller-hint" data-toggle="popover" data-hint="19" data-original-title="" title="">span</span> class="<span class="speller-hint" data-toggle="popover" data-hint="20" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="8" data-original-title="" title=""><span class="speller-hint" data-toggle="popover" data-hint="21" data-original-title="" title="">unti</span></span>_id - id пользователя, обязательный параметр,
* <span class="speller-hint" data-toggle="popover" data-hint="9" data-original-title="" title="">external</span>_<span class="speller-hint" data-toggle="popover" data-hint="10" data-original-title="" title="">course</span>_id - идентификатор курса на платформе провайдера, обязательный параметр, если не указан course_id,
* course_id - id курса на Платформе У2035 (из адресной строки курса в Каталоге), обязательный параметр, если не указан external_course_id

Пример ответа

*{
"application_id": 123456,                   / id заявки на курс /"application_status": "review",             / статус заявки на курс /
"<span class="speller-hint" data-toggle="popover" data-hint="22" data-original-title="" title="">transfert</span>_status": null,                   / статус трансферта /
"admission_number": null,                   / номер приказа о зачислении /
"admission_order_date": null,               / дата приказа о зачислении /
"expulsion_order_date": null,               / дата приказа об отчислении/
"course_id": 19353,                         / ID курса /
"future_code_module_id": null,              / ID модуля /
"future_code_module_number": null,          / номер модуля /
"flow_id": null,                            / ID потока /
"pgu_id": 764472654,                        / номер заявления в ЕПГУ /
"pgu_dt": "2022-06-22T21:00:00Z",           / дата подачи заявления в ЕПГУ /
"additional_info":
{"first_name": "Ученика",                      / Фамилия ученика или родителя, только под VPN /
"<span class="speller-hint" data-toggle="popover" data-hint="23" data-original-title="" title="">surname</span>": "<span class="speller-hint" data-toggle="popover" data-hint="24" data-original-title="" title="">Ученико</span>",                          / Имя ученика или родителя, только под VPN /
"middle_name": "Ученику",                      / Отчество ученика или родителя, только под VPN /
"email": "Ducts19501231235566@armyspy.com",    / Email ученика или родителя, только под VPN /
"delegate_first_name": null,                   / Фамилия ученика, только под VPN /
"delegate_surname": null,                      / Имя ученика, только под VPN /
"delegate_middle_name": "Нет отчества",        / Отчество ученика, только под VPN /
"delegate_email": null,                        / Email ученика, только под VPN /
"service_okato": "14000000000",                / ОКАТО пользователя, только под VPN /
"course_address": "Москва, метро Марьино",     / адрес курса /
"course_latitude": 37.74483,                   / широта /
"course_longitude": 55.649168,                 / долгота /
"course_okato": "45000000000"                  / ОКАТО курса/"algorithm_grade": null,                       / уровень знания алгоритмов  /
"language_grade": null,                        / уровень знания языка /
"motivation_grade": null,                      / уровень мотивации /
"end_dt": null,                                / дата прохождения ВИ /
"untill_dt": null,                             / дата автоотклонения /
"difficulty_level": "intermediate"             / уровень сложности /
"<span class="speller-hint" data-toggle="popover" data-hint="11" data-original-title="" title="">cof</span>_exit_exam_status": null,                  / статус прохождения испытания, допустимые значения: start (зашел на страницу итогового испытания), InProcess (приступил к итоговому испытанию), Success (успешное прохождение итогового испытания), UnSuccess (неуспешное прохождение итогового испытания) /
"exit_motivation_grade": null,                 / уровень мотивации по итогу обучения /
"exit_algorithm_grade": null,                  / уровень знания алгоритмов по итогу обучения /
"exit_language_grade": null,                   / уровень знания языка программирования по итогу обучения /
"is_timeout": null,                            / было ли завершено испытание, допустимые значения: true - испытание завершено принудительно по таймеру, 
false - испытание завершено самостоятельно слушателем /
"exit_end_dt": null,                           / дата прохождения испытания по итогу обучения  /
"certificate_url: "", / ссылка на скачивание сертификата
"certificate_number": "" /  номер выданного сертификата
}

* 400 если не хватает параметров в запросе или они не верны
* 401 если запрос не авторизован
* 403 если пользователь не является администратором указанной платформы
* 404 если не найден пользователь/курс

Ссылки на сваггеры:

тест https://cat.u2035test.ru/api/docs/#api-v5-course-enroll-list
прод https://cat.2035.university/api/docs/#api-v5-course-enroll-list.

/api/v6/course/enroll/update/

Изменение статуса заявки на курс по платформе, unti_id, id курса или идентификатору заявки, или изменение уровня сложности по платформе и идентификатору заявки.

Для разных статусов надо передавать разный набор параметров. Отдельный набор параметров используется также для передачи уровня сложности.
Запрос должен содержать хедер "Authorization: Token ***" с токеном администратора платформы.

Пример post запроса

POST /api/v6/<span class="speller-hint" data-toggle="popover" data-hint="28" data-original-title="" title="">course</span>/<span class="<span class="speller-hint" data-toggle="popover" data-hint="29" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="15" data-original-title="" title="">enroll</span>/update/{
    "platform_id": "platform",
    "application_id": 1,
    "unti_id": 1
    "course_id": 1,
    "status": "declined",
    "difficulty_level": "intermediate"
}

Общие параметры post запроса

* platform_id - код платформы, отправленный в запросе на доступ, обязательный параметр,
* <span class="speller-hint" data-toggle="popover" data-hint="16" data-original-title="" title="">unti</span>_id - <span class="speller-hint" data-toggle="popover" data-hint="17" data-original-title="" title="">unti</span>_id пользователя, обязательный параметр,
* course_id - id курса на Платформе У2035 (из адресной строки курса в Каталоге), обязательный параметр,
* application_id - идентификатор заявки, обязательный параметр, если не указаны unti_id, course_id,
* status - str, обязательный параметр. Возможные значения: (review (На рассмотрении), approved (<span class="<span class="speller-hint" data-toggle="popover" data-hint="30" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="18" data-original-title="" title="">Одобрена</span>), 
declined (Отклонена), expelled (Отчислен), accepted (Зачислен), transfer (Переведен), finished (завершена).

Дополнительные параметры для простановки статуса approved

* flow - id потока, обязательный параметр,
* enter_exam_date - дата в формате "%Y-%m-%d", обязательный параметр (актуально для проекта КБ 1 волны)

Дополнительные параметры для простановки статуса declined

* reason_choice - str, код причины отчисления, обязательный параметр
Возможные варианты: application_deadline (Получатель услуги не воспользовался возможностью прохождения Вступительного испытания (истечение срока заявки)), enter_exam_fail (Вступительные испытания пройдены неуспешно), by_recipient (Отклонено в связи с обращением заявителя/получателя поддержки), not_support_recipient (Заявитель не является получателем поддержки), no_places (Отсутствие свободного места на площадке Провайдера), provider_transfer (Перевод от Провайдера), other (Иное).

Изменение уровня сложности, возможно только если заявка в статусе approved

* platform_id - идентификатор платформы, обязательный параметр,
* application_id - идентификатор заявки, обязательный параметр,
* difficulty_level - str, уровень сложности, возможные значения: intermediate, elementary, advanced

Дополнительные параметры для простановки статуса expelled

При назначении этого статуса необходимо приложить файлы, указав тип содержимого multipart/form-data.

* reason_choice - str, код причины отчисления, обязательный параметр
Возможные варианты:
                  reason_expelled_legitimate_user_application (По желанию заявителя)
                  reason_expelled_legitimate_blocked (В связи с блоком на ЕПГУ)
                  reason_expelled_legitimate_illness (Заболевание, амбулаторное, стационарное, санаторное лечение)
                  <span class="speller-hint" data-toggle="popover" data-hint="19" data-original-title="" title="">reason</span>_expelled_legitimate_<span class="speller-hint" data-toggle="popover" data-hint="20" data-original-title="" title="">accomodation</span> (Изменение места жительства)
                  reason_expelled_legitimate_family (Особые семейные обстоятельства)
                  reason_expelled_legitimate_war (Особые условия нахождения Получателя услуги)
                  reason_expelled_legitimate_army (Невозможность завершения обучения)
                  reason_expelled_legitimate_provider_error (Ошибочно зачислен Провайдером)
                  reason_expelled_legitimate_other (Другое - уважительная)
                  <span class="speller-hint" data-toggle="popover" data-hint="21" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="22" data-original-title="" title="">not</span>_legitimate_absence (Непосещаемость)
                  <span class="speller-hint" data-toggle="popover" data-hint="23" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="24" data-original-title="" title="">not</span>_legitimate_exam_failed (Неуспешная сдача промежуточной аттестации)
                  <span class="speller-hint" data-toggle="popover" data-hint="25" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="26" data-original-title="" title="">not</span>_legitimate_no_document (Отсутствие справки)
                  <span class="speller-hint" data-toggle="popover" data-hint="27" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="28" data-original-title="" title="">not</span>_legitimate_no_contract (Незаключение договора)
                  <span class="speller-hint" data-toggle="popover" data-hint="29" data-original-title="" title="">reason</span>_expelled_<span class="speller-hint" data-toggle="popover" data-hint="30" data-original-title="" title="">not</span>_legitimate_other (Другое - неуважительная)
* reason_file - файл с подтверждением причины отчисления, 
* reason_file_ds - файл с ЭЦП.

Дополнительные параметры для простановки статуса accepted
Теперь можно при переводе в accepted указывать уровень сложности и не передавать его отдельно.

* accept_date - дата в формате "%Y-%m-%d", дата зачисления слушателя, обязательный параметр
* admission_order_date - дата в формате "%Y-%m-%d", дата приказа о зачислении, обязательный параметр
* admission_order_number - str, номер приказа о зачислении, обязательный параметр
* employer_pays - true/false, за слушателя платит работодатель, если не передано, считается false
* employer_price - decimal c точностью до сотых, сумма оплаты Работодателем,
                   обязательно если employer_pays == true
* employer_ogrn - строка, содержащая только цифры, ОГРН/ОГРНИП Работодателя,
                  обязательно если employer_pays == true
* employer_name - строка, Наименование работодателя,
                  обязательно если employer_pays == true
* difficulty_level - str, возможные значения: intermediate, elementary, advanced

Изменение уровня сложности, возможно только если заявка в статусе accepted

* platform_id - идентификатор платформы, обязательный параметр,
* application_id - идентификатор заявки, обязательный параметр,
* difficulty_level - str, уровень сложности, возможные значения: intermediate, elementary, advanced

Пример ответа

* 200 {"success": true} * 400 если переданы некорректные параметры или нельзя изменить статус * 401 если запрос не авторизован * 403 если пользователь не является администратором указанной платформы * 404 если не найден пользователь/курс/заявка
При простановке уровня сложности:
1. при первичной простановке уровня сложности будет - {“success”: true}
2. если мы ещё раз дошлем такой же уровень сложности то будет - {"status": "application is already have difficulty_level - intermediate"}

Ссылки на сваггеры:
тест https://cat.u2035test.ru/api/docs/#api-v6-course-enroll-update-create

прод https://cat.2035.university/api/docs/#api-v6-course-enroll-update-create.

Обратите внимание, что POST запрос должен содержать параметры в теле запроса, а не в параметрах, например:

curl --location --request POST '<a class="external-link" href="https://cat.2035.university/api/v6/course/<span class="speller-hint" data-toggle="popover" data-hint="31" data-original-title="" title="">enroll</span>/update/">https://cat.2035.university/api/v6/course/enroll/update/</a>' \ 
--header 'Authorization: Token ХХХХХ' \ 
--header 'Content-Type: application/json' \ --data-raw '{ 
"unti_id": 1111111, 
"course_id": 21111111, 
"status": "declined", 
"platform_id": "autotest", }'

/api/v1/course-change-request/


Получение списка курсов, на которые можно переводить

Перевод с курса на курс


Получить список доступных ид курсов. Запрос должен содержать хедер "Authorization: Token ***" с токеном пользователя, имеющего доступ для редактирования курса

Пример get запроса

GET /api/v1/course-change-request/?application_id=1&unti_id=222&course_id=123

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

* application_id - id заявки, обязательный параметр
* <span class="speller-hint" data-toggle="popover" data-hint="32" data-original-title="" title="">unti</span>_id - <span class="speller-hint" data-toggle="popover" data-hint="33" data-original-title="" title="">unti</span>_id пользователя, передается вместе с course_id
* course_id - id курса, передается вместе с unti_id

Пример ответа

* <span class="speller-hint" data-toggle="popover" data-hint="34" data-original-title="" title="">200</span> {"<span class="speller-hint" data-toggle="popover" data-hint="35" data-original-title="" title="">avaliable</span>_course_ids": [1,2,3]}
* 400 Не переданы unti_id + course_id или application_id
* 401 запрос не авторизован
* 403 у пользователя нет доступа к курсу
* 404 курс не найден

Перевод заявки на курс

Пример post запроса

POST /api/v1/course-change-request/

Тело запроса

{
    "course_id": 111,
    "application_id": 2222,
}

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

* <span class="speller-hint" data-toggle="popover" data-hint="36" data-original-title="" title="">course</span>_id - id курса в каталоге (int) или uuid в <span class="speller-hint" data-toggle="popover" data-hint="37" data-original-title="" title="">rall</span>, обязательный параметр
* application_id - id заявки, обязательный параметр

Пример ответа

* <span class="speller-hint" data-toggle="popover" data-hint="38" data-original-title="" title="">200</span> {"<span class="speller-hint" data-toggle="popover" data-hint="39" data-original-title="" title="">succes</span>": True, "id": 123} - заявка
* 400 не передан обязательный параметр или такой набор тегов нельзя добавить из-за нарушения иерархии
* 401 запрос не авторизован
* 403 у пользователя нет доступа к курсу
* 404 Заявка не найдена

Ссылки на сваггеры:

тест https://cat.u2035test.ru/api/docs/#api-v1-course-change-request-list
прод https://cat.2035.university/api/docs/#api-v1-course-change-request-list


тест https://cat.u2035test.ru/api/docs/#api-v1-course-change-request-create
прод https://cat.2035.university/api/docs/#api-v1-course-change-request-create

/api/v6/course/enroll/specify/

Уточнение данных по реквизитам приказа

Пример post запроса

POST /api/v6/<span class="speller-hint" data-toggle="popover" data-hint="35" data-original-title="" title="">course</span>/<span class="<span class="speller-hint" data-toggle="popover" data-hint="36" data-original-title="" title="">speller</span>-hint" data-toggle="popover" data-hint="42" data-original-title="" title="">enroll</span>/specify/{
    "application_id": 1,
    "platform_id": "platform",
    "accept_date": 2023-01-01,
    "admission_order_date": 2023-01-01,
    "admission_order_number": 1325345
}

Общие параметры POST запроса (заявка должна быть в статусе accepted и должен быть хотя бы один параметр)

* <span class="speller-hint" data-toggle="popover" data-hint="43" data-original-title="" title="">application</span>_id - <span class="speller-hint" data-toggle="popover" data-hint="44" data-original-title="" title="">индентификатор</span> заявки, обязательный параметр
* <span class="speller-hint" data-toggle="popover" data-hint="45" data-original-title="" title="">platform</span>_id - <span class="speller-hint" data-toggle="popover" data-hint="46" data-original-title="" title="">индентификатор</span> платформы, обязательный параметр
* accept_date - дата в формате "%Y-%m-%d", дата зачисления слушателя, необязательный параметр
* admission_order_date - дата в формате "%Y-%m-%d", дата приказа о зачислении, необязательный параметр
* admission_order_number - str, номер приказа о зачислении, необязательный параметр

Пример ответа

* 200 {"success": true}
* 400 если переданы некорректные параметры
* 401 если запрос не авторизован
* 403 если пользователь не является администратором указанной платформы
* 404 если не найден пользователь/курс/заявка

Ссылки на сваггеры:
прод https://cat.2035.university/api/docs/#api-v6-course-enroll-specify-create

Тестирование

Тестирование производится на продуктовой среде на тестовых заявках, созданных отдельно для каждого провайдера.

URL API Enroll для теста https://cat.2035.university/.
Пример урла для теста: https://cat.2035.university/api/v5/course/enroll/.

Подготовка к тестированию

Для того, чтобы интегрироваться в части управления заявками, необходимо:

Написать заявку на тестовый доступ к API управления заявками на почту apps@2035.university. Для запроса доступа необходимо с корпоративного адреса отправить письмо на apps@2035.university, тема письма - Доступы в API Enroll на проект «ИИ Код будущего 2025» организации _Полное_название_организации_»,
в теле письма должно быть:

    1. Проект: ИИ Код будущего 2025;
    2. Полное название организации;
    3. Контур: тестовый;
    4. Ответственное за интеграцию лицо:
      • ФИО
      • email
      • телефон.
    5. почта ответственного;
    6. транскрибированное (на латинице, без пробелов) короткое название организации (код платформы);
    7. ссылка на главную страницу организации (не на ЛК организации в У2035, а на официальный сайт ОО).


В течение 3 дней будет выдан доступ, в письме вы получите токен, номер курса для тестирования и id двух заявок для тестирования.
С этого момента можно приступать к тестированию функционала.

Для первой заявки проводится первый цикл тестирования

В первый цикл входит следующий набор действий:

  1. Получить статус заявки, используя /api/v2/ticket_application/ или /api/v2/ticket_application/.
  2. Отклонить заявку, используя /api/v6/course/enroll/update/.

Визуально после каждого шага можно убедиться в наличии заявки с соответствующим статусом в личном кабинете организации.
На этом завершается первый цикл тестирования.

Со второй заявкой проводится второй цикл тестирования.

Во второй цикл входит следующий набор действий:

  1. Получить статус заявки, используя /api/v2/ticket_application/ или /api/v2/ticket_application/.
  2. Одобрить заявку, используя /api/v6/course/enroll/update/.
    1. Для одобрения понадобится ID потока.
    2. ID потока можно увидеть на странице Потоки в разделе Управление курсами в ЛК в Каталоге.
  3. Отклонить заявку, используя /api/v6/course/enroll/update/.

Визуально после каждого шага можно убедиться в наличии заявки в личном кабинете организации. Там же отображается статус заявки.
Обратите внимание, что после отклонения заявки ее статус больше изменить нельзя!

После прохождения второго цикла испытаний нужно написать заявку на доступ в продуктовый контур.

Продуктовый контур

Доступ выдается только к опубликованным курсам.

Для перехода в продуктовый контур необходимо:

  1. Написать заявку на доступ к продуктовому API управления заявками на почту apps@2035.university, тема письма - Доступы к API Enroll на проект «ИИ Код будущего 2025» организации _Полное_название_организации_»,
    в теле письма должно быть:

    1. Проект: ИИ Код будущего 2025;
    2. Полное название организации;
    3. Контур: промышленный;
    4. Ответственное за интеграцию лицо:

      • ФИО
      • email
      • телефон.
    5. почта ответственного;
    6. ссылки на одобренные курсы на Платформе У2035, + по каждому идентификаторы курсов на платформе образовательной организации (целое уникальное число);
    7. транскрибированное (на латинице, без пробелов) короткое название организации (код платформы);
    8. ссылка на главную страницу организации (не на ЛК организации в У2035, а на официальный сайт ОО).
  2. Доступ в продуктовый контур выдается в течение 3 рабочих дней только к опубликованным курсам.

Эндпойнты для тестового и продуктового контура совпадают.
URL API Enroll для продуктового контура: https://cat.2035.university/.
Пример урла для продуктового контура: https://cat.2035.university/api/v5/course/enroll/.

Ограничения в продуктовом контуре

Ограничение по работе с заявками: не более 1 запроса в секунду.

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

URL API Enroll для продакшена https://cat.2035.university/.
ID потока можно увидеть на странице Потоки в разделе Управление курсами в ЛК в Каталоге.

Обратите внимание, что после отклонения заявки ее статус больше изменить нельзя!