Описание протокола
Все 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 запроса.
Например, если URL запросаhttp://api.megacrm.ru/v1/clients, то путь будет иметь вид/v1/clients. -
Query-параметры запроса.
Например, если URL запросаhttp://api.megacrm.ru/v1/clients?page=2&category_id=100&doer_id=200, то строка query-параметров будет иметь видpage=2&category_id=100&doer_id=200.
Экранирование значений в параметрах не требуется. Если в запросе нет query-параметров, указывается пустая строка.
Если запросы POST и PATCH выполняются с query-параметрами, эти параметры также должны быть указаны. -
Тело запроса.
Если запрос не имеет тела или это запросGET, указывается пустая строка. -
Ключ API.
Ключ можно получить в меню "Настройки / API" в интерфейсе MegaCRM.
Полученную строку нужно хэшировать алгоритмом SHA-256. В результате получится строка подписи, которую нужно передать в заголовке X-MegaCrm-ApiSignature.
Примеры вычисления подписи:
Запрос GET
-
Метод HTTP-запроса:
GET. -
Путь из URL запроса:
/v1/clients. -
Query-параметры запроса:
page=2&category_id=100&query=Печкин. -
Тело запроса: отсутствует.
-
Ключ API:
abcdef0123456789.
Соединяем данные в строку, разделяя двоеточием:
GET:/v1/clients:page=2&category_id=100&query=Печкин::abcdef0123456789
Хэшируем эту строку алгоритмом SHA-256:
721f446dd0124ed88503d36bcb400ca184f4b1ef4c77906f1a33c73aef5d06d1
Запрос POST
-
Метод HTTP-запроса:
POST. -
Путь из URL запроса:
/v1/clients. -
Query-параметры запроса: отсутствуют.
-
Тело запроса:
[{"name":"Client 1","type":0}]. -
Ключ API:
abcdef0123456789.
Соединяем данные в строку, разделяя двоеточием:
POST:/v1/clients::[{"name":"Client 1","type":0}]:abcdef0123456789
Хэшируем эту строку алгоритмом SHA-256:
6ca9f902940dddd790e71f591f09c3ad62a4b6ceaa4ab36a6c8467d2bf238778