Описание REST API
Авторизация, методы, примеры работы
REST API в Альфа CRM
Данное описание предназначено для интеграции Альфа CRM с другими информационными сервисами. Мы дополняем этот документ описанием новых методов, моделей и параметров.
Всё взаимодействие через API должно осуществляться по протоколу REST. В качестве формата данных используется JSON. Прочие форматы и протоколы не поддерживаются.
Методы API реализуются в Контроллере (MVC) виде CRUD парадигмы вокруг каждой Модели (MVC). Модель — это отдельная сущность в CRM системе, например Ученик, или Урок, или Филиал под которую реализуется отдельный Контроллер.
Примеры запросов можно посмотреть в приложенных коллекциях Postman
Рекомендации по работе с нашим API:
- Создание отдельного пользователя в системе для работы именно с API (особенно актуально, если передаёте информацию с доступами сторонним разработчикам, так как такой доступ всегда можно отключить).
- Кеширование токена авторизации (также можно использовать обработку ошибок, чтобы, как только придет ошибка с кодом 401, снова делать запрос на получение токена).
- Обработка запросов последовательно:
- сделайте запрос по API;
- дождитесь ответа;
- разберите полученные данные;
- определитесь, нужно ли отправлять следующий запрос.
- Сохранение результатов запросов, чтобы не выгружать одни и те же данные.
По вопросам работы с нашим API можно написать на почту dev@alfacrm.pro. Ответ может занять до 3-5 рабочих дней.
Авторизация
Данные для авторизации можно найти в настройках профиля.
Наведите курсор на правый верхний угол в системе, появится контекстное меню, выберите раздел «Мой профиль».
Скопируйте данные для авторизации из полей «E-mail» и «Ключ API (v2api)».
Прежде чем обращаться к методам CRUD необходимо авторизоваться и получить временный
токен. Этим токеном должен подписываться каждый
CRUD запрос заголовке X-ALFACRM-TOKEN.
Время жизни токена — 3600 секунд. Для получения токена нужно обратиться методом
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
— пейджинацияВажно! Если в системе отключен филиал с ID 1, то в запросе необходимо указывать ID филиала, который активен в момент отправки запроса. Например:
/v2api/2/branch/index
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"is_active":1,"page":0}' 'https://{hostname}/v2api/branch/index'
$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}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"Test Branch","is_active":1}' 'https://{hostname}/v2api/branch/create'
$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"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"Test Branch 2"}' 'https://{hostname}/v2api/branch/update?id={id}'
$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
name
is_active
subject_ids
Location — сущность локации
POST
на
/v2api/{branch}/location/index
в теле
{"id":1,"page":0}
id
— поле для фильтрации, page
— пейджинация
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/location/index'
$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}
$ 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'
$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"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New location 2"}' 'https://{hostname}/v2api/{branch}/location/update?id={id}'
$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
branch_id
is_active
bool
name
Customer — центральная сущность
POST
на
/v2api/{branch}/customer/index
в теле
{"is_study":0,"lead_status_ids":[1],"page":0}
lead_status_ids
— поле для фильтрации,is_study
— поле для фильтрации 0 - лид, 1 - клиент, 2 фильтрация по клиентам и лидам, page
— пейджинация Важно! При использовании дополнительной фильтрации по статусу клиента или по этапу воронки продаж, фильтр будет работать как логическое "И", а не "ИЛИ" (например, если укажем в теле запроса {"is_study":2,"phone":79900000000,"lead_status_id":1}, в ответ получим только лидов с номером телефона 79900000000 и с соответствующим id этапа воронки продаж 1).
{ id // id клиента is_study // состояние клиента ( 0 - лид, 1 - клиент) study_status_id // id статуса клиента name // имя клиента gender // пол клиента age_from // возраст клиента от age_to // возраст клиента до phone // контакты клиента legal_type // тип заказчика(1-физ лицо, 2-юр.лицо) legal_name // имя заказчика company_id // id юр лица lesson_count_from // остаток уроков от lesson_count_to // остаток уроков до balance_contract_from // баланс договора от balance_contract_to // баланс договора до balance_bonus_from // баланс бонусов от balance_bonus_to // баланс бонусов до removed // флаг архивности (2 - только архивные, 1 - активные и архивные, 0 – только активные) removed_from // дата отправки в архив от, date removed_to // дата отправки в архив, date level_id // id уровня знаний assigned_id // id ответственного менеджера employee_id // id ответственного педагога lead_source_id // id источника color // id цвета note // примечание, string date_from // дата добавления от, date date_to // дата добавления до, date next_lesson_date_from // дата след.посещения от next_lesson_date_to // дата след.посещения до tariff_till_from // дата действия абонемента от tariff_till_to // дата действия абонемента до customer_ reject_id // id причины отказа comment // комментарий dob_from // дата рождения от dob_to // дата рождения до withGroups:true //активные группы клиента updated_at_from – дата внесения последних изменений от, string (формат "DD.MM.YYYY") updated_at_to – дата внесения последних изменений до, string (формат "DD.MM.YYYY") created_at_from – дата создания от, string (формат "DD.MM.YYYY") created_at_to – дата создания до, string (формат "DD.MM.YYYY") }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"is_study":0,"lead_status_id":1,"page":0}' 'https://{hostname}/v2api/{branch}/customer/index'
$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, '{"is_study":0,"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}
$ 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'
$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"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"Test Customer 2"}' 'https://{hostname}/v2api/{branch}/customer/update?id={id}'
$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
name
branch_ids
teacher_ids
is_study
study_status_id
lead_status_ids
lead_source_id
assigned_id
legal_type
legal_name
company_id
dob
balance
paid_lesson_count
phone
email
web
addr
note
updated_at
created_at
custom_
Group — сущность групп
POST
на
/v2api/{branch}/group/index
в теле
{"id":1,"page":0}
page
— пейджинация
{ "ids" // id групп, array[int] "id" // id группы, int "name" //название группы, string "note" // примечание, string "customer_name" // имя клиента, string "removed" //активность группы(активна, архивна) 1|2|null "level_id" // id уровня группы, int "status_id"// id статуса группы, int "branch_id"// id филиала, int "b_date_from"// дата начала действия группы от, date "b_date_to" // дата начала действия группы до, date "e_date_from" // дата окончания действия группы от, date "e_date_to" // дата окончания действия группы до date "teacher_id"// id ответственного педагога, int "updated_at_from" // дата внесения последних изменений от, string (формат "DD.MM.YYYY") "updated_at_to" // дата внесения последних изменений до, string (формат "DD.MM.YYYY") "created_at_from" // дата создания от, string (формат "DD.MM.YYYY") "created_at_to" // дата создания до, string (формат "DD.MM.YYYY") }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"customer_id":1,"page":0}' 'https://{hostname}/v2api/{branch}/group/index'
$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}/group/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"customer_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}/group/create
в теле
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '' 'https://{hostname}/v2api/{branch}/group/create'
$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}/group/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 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}/group/update?id={id}
в теле
{"note":"text"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"note":"text"}' 'https://{hostname}/v2api/{branch}/group/update?id={id}'
$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}/group/update?id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"note":"text"}'); 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
branch_ids
teacher_ids
name
level_id
status_id
b_date
e_date
updated_at
created_at
note
Lesson — сущность урока
POST
на
/v2api/{branch}/lesson/index
в теле
{"id":1,"page":0}
page
— пейджинация
Важно! Если параметр status не передавать, по умолчанию status установлен как 3 - проведенный урок.
{ "id" // id урока, int "status" // статус урока (1 - запланированный, 2 - отмененный, 3 - проведенный), int "teacher_id" // id педагога, int "customer_id" // id клиента, int "is_customer_attend" // присутствие клиента, int "group_id" // id группы, int "subject_id" // id предмета, int "location_ids // id локации, array[int], "room_ids" // id аудитории, array[int], "topic" // тема урока, string, "lesson_type_id" //id типа урока, int "date_from" // дата от, string, (формат "YYYY-MM-DD") "date_to" //дата до,string, (формат "YYYY-MM-DD") "homework" // домашнее задание, string, "duration" // продолжительность, int "updated_at_from" // дата внесения последних изменений от, string (формат "DD.MM.YYYY") "updated_at_to" // дата внесения последних изменений до, string (формат "DD.MM.YYYY") "created_at_from" // дата создания от, string (формат "DD.MM.YYYY") "created_at_to" // дата создания до, string (формат "DD.MM.YYYY") }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"customer_id":1,"page":0}' 'https://{hostname}/v2api/{branch}/lesson/index'
$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}/lesson/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"customer_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}/lesson/create
Обязательные поля к заполнению:
{ "lesson_date" // дата урока, date (формат: "DD.MM.YYYY") "time_from" // время начала урока, datetime (формат: "HH:MM") "duration" // длительность урока в минутах, int "lesson_type_id" // id типа урока, int "subject_id" // id предмета, int }
Необязательные поля к заполнению:
{ "teacher_ids" // id педагога, int array "is_confirmed" // подтверждение урока (по умолчанию да (1)), int "is_public" // возможна запись онлайн (по умолчанию нет (0)), int "note" // комментарий, string "topic" // тема, string "room_id" // id аудитории, int "group_ids" // id группы (для типов уроков с системным типом “Группа или несколько”), int array "customer_ids" // id клиента (для типов уроков с системным типом “Индивидуально” или “Лид, клиент или несколько”), int array "custom_name" // дополнительные поля, string }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '' 'https://{hostname}/v2api/{branch}/lesson/create'
$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}/lesson/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 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}/lesson/update?id={id}
в теле
{"note":"text"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"note":"text"}' 'https://{hostname}/v2api/{branch}/lesson/update?id={id}'
$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}/lesson/update?id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"note":"text"}'); 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}/lesson/teach?id={запланированного урока}
Обязательные поля к заполнению для сущности lesson: { " id" // id урока, int "branch_id " // id филиала, int "lesson_date" // дата урока, date (формат: " YYYY-MM-DD") "time_from" // время начала урока, string (формат: "HH:MM:SS") "time_to" // время окончания урока, string (формат: "HH:MM:SS") "lesson_type_id" // id типа урока, int "status" // id статуса урока (1 – запланирован; 2 – отменен – 3 проведен), int "subject_id" // id предмета, int "teacher_ids // id педагога, array "customer_ids" // id ученика, array (для уроков с системным типом "Индивидуально" или "Лид, клиент или несколько") "group_ids" // id группы, array (для уроков с системным типом "Группа или несколько") }
Необязательные поля к заполнению для сущности lesson: { "room_id " // id аудитории, int "note" // комментарий к уроку, string "topic " // тема урока, string "homework" // домашнее задание, string "custom_" // дополнительные поля в иодели урока, }
Обязательные поля к заполнению для поля details: { "id" // id деталей урока, int (должен совпадать с id детали урока, который передавался при запросе списка запланированных уроков) "branch_id " // id филиала, int (должен совпадать с branch_id детали урока, который передавался при запросе списка запланированных уроков) "customer_id" // id клиента, int (должен совпадать с customer_id детали урока, который передавался при запросе списка запланированных уроков) "lesson_id" // id урока, int "ctt_id" // id абонемента клиента, int (должен совпадать с ctt_id детали урока, который передавался при запросе списка запланированных уроков) "is_attend " // присутствие клиента на уроке (1 – присутствовал; 0 – отсутствовал. Если не указывать данный параметр, то по умолчанию будет добавлено значение 0 – отсутствовал. Также при пропуске урока необходимо указать id причины пропуска урока), bool "reason_id" // id причины пропуска урока, int "commission " // комиссия за урок, float }
Необязательные поля к заполнению для поля details: { "grade" // оценка за урок, float "homework_grade_id " // id оценки за домашнее задание, int "bonus " // тема урока, float "note " // примечание к клиенту, string }
id
branch_id
teacher_ids
customer_ids
group_ids
name
lesson_type_id
subject_id
room_id
status
topic
date
time_from
time_to
note
details
updated_at
created_at
CGI — связь клиенты-группы
POST
на
/v2api/{branch}/cgi/index?group_id={id}
group_id
— поле для фильтрации, page
— пейджинация
{ "e_date": "dd.mm.yyyy", // дата начала участия в группе "b_date": "dd.mm.yyyy" // дата окончания участия в группе }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"group_id":1,"page":0}' 'https://{hostname}/v2api/{branch}/cgi/index'
$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}/cgi/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"group_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}/cgi/customer?customer_id={id}
в теле
{"customer_id":1,"page":0}
customer_id
— поле для фильтрации, page
— пейджинация
{ "e_date": "dd.mm.yyyy", // дата начала участия в группе "b_date": "dd.mm.yyyy" // дата окончания участия в группе }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"customer_id":1,"page":0}' 'https://{hostname}/v2api/{branch}/cgi/customer'
$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}/cgi/customer'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"customer_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}/cgi/create?group_id={id}
в теле
{"customer_id":1,"b_date":"dd.mm.yyyy","e_date":"dd.mm.yyyy","branch_id":1}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"customer_id":1,"b_date":"dd.mm.yyyy","e_date":"dd.mm.yyyy","branch_id":1}' 'https://{hostname}/v2api/{branch}/cgi/create'
$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}/cgi/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"customer_id":1,"b_date":"dd.mm.yyyy","e_date":"dd.mm.yyyy","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}/cgi/update?group_id={id}&id={id}
в теле
{"customer_id":1,"b_date":"dd.mm.yyyy","e_date":"dd.mm.yyyy","branch_id":1}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"customer_id":1,"b_date":"dd.mm.yyyy","e_date":"dd.mm.yyyy","branch_id":1}' 'https://{hostname}/v2api/{branch}/cgi/update?id={id}'
$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}/cgi/update?group_id={id}&id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"customer_id":1,"b_date":"dd.mm.yyyy","e_date":"dd.mm.yyyy","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);
id
customer_id
group_id
b_date
e_date
Subject — предметы обучения
POST
на
/v2api/{branch}/subject/index
в теле
{"id":1,"page":0}
id
— поле для фильтрации, page
— пейджинация
{ "name" // название предмета, string "active" // активность(true – только активные, false-все), bool }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/subject/index'
$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"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New subject"}' 'https://{hostname}/v2api/{branch}/subject/create'
$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"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New subject 2"}' 'https://{hostname}/v2api/{branch}/subject/update?id={id}'
$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
name
StudyStatus — статусы обучения
POST
на
/v2api/{branch}/study-status/index
в теле
{"id":1,"page":0}
id
— поле для фильтрации, page
— пейджинация
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/study-status/index'
$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}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New status","is_enabled":1}' 'https://{hostname}/v2api/{branch}/study-status/create'
$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"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New status 2"}' 'https://{hostname}/v2api/{branch}/study-status/update?id={id}'
$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
name
is_enabled
bool
LeadStatus — этапы воронки продаж
POST
на
/v2api/{branch}/lead-status/index
в теле
{"id":1,"page":0}
id
— поле для фильтрации, page
— пейджинация
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/lead-status/index'
$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}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New status","is_enabled":1}' 'https://{hostname}/v2api/{branch}/lead-status/create'
$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"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New status 2"}' 'https://{hostname}/v2api/{branch}/lead-status/update?id={id}'
$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
name<
is_enabled
LeadSource — источники
POST
на
/v2api/{branch}/lead-source/index
в теле
{"id":1,"page":0}
id
— поле для фильтрации, page
— пейджинация
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/lead-source/index'
$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"}
$ 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'
$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"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"name":"New source 2"}' 'https://{hostname}/v2api/{branch}/lead-source/update?id={id}'
$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
code
name
is_enabled
Pay — платежи
POST
на
/v2api/{branch}/pay/index
в теле
{"id":1,"page":0}
page
— пейджинация
{ "id"// id платежа, int "currency":"rub" // валюта платежа "location_id" // локация платежа, int "customer_id" // id клиента "employee_id" // id педагога (тип платежа - Выдача ЗП) "pay_item_category_id" // id категории статей "pay_type_id" // тип операции, int "pay_item_id" // id статьи, int "pay_account_id" // id счета (кассы) "commodity_id" // id товара (тип платежа – Продажа товара) "payer_name" // имя плательщика, string "note" // примечание, string "date_from" // дата от yyyy.mm.dd "date_to" // дата до yyyy.mm.dd "sum_from" // сумма платежа от "sum_to" // сумма платежа до "bonus_from" // бонус от "bonus_to" // бонус до "is_confirmed" // подтвержден (1 - да, 0 - нет) "group_ids":[], // id групп "is_fiscal" // фискализован (1 - фискализован, 0 – нет) "updated_at_from" // дата внесения последних изменений от, string (формат "DD.MM.YYYY") "updated_at_to" // дата внесения последних изменений до, string (формат "DD.MM.YYYY") "created_at_from" // дата создания от, string (формат "DD.MM.YYYY") "created_at_to" // дата создания до, string (формат "DD.MM.YYYY") }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"id":1,"page":0}' 'https://{hostname}/v2api/{branch}/pay/index'
$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}/pay/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}/pay/create
в теле
{"branch_id":{branch_id},"customer_id":{customer_id},"pay_type_id":{pay_type_id},"pay_account_id":{pay_account_id},"document_date":"dd.mm.yyyy","income":{income},"payer_name":"{payer_name}","note":"{note}"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{{"branch_id":1,"customer_id":1,"pay_type_id":1,"pay_account_id":1,"document_date":"dd.mm.yyyy","income":10890.00,"payer_name":"Иванов Антон","note":"Комментарий"}}' 'https://{hostname}/v2api/{branch}/pay/create'
$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}/pay/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"branch_id":1,"customer_id":1,"pay_type_id":1,"pay_account_id":1,"document_date":"dd.mm.yyyy","income":10890.00,"payer_name":"Иванов Антон","note":"Комментарий"}'); 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}/pay/update?id={id}
в теле
{"income":"100500"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"income":"100500"}' 'https://{hostname}/v2api/{branch}/pay/update?id={id}'
$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}/pay/update?id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"income":"100500"}'); 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}/pay/fiscal-sell?id={id}&type={1 для электронных платежей|2 для наличных}
в теле ничего не передавать
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' 'https://{hostname}/v2api/{branch}/pay/fiscal-sell?id={id}&type={1 для электронных платежей|2 для наличных}'
$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}/pay/fiscal-sell?id={id}&type={1 для электронных платежей|2 для наличных}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); 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
branch_id
location_id
customer_id
pay_type_id
pay_account_id
pay_item_id
teacher_id
commodity_id
document_date
income
payer_name
group_id
updated_at
created_at
note
Communication — коммуникации
POST
на
/v2api/{branch}/communication/index?class=Customer&related_id={id}
в теле
{"page":0}
page
— пейджинация
{ "id" // id коммуникации, int "type_id" // id типа коммуникации, int (1-комментарий) "user_id" // id пользователя, добавившего коммуникацию, int "comment" // текст коммуникации, string }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"page":0}' 'https://{hostname}/v2api/{branch}/communication/index'
$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}/communication/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"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}/communication/create?class=Customer&related_id={id}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '' 'https://{hostname}/v2api/{branch}/communication/create'
$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}/communication/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 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}/communication/update?id={id}
в теле
{"comment":"text"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"comment":"text"}' 'https://{hostname}/v2api/{branch}/communication/update?id={id}'
$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}/communication/update?id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"comment":"text"}'); 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}/sms-message
в теле
{"page":0}
page
— пейджинация
{ "id" // id, int "user_id" // id пользователя отправителя SMS, int "phone" // string номер телефона получателя, string "is_fail" // bool отправка письма (0 - без ошибок, 1 - с ошибкой), bool "is_sent" // bool отправка письма (0 - не отправлено, 1 - отправлено), bool "is_archive" // bool письмо архивировано (0 - не архивировано, 1 - архивировано), bool "added_from" // string дата добавления письма от, string "added_to" // string дата добавления письма до, string "date_from" // string дата отправки письма от, string "date_to" // string дата отправки письма до, string }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"page":0}' 'https://{hostname}/v2api/{branch}/sms-message'
POST
на
/v2api/{branch}/mail-message
в теле
{"page":0}
page
— пейджинация
{ "id" // id, int "user_id" // id пользователя отправителя email, int "email" // string почта получателя, string "name" // string имя получателя, string "subject" // string тема письма, string "is_fail" // bool отправка письма (0 - без ошибок, 1 - с ошибкой), bool "is_sent" // bool отправка письма (0 - не отправлено, 1 - отправлено), bool "is_archive" // bool письмо архивировано (0 - не архивировано, 1 - архивировано), bool "added_from" // string дата добавления письма от, string "added_to" // string дата добавления письма до, string "date_from" // string дата отправки письма от, string "date_to" // string дата отправки письма до, string }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"page":0}' 'https://{hostname}/v2api/{branch}/mail-message'
POST
на
/v2api/{branch}/phone-call
в теле
{"page":0}
page
— пейджинация
{ "direction" // id направление звонка, может быть либо in (1) либо out (2), int "is_success" // id успешность звонка (0 или 1), "local_number" // string локальный номер звонящего / принявшего звонок, string "remote_number" // string номер звонящего в случае входящего звонка, или исходящий номер, string "record_url" // string ссылка на запись звонка, string "date_from" // string дата звонка от, string "date_to" // string дата звонка до, string }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"page":0}' 'https://{hostname}/v2api/{branch}/phone-call'
id
phone_normalized
text
html
integration_id
branch_id
type_id
class
related_id
user_id
added
comment
CustomerTariff — получение списка
абонементов клиента
POST
на
/v2api/{branch}/customer-tariff/index?customer_id=[id]
в теле
{"page":0}
customer_id
— id клиента, page
— пейджинация
{ "id" // id абонемента в карточке клиента, int "tariff_id" // id тарифа(абонемента в разделе Абонементы), int "is_burnable_out" //сгораемый, bool "balance":int|array[from,to] // баланс абонемента "dead": true // архивный абонемент,(false- все абонементы) "tariff_type" //тип абонемента(1-поурочный, 2- помесячный, 3 – недельный) int "is_separate_balance" // раздельный баланс, bool }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"customer_id":1,"page":0}' 'https://{hostname}/v2api/{branch}/customer-tariff/index'
$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-tariff/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"customer_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-tariff/create
в теле
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '' 'https://{hostname}/v2api/{branch}/customer-tariff/create'
$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-tariff/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 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-tariff/update?id={id}
в теле
{"note":"text"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"note":"text"}' 'https://{hostname}/v2api/{branch}/customer-tariff/update?id={id}'
$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-tariff/update?id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"note":"text"}'); 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
tariff_id
subject_ids
lesson_type_ids
customer_id
is_separate_balance
balance
b_date
e_date
note
Discount — сущность скидок
POST
на
/v2api/{branch}/discount/index
в теле
{"customer_id":1,"page":0}
page
— пейджинация
{ "name" // название скидки, string, "type" // тип скидки int (1 – процентная, 2 – денежная) "note" //примечание к скидке, string, "customer_id" // id клиента, int }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"customer_id":1,"page":0}' 'https://{hostname}/v2api/{branch}/discount/index'
$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}/discount/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"customer_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}/discount/create
в теле
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '' 'https://{hostname}/v2api/{branch}/discount/create'
$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}/discount/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 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}/discount/update?id={id}
в теле
{"note":"text"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"note":"text"}' 'https://{hostname}/v2api/{branch}/discount/update?id={id}'
$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}/discount/update?id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"note":"text"}'); 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
branch_id
subject_ids
lesson_type_ids
customer_id
type
amount
begin
end
note
Log — получение списка истории
изменений
POST
на
/v2api/{branch}/log/index
в теле
{"page":0}
page
— пейджинация
{ "date_from" // дата от, string "date_to" // дата до, string "entity" // сущность, string "entity_id" // id сущности,int "user_id" // id автора, int "event" // тип события, int(1 – добавление, 2 – восстановление, 3 - удаление) }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"page":0}' 'https://{hostname}/v2api/{branch}/log/index'
$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}/log/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"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);
id
entity
entity_id
user_id
event
fields_old
fields_new
fields_rel
date_time
RegularLesson — сущность
регулярных уроков
POST
на
/v2api/{branch}/regular-lesson/index
в теле
{"page":0}
page
— пейджинация
{ "ids" // id регулярных уроков, array[int] "id" // id регулярного урока, int "subject_id" // id предмета, int "teacher_id" // id педагога, int "date_from" // дата действия от, string (применяется вместе с date_to), "date_to" // дата действия до, string (применяется вместе с date_from), "time_from" // время от, string "Y-m-d H:i:s" (применяется вместе с time_to), "time_to" // время до, string "Y-m-d H:i:s" (применяется вместе с time_from), "public" // доступны для записи, int(1- да, 0 – нет) }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"page":0}' 'https://{hostname}/v2api/{branch}/regular-lesson/index'
$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}/regular-lesson/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"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}/regular-lesson/create
в теле
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '' 'https://{hostname}/v2api/{branch}/regular-lesson/create'
$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}/regular-lesson/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 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}/regular-lesson/update?id={id}
в теле
{"note":"text"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"note":"text"}' 'https://{hostname}/v2api/{branch}/regular-lesson/update?id={id}'
$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}</strong>/v2api/{branch}/regular-lesson/update?id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"note":"text"}'); 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
branch_id
lesson_type_id
related_class
related_id
subject_id
teacher_ids
room_id
day
days
time_from_v
time_to_v
b_date
e_date
Tariff — сущность абонемента
POST
на
/v2api/{branch}/tariff/index
в теле
{"page":0}
page
— пейджинация
{ "name" // название абонемента, string "price" // стоимость абонемента, float "price_from" // стоимость абонемента от, float "price_to": // стоимость абонемента до, float "type": // тип тарифа (1 – поурочный, 2 – помесячный, 3 – недельный),int "calculation_type" // тип расчета(1-базовый, 2- раздельный), int "is_archive": bool // (true – архивные, false – все) "lessons_count" // количество уроков, int }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"page":0}' 'https://{hostname}/v2api/{branch}/tariff/index'
$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}/tariff/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"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}/tariff/create
в теле
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '' 'https://{hostname}/v2api/{branch}/tariff/create'
$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}/tariff/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 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}/tariff/update?id={id}
в теле
{"note":"text"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"note":"text"}' 'https://{hostname}/v2api/{branch}/tariff/update?id={id}>'
$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}/tariff/update?id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"note":"text"}'); 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
type
name
price
lessons_count
duration
branch_ids
Task — сущность задач
POST
на
/v2api/{branch}/task/index
в теле
{"page":0}
page
— пейджинация
{ "id" // id задачи, int "user_id" // id автора задачи, int "assigned_id" // id исполнителя, int "text" // текст задачи, string "priority" // id приоритета, int(1-низкий, 2 – нормальный, 3 –высокий) "due_date_from" // дата Исполнить от, string "due_date_to" // дата Исполнить до, string "due_date_is_null" // бессрочные задачи, bool(true-только бессрочные) "done_date_from" // дата исполнения от, string "done_date_to"// дата исполнения до, string "is_done" //(true – только выполненные, false – все), bool "is_archive" // (true – только архивные, false –все), bool }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"page":0}' 'https://{hostname}/v2api/{branch}/task/index'
$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}/task/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"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}/task/create
в теле
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '' 'https://{hostname}/v2api/{branch}/task/create'
$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}/task/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 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}/task/update?id={id}
в теле
{"note":"text"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"note":"text"}' 'https://{hostname}/v2api/{branch}/task/update?id={id}'
$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}/task/update?id={id}'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"note":"text"}'); 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
company_id
user_id
assigned_ids
group_ids
customer_ids
title
text
is_archive
is_done
is_private
created_at
due_date
done_date
priority
Teacher — сущность педагога
POST
на
/v2api/{branch}/teacher/index
в теле
{"page":0}
page
— пейджинация
{ "name" // имя педагога, string "phone" // контакты педагога, string, "removed" // флаг архивности(2-только архивные,1 –активные и архивные, 0 –активные), int "age_from"// возраст от, int "age_to"// возраст до, int "subject_id"// id предмета, int "skill_id"// id квалификации int, "branch_id"// id филиала, int, "e_date" // дата архивации педагога, string }
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '{"page":0}' 'https://{hostname}/v2api/{branch}/teacher/index'
$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}/teacher/index'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"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}/teacher/teacher-rate
в теле
{"page":0}
page
— пейджинация
{ "id" // id ставки, int, "teacher_id // id педагога, в карточке которого добавлена ставка, int, "type" // тип ставки (1 - ставка в валюте, 2 – процентная ставка), int, "b_date_from" // начало периода действия ставки ОТ (формат "YYYY-MM-DD"), string, "b_date_to" // начало периода действия ставки ДО (формат "YYYY-MM-DD"), string, "e_date_from" // конец периода действия ставки ОТ (формат "YYYY-MM-DD"), string, "e_dаate_to " // конец периода действия ставки ДО (формат "YYYY-MM-DD"), string, "lesson_type_ids"// id типов уроков в ставке, array, "subject_ids" // id предметов в ставке, array }
POST
на
/v2api/{branch}/teacher/working-hour
в теле
{"page":0}
page
— пейджинация
{ "id" // id графика работы педагога, int, "location_id" // id локации, в которой работает педагог, int, "weekday" // день недели графика работы, int, "time_from" // время начала работы (формат "HH:MM"), string, "time_to" // время окончания работы (формат "HH:MM"), string, "teacher_id" // id педагога, int }
POST
на
/v2api/{branch}/teacher/create
в теле
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: {token}' -d '' 'https://{hostname}/v2api/{branch}/teacher/create'
$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}/teacher/create'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, ''); 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}/teacher/update?id={id}
в теле
{"note":"text"}
$ curl -i -X 'POST' -H 'X-ALFACRM-TOKEN: <strong>{token}</strong>' -d '{"note":"text"}' 'https://<strong>{hostname}</strong>/v2api/<strong>{branch}</strong>/task/teacher?id=<strong>{id}</strong>'
$ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-ALFACRM-TOKEN: <strong>{token}</strong>', 'Accept: application/json', 'Content-Type: application/json']); curl_setopt($ch, CURLOPT_URL, 'https://<strong>{hostname}</strong>/v2api/<strong>{branch}</strong>/task/teacher?id=<strong>{id}</strong>'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"note":"text"}'); 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
branch_ids
name
dob
gender
e_date
subject_id
subject_name
skill_id
skill_name
note
Поля в модели working-hour
id
location_id
weekday
time_from
time_to
teacher_id
Поля в модели teacher-rate
id
rate
type
teacher_id
b_date
e_dat
s_multirate
is_proportional
condition_attend
reason_ids
count_from
count_to
duration
lesson_type_ids
subject_ids
is_gt_zero