Описание API

REST API в Альфа CRM

Данное описание предназначено для интеграции Альфа CRM с другими информационными сервисами. Мы дополняем этот документ описанием новых методов, моделей и параметров.

Всё взаимодействие через API должно осуществляться по протоколу REST. В качестве формата данных используется JSON. Прочие форматы и протоколы не поддерживаются.

Методы API реализуются в Контроллере (MVC) виде CRUD парадигмы вокруг каждой Модели (MVC). Модель — это отдельная сущность в CRM системе, например Ученик, или Урок, или Филиал под которую реализуется отдельный Контроллер.

Авторизация

Прежде чем обращаться к методам CRUD необходимо авторизоваться и получить временный токен. Этим токеном должен подписываться каждый CRUD запрос заголовке X-ALFACRM-TOKEN. Время жизни токена — 15 минут. Для получения токена нужно обратиться методом POST к URI /v2api/auth/login, а в теле запроса передать JSON объект с ключами email и api_key.

Авторизующийся пользователь должен иметь роль с предоставленным доступом к модулю v2api. Иначе запросы к CRUD будут возвращать исключение Access Denied.

Пример из командной строки Linux (утилита curl):

$ curl -i -X 'POST' -d '{"email":"{email}","api_key":"{api_key}"}' 'https://{hostname}/v2api/auth/login'
//Пример кода на PHP
$ch      = curl_init();
$data    = ['email' => 'ivan@mail.ru', 'api_key' => '123456'];

curl_setopt($ch, CURLOPT_HTTPHEADER, ['Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://demo.s20.online/v2api/auth/login');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

$token = $result['token'];

Варианты ответа сервера:

  • ОК, код ответа 200, в теле — JSON вида {"token":"GENERATED-TOKEN"}
  • исключение, код ответа 4XX, 5XX, в теле — JSON вида {"name":"Forbidden","message":"Not Authorized","code":0,"status":403}

Значение некоторых параметров

  • {hostname} — клиентский идентификатор, являющийся Hostname в URL для доступа в систему. Например, для https://demo.s20.online это demo.s20.online;
  • {branch} — ID филиала, в который происходит обращение;
  • {email} — e-mail пользователя для авторизации в системе;
  • {api_key} — ключ API для авторизации в системе;
  • {token} — токен, полученный при авторизации (см. блок Авторизация);

Примеры возвращаемых значений в CRUD

  • Метод Index — возвращает JSON вида {"total":2,"count":2,"page":0,"items":[]}, где total — количество записей всего, count — количество записей в текущей коллекции items, page — текущая страница результатов выдачи. В items содержится вся коллекция записей в виде объектов различных моделей.
  • Методы Create и Update — возвращает JSON вида {"success":true,"errors":[],"model":{"id":1,...}}, где success — результат выполнения запроса (true / false), errors — коллекция ошибок если success == false, model — JSON объект Модели с публичными свойствами.
  • Метод Delete — возвращает JSON вида {"success":true,"errors":[]}, где success — результат выполнения запроса (true / false), errors — коллекция ошибок если success == false.

Branch — сущность филиала

POST на /v2api/branch/index в теле {"is_active":1,"page":0}
is_active — поле для фильтрации, page — пейджинация
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"is_active":1,"page":0}' 'https://{hostname}/v2api/branch/index'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/branch/index');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"is_active":1,"page":0}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/branch/create в теле {"name":"Test Branch","is_active":1}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"Test Branch","is_active":1}' 'https://{hostname}/v2api/branch/create'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/branch/create');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"Test Branch","is_active":1}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/branch/update?id={id} в теле {"name":"Test Branch 2"}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"Test Branch 2"}' 'https://{hostname}/v2api/branch/update?id={id}'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/branch/update?id={id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"Test Branch 2"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
id
int
идентификатор
name
string(50)
наименование
is_active
bool
флаг активности
subject_ids
int array
массив идентификаторов предметов (Subject)

Location — сущность локации

POST на /v2api/{branch}/location/index в теле {"id":1,"page":0}
id — поле для фильтрации, page — пейджинация
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/location/index'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/location/index');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"id":1,"page":0}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/location/create в теле {"name":"New location","is_active":1,"branch_id":1}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New location","is_active":1,"branch_id":1}' 'https://{hostname}/v2api/{branch}/location/create'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/location/create');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New location","is_active":1,"branch_id":1}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/location/update?id={id} в теле {"name":"New location 2"}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New location 2"}' 'https://{hostname}/v2api/{branch}/location/update?id={id}'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/location/update?id={id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New location 2"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
id
int
идентификатор
branch_id
int
филиал (Branch)
is_active
bool
флаг активности
name
string(50)
наименование

Customer — центральная сущность CRM

POST на /v2api/{branch}/customer/index в теле {"lead_status_id":1,"page":0}
lead_status_id — поле для фильтрации, page — пейджинация
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"lead_status_id":1,"page":0}' 'https://{hostname}/v2api/{branch}/customer/index'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/customer/index');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"lead_status_id":1,"page":0}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/customer/create в теле {"name":"Test Customer","legal_type":1,"is_study":0}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"Test Customer","legal_type":1,"is_study":0}' 'https://{hostname}/v2api/{branch}/customer/create'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/customer/create');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"Test Customer","legal_type":1,"is_study":0}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/customer/update?id={id} в теле {"name":"Test Customer 2"}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"Test Customer 2"}' 'https://{hostname}/v2api/{branch}/customer/update?id={id}'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/customer/update?id={id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"Test Customer 2"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
id
int
идентификатор
name
string(50)
полное имя
branch_ids
int array
массив идентификаторов филиалов (Branch)
teacher_ids
int array
массив идентификаторов педагогов (Teacher)
is_study
bool
флаг обучения (0 - лид, 1 - клиент)
study_status_id
int
статус обучения (StudyStatus)
lead_status_id
int
этап воронки продаж (LeadStatus)
lead_source_id
int
источник (LeadSource)
assigned_id
int
ответственный менеджер (User)
legal_type
int
тип клиента (1 - физ. лицо, 2 - юр. лицо)
legal_name
string(50)
имя заказчика (если физ. лицо)
company_id
int
компания (Company)
dob
date
дата рождения
balance
float
текущий остаток, деньги
paid_lesson_count
int
текущий остаток, занятия
phone
text array
массив с телефонами
email
text array
массив с e-mail
web
text array
массив с сайтами
addr
text array
массив с адресами
note
text
примечание
custom_
...
доп. поля (custom_school, custom_range, etc)

Subject — предметы обучения

POST на /v2api/{branch}/subject/index в теле {"id":1,"page":0}
id — поле для фильтрации, page — пейджинация
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/subject/index'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/subject/index');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"id":1,"page":0}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/subject/create в теле {"name":"New subject"}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New subject"}' 'https://{hostname}/v2api/{branch}/subject/create'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/subject/create');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New subject"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/subject/update?id={id} в теле {"name":"New subject 2"}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New subject 2"}' 'https://{hostname}/v2api/{branch}/subject/update?id={id}'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/subject/update?id={id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New subject 2"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
id
int
идентификатор
name
string(50)
наименование

StudyStatus — статусы обучения

POST на /v2api/{branch}/study-status/index в теле {"id":1,"page":0}
id — поле для фильтрации, page — пейджинация
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/study-status/index'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/study-status/index');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"id":1,"page":0}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/study-status/create в теле {"name":"New status","is_enabled":1}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New status","is_enabled":1}' 'https://{hostname}/v2api/{branch}/study-status/create'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/study-status/create');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New status","is_enabled":1}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/study-status/update?id={id} в теле {"name":"New status 2"}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New status 2"}' 'https://{hostname}/v2api/{branch}/study-status/update?id={id}'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/study-status/update?id={id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New status 2"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
id
int
идентификатор
name
string(50)
наименование
is_enabled
bool
флаг активности

LeadStatus — этапы воронки продаж

POST на /v2api/{branch}/lead-status/index в теле {"id":1,"page":0}
id — поле для фильтрации, page — пейджинация
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/lead-status/index'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/lead-status/index');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"id":1,"page":0}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/lead-status/create в теле {"name":"New status","is_enabled":1}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New status","is_enabled":1}' 'https://{hostname}/v2api/{branch}/lead-status/create'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/lead-status/create');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New status","is_enabled":1}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/lead-status/update?id={id} в теле {"name":"New status 2"}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New status 2"}' 'https://{hostname}/v2api/{branch}/lead-status/update?id={id}'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/lead-status/update?id={id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New status 2"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
id
int
идентификатор
name
string(50)
наименование
is_enabled
bool
флаг активности

LeadSource — источники

POST на /v2api/{branch}/lead-source/index в теле {"id":1,"page":0}
id — поле для фильтрации, page — пейджинация
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/lead-source/index'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/lead-source/index');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"id":1,"page":0}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/lead-source/create в теле {"name":"New source","is_enabled":1,"code":"newcode"}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New source","is_enabled":1,"code":"newcode"}' 'https://{hostname}/v2api/{branch}/lead-source/create'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/lead-source/create');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New source","is_enabled":1,"code":"newcode"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
POST на /v2api/{branch}/lead-source/update?id={id} в теле {"name":"New source 2"}
Пример из командной строки Linux (утилита curl):
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New source 2"}' 'https://{hostname}/v2api/{branch}/lead-source/update?id={id}'
Пример на PHP:
$ch     = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: {token}', 'Accept: application/json', 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_URL, 'https://{hostname}/v2api/{branch}/lead-source/update?id={id}');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"name":"New source 2"}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = json_decode(curl_exec($ch), true);
$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch))
    throw new \Exception('Curl error');

curl_close($ch);

if ($code !== 200)
    throw new \Exception($result['name'] . ' - ' . $result['message']);

var_dump($result);
id
int
идентификатор
code
string(50)
код (альяс)
name
string(50)
наименование
is_enabled
bool
флаг активности