Описание протокола #3022

Все POST и PATCH запросы должны содержать тело в формате JSON и иметь заголовок Content-Type: application/json.

Точно также, все ответы на любые запросы будут приходить в формате JSON.


Точка входа API
https://api.megacrm.ru/v1/

Если запрос был успешно выполнен, код статуса HTTP будет равен 200.
В случае ошибок код статуса HTTP может принимать перечисленные значения:

400

Запрос сформирован некорректно

403

Доступ запрещён. Некорректные параметры авторизации или ключ API был отключен

404

Запрошенный объект не найден

500

Ошибка на сервере API. Следует обратиться в техническую поддержку


 

Успешный ответ на запрос содержит параметр «result», в котором находятся запрошенные данные или результат запрошенного действия.

Если сервер API не смог выполнить запрос, ответ может содержать параметр «errors», который представляет из себя список объектов ошибок:

Название параметра

Тип

Описание

code

Натуральное число

Код ошибки

message

Строка

Сообщение с описанием ошибки

path

Строка

Путь к параметру запроса, в котором возникла ошибка. Может отсутствовать, если ошибка не связана с конкретным параметром

errors

Массив объектов ошибок

Подробности ошибки. Может отсутствовать, если ошибка не подразумевает наличие подробностей.


 

Возможные коды ошибок:

Код

Описание

101

Некорректный формат запроса

102

Доступ запрещён

200

Ошибка в некоторых параметрах запроса

201

Не указан обязательный параметр

202

Значение параметра имеет некорректное значение

203

Значение параметра превысило допустимую длину

204

Список содержит очень большое число элементов

205

Объект, указанный в параметре, не найден

301

Достигнуты тарифные лимиты


 

Авторизация

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

 

Все запросы должны быть авторизованы. Для этого в каждый запрос добавляются два заголовка:

X-MegaCrm-ApiAccount

ID аккаунта MegaCRM

X-MegaCrm-ApiSignature

Подпись

 

Чтобы сформировать подпись, нужно соединить в единую строку следующие данные, разделённые двоеточием:

  • метод HTTP-запроса (GET, POST, PATCH);

  • часть URL запроса после домена;

  • GET-параметры запроса (пустая строка, если их нет);

  • тело запроса (пустая строка, если это GET-запрос);

  • ключ API (Получить можно в Настройки - API).

  Затем полученную строку хашировать алгоритмом sha256.

 

Пример:

  • POST

  • /v1/clients

  • GET-параметры отсутствуют

  • [{"name":"Client 1","type":0}]

  • abcdef0123456789

 

После объединения параметров получается строка:

POST:/v1/clients::[{"name":"Client 1","type":0}]:abcdef0123456789

После хэширования этой строки получается подпись:

6ca9f902940dddd790e71f591f09c3ad62a4b6ceaa4ab36a6c8467d2bf238778

Была ли статья вам полезна?
Укажите, пожалуйста, почему?
Комментарий