## Авторизация Используется кастомный header `X-Erp-Integration` Значение хранится в конфигах у системы СУП. Для дев и прод разные значения. Данные передаются в формате base64, при получении значения необходимо его раскодировать и сравнить со значением хранящимся в конфиге. Если значения не соответствуют, то вернуть ошибку и код HTTP 403 - Unauthorized. ## Создание некоммерческого проекта Используется endpoint с методом POST Предлагаемый вариант `api/1.0/openRequest/createPresaleProject` **Обсудить данный момент после реализации и предоставить команде CRM** ### Запрос ```json { "orderName": "Альфа-Пласт ADC", "orderDate": "2025-12-31", "clientId": "123-123-123", // Значение `Код клиента из R3` "managerProjectId": "00123456", // Значение ИНС "headProjectId": "00123457", // Значение ИНС "directorProjectId": "00123458", // Значение ИНС "orderAmount": 12345.67, "productAttribute": 1, // (1 - ПО/ПО+ТП/ТП. 2 - Консалтинг. 3 - ПО+ТП+Консалтинг/ТП+Консалтинг/ПО+Консалтинг) "applicationId": "57ef229c-d8e4-4da5-b87a-7205e7eb7c43", "projectId": "" // AP ID (Пустое - создание проекта. Заполненное - редактирование проекта) } ``` ### Ответ Успешный ```json { "success": true, "errorMessage": "" } ``` Неуспешный ```json { "success": false, "errorMessage": "Текст ошибки" } ``` ## Проверка готовности создания проекта Используется endpoint с методом GET Предлагаемый вариант `api/1.0/openRequest/view?applicationId={applicationId}` **Обсудить данный момент после реализации и предоставить команде CRM** Главная суть метода, что мы по значению `applicationId` из пункта `Создание некоммерческого проекта` получаем готовность создания проекта. Проект считается созданным, если у него заполнено поле `ProjectId` (уточнить как называется в базе данных поле `AP ID`) ### Ответ Проект еще создается ```json { "status": "Waiting", "projectId": "", "errorMessage": "" } ``` Создание проекта завершено ```json { "status": "Success", "projectId": "123-123-124", "errorMessage": "" } ``` Ошибка при создании проекта ```json { "status": "Error", "projectId": "", "errorMessage": "Описание ошибки" } ```