API-Документация Flexbe

API позволяет получать и изменять информацию о заявках, клиентах, оплатах, а также отправлять информацию о событиях вашим скриптам.

Работа с API осуществляется путём отправки GET или POST запросов на адрес вида:

http://{ваш_домен}/mod/api/?api_key={ключ}

api_key используется для подписи всех запросов к API, получить и изменить его можно в панели управления.

Данные возвращаются в кодировке 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

E-mail клиента, ищется точное совпадение



start

С какой позиции начинать. По умолчанию 0



count

Количество получаемых заявок. По умолчанию 25


Возвращаемая информация о заявке:


id

Уникальный идентификатор



num

Номер заявки



time

Timestamp времени создания заявки



status

Code - код статуса, name - название статуса

code - name:

0 - Новая

1 - В работе

2 - Выполнена

10 - Отменена

11 - Удалена



client

Массив с информацией о клиенте (name, phone, e-mail)



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:

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, e-mail)



note

Заметки



pay

Информация о счёте/оплате

summ - сумма к оплате

status:

0 - Ожидает оплаты
1 - В процессе оплаты
2 - Оплачен
3 - Ошибка оплаты

desc - комментарий для покупателя


Веб-хуки

Web-hook — это скрипт которому отправляется информация о событии.

Например, при создании новой заявки, наш сервер отправит вашему скрипту информацию о ней.

Это позволяет максимально быстро получать информацию и избавляет от необходимости отслеживать новые заявки/оплаты путём регулярных обращений к 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, e-mail)



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