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