API-Документация Flexbe
API позволяет получать и изменять информацию о заявках, клиентах, оплатах, а также отправлять информацию о событиях вашим скриптам.
Работа с API осуществляется путем отправки GET или POST запросов на адрес вида:
http://{ваш_домен}/mod/api/?api_key={ключ}
Данные возвращаются в кодировке utf-8, в формате JSON. Контент находится в объекте «data».
-    curl 'http://yourdomain.ru/mod/api/?api_key=5xxxxxfc7103bde368b708b7f3ed95a004496740&method=checkConnection'
 /* Ответ */
 {"status":1}
-    echo file_get_contents(
 'http://yourdomain.ru/mod/api/'
 .'?api_key=5xxxc7103bde368b708b7f3ed95a004496740'
 .'&method=checkConnection'
 );
 // В php.ini должна быть опция allow_url_fopen=On
 
 
 /* Ответ */
 {"status":1}
-    var request = require('request'); // npm install request request.post({ uri: 'http://yourdomain.ru/mod/api/', form: {
 api_key:'5xxxc7103bde368b708b7f3ed95a004496740',
 method:'checkConnection'
 }}, function(err, res, body) {
 console.log(JSON.parse(body));
 });
 
 
 /* Ответ */
 {"status":1}
Подключение
Скачайте архив с примерами работы с API и обработчиками событий.
Получите секретный ключ и url адрес для запросов в панели управления, в разделе Настройки — Интеграции.
Укажите, если требуется, адреса ваших обработчиков событий.
-    curl 'http://yourdomain.ru/mod/api/?api_key=xxxxxxxxxx'
-    // Инициализируем класс для работы с API
 require('flexbe_api.class.php');
 
 $api_url = 'http://yourdomain.ru/mod/api/';
 $api_key = 'ed677c52dccc04a456f846ebe06849b551f53f20';
 
 $flexbe = new flexbeAPI($api_url,$api_key);
 
 // Проверка подключения
 if ( !$flexbe->checkConnection() ) {
 print_r($flexbe->errors);
 exit();
 }
-    var request = require('request'); // npm install request
 flexbeAPI = {
 url:'http://yourdomain.ru/mod/api/',
 api_key:'ed677c52dccc04a456f846ebe06849b551f53f20',
 
 // Вызов метода API
 query:function(method, params, callbackFunc){
 params.api_key = this.api_key;
 params.method = method;
 
 request.post({uri: this.api_url, form: params},
 function(err, res, body) { try {
 callbackFunc(JSON.parse(body));
 } catch (error) { console.log(error); } });
 },
 };
Ограничения
Методом getLeads можно получить до 1000 заявок за один запрос.
Если требуется получить больше 1000 заявок, нужно разбивать обращение к API на несколько запросов с указанием start и count (постраничная навигация).
Максимум 100 запросов к API в минуту.
Коды ошибок
0 — Некорректный ключ доступа
1 — Превышен лимит запросов
2 — Несуществующий метод
-    // Объект с информацией об ошибке
 error: {
 code: 0,
 msg: "Неверный api_key",
 }
Методы
Имя метода передаётся в параметре &method=
http://{ваш_домен}/mod/api/?api_key={ключ}&method=getLeads
getLeads — получение
Заявки отсортированы по дате создания, от последней к первой.
-    curl 'http://yourdomain.ru/mod/api/?api_key=xxxxx&method=getLeads&client_email=dev@flexbe.com'
-    $leads_res = $flexbe->getLeads( array(
 // Дата создания заявки больше чем месяц назад
 'date_from'=>strtotime('-1 month'),
 
 // но меньше сегодня
 'date_to'=>strtotime('today UTC'),
 ));
-    flexbeAPI.query('getLeads', {
 status:0 // новые заявки
 }, function(result){
 var leads = result.data.leads;
 for(var id in leads){
 var lead = leads[id];
 console.log(lead);
 }
 });
status
0 - Новая
1 - В работе
2 - Выполнена
10 - Отменена
11 - Удалена
date_from
timestamp, нижняя граница для фильтрации по дате создания заявки
date_to
timestamp, верхняя граница для фильтрации по дате создания заявки
client_phone
Телефон клиента, ищется точное совпадение
client_email
Email клиента, ищется точное совпадение
start
С какой позиции начинать. По умолчанию 0
count
Количество получаемых заявок. По умолчанию 25
Возвращаемая информация о заявке:
id
Уникальный идентификатор
num
Номер заявки
time
Timestamp времени создания заявки
status
Code — код статуса, name — название статуса
code - name:
0 — Новая
1 — В работе
2 —Выполнена
10 —Отменена
11 —Удалена
client
Массив с информацией о клиенте: name, phone, email
note
Заметки
form_name
Название формы заявки
form_data
Содержание полей из формы заявки
page
Страница, с которой отправлена заявка
url — адрес
name — название
utm
Содержание UTM меток, если они были.
utm_campaign — кампания
utm_medium — тип трафика
utm_term — ключевое слово
utm_content — тип объявления
url — полный адрес страницы
ym_client_id — это анонимный идентификатор, который Яндекс.Метрика автоматически присваивает каждому уникальному посетителю сайта. Действительно в случае, если на сайте подключена Яндекс.Метрика.
ga_client_id — идентификатор, который присваивает сервис Google, при наличии подключенного счета Google.
pay
Информация о счёте/оплате
id — уникальный индентификатор счёта
summ — сумма к оплате
status:
0 — ожидает оплаты
1 — в процессе оплаты
2 — оплачен
3 — ошибка оплаты
time_create —timestamp создания счёта
time_done — timestamp оплаты счёта
desc — комментарий для покупателя
pay_link — ссылка на страницу оплаты
-    // Восстанавливаем удалённую заявку
 if($lead['status']==11){
 $result = $flexbe->changeLead($lead['id'], array(
 'status'=>10,
 ));
 }
changeLead - изменение
Поля для обновления заявки:
id*
Уникальный идентификатор редактируемой заявки
status
0 — Новая
1 — В работе
2 — Выполнена
10 — Отменена
11 — Удалена
client
Массив с информацией о клиенте: name, phone, email
note
Заметки
pay
Информация о счёте/оплате
summ — сумма к оплате
status:
0 — Ожидает оплаты
1 — В процессе оплаты
2 — Оплачен
3 — Ошибка оплаты
desc — комментарий для покупателя
Веб-хуки
Web-hook — это скрипт которому отправляется информация о событии.
Например, при создании новой заявки, наш сервер отправит вашему скрипту информацию о ней. Протокол POST. Код ответа должен быть 200 OK.
Это позволяет максимально быстро получать информацию и избавляет от необходимости отслеживать новые заявки/оплаты путём регулярных обращений к API.
Основные поля:
event
Тип события
site
Информация о сайте
data
Информация о событии (поля заявки)
-    // print_r($_REQUEST);
 [event] => 'lead',
 [site] => Array (
 [id] => 174911 // id аккаунта
 [sub_id] => 180023 // id лендинга (группы страниц)
 [domain] => yourdomain.ru
 [name] => Лендинг
 )
 [data] => Array (
 [id] => 1414
 [num] => 414
 [time] => 1444215670
 [status] => Array
 (
 [code] => 0
 [name] => Новая
 )
 
 [client] => Array
 (
 // ... и т.д.
 )
Событие lead
Вызывается в момент создания заявки.
Веб-хуку в поле data передаётся информация о заявке.
Отправляемая информация о заявке:
id
Уникальный идентификатор
num
Номер заявки
time
timestamp времени создания заявки
status
Code — код статуса, name - название статуса
code — name:
0 — Новая
1 — В работе
2 — Выполнена
10 — Отменена
11 — Удалена
client
Массив с информацией о клиенте: name, phone, email
note
Заметки
form_name
Название формы заявки
form_data
Содержание полей из формы заявки
page
Страница, с которой отправлена заявка
url — адрес
name — название
utm
Содержание UTM меток, если они были.
utm_source — источник / рекламная система
utm_campaign — кампания
utm_medium — тип трафика
utm_term — ключевое слово
utm_content — тип объявления
url — полный адрес страницы
pay
Информация о счёте/оплате
id — уникальный индентификатор счёта
summ — сумма к оплате
status (code / name):
    0 — Ожидает оплаты
    1 — В процессе оплаты
    2 — Оплачен
    3 — Ошибка оплаты
time_create — timestamp создания счёта
time_done — timestamp оплаты счёта
desc — комментарий для покупателя
test — Флаг — тестовый платёж(через тестовый сервер робокассы)
Событие pay
Вызывается в момент сообщения об оплате или ошибки от эквайринга (Робокасса и т.д.)
Повторяются данные события lead (см. выше). Содержит обновлённые данные об оплате.
Помощь
По вопросам работы API пишите на dev@flexbe.com