1. Команды API без сессии

Команды получения общих данных из стандартных справочников, для выполнения которых Не требуется сессия.


Авторизация, регистрация, восстановление пароля в Личном кабинете
Авторизация, регистрация, восстановление пароля пользователя
Справочная информация
Работа с выездами
Работа с промо-кодами

api_version

Команда: api_version

Вернет версию api. Параметры команды отсутствуют.

Метод отправки: GET

Формат запроса:

api_version

Строка запроса:

GET .../api/?api_version

Ответ json:

{"api_version": "1.4"}


ModernLogin

Команда: ModernLogin

Авторизация по номеру телефона в Личном кабинете для получения клиентской сессии. Используется вместе с командой регистрации ModernRegistration.

Метод отправки: GET

Формат запроса:

ModernLogin={"phone": "+79123456789", "pwd": "7110eda4d09e062aa5e4a390b0a572ac0d2c0220"}

Строка запроса:

GET .../api/?ModernLogin=%7B%22phone%22%3A%20%22%2B79123456789%22%2C%20%22pwd%22%3A%20%227110eda4d09e062aa5e4a390b0a572ac0d2c0220%22%7D

где
phone - номер телефона клиента, обязательный параметр;
pwd – пароль, преобразованный с помощью SHA1, обязательный параметр.

Ответ json:

{
  "error":0,
  "Session_id":"F3967266-DDAE-4524-A8AB-7BCDF79A97F1",
  "contr_id":"10013",
  "promo_code_friend":""
 }

где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения в случае ошибки.
Session_id - ID сессии авторизованного клиента;
contr_id - ID клиента;
promo_code_friend - промо-код.


ModernRegistration

Команда: ModernRegistration

Регистрация клиента в Личном кабинете химчистке.

Метод отправки: GET

Формат запроса:

ModernRegistration={"fio": "Тест Тестовый", "phone": "+79123456789", "email": "test@test.com"}

Строка запроса:

GET .../api/?ModernRegistration=%7B%22phone%22%3A%22%2B79123456789%22%2C%22fio%22%3A%22%D0%A2%D0%B5%D1%81%D1%82%20%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%22%7D

где
phone - телефон клиента (логин), обязательный параметр;
fio - ФИО клиента, обязательный параметр;
email - Email клиента, не обязательный параметр;
gender - пол клиента (0 - мужской - по умолчанию, 1 - женский), не обязательный параметр;
birthday - дата рождения, не обязательный параметр;
address - адрес клиента, не обязательный параметр.

Ответ json:

// При успешной регистрации
{
  "error": 0, 
  "Msg": "СМС сообщение с кодом отправлено"
}

// При нахождении телефона на другом клиенте
{
  "error": 1, 
  "Msg": "Данный номер телефона уже зарегистрирован. Попробуйте восстановить пароль"
  "contr_id": "1234",
  "exists": "1"
}

где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения;

Если текст сообщения «Вы зарегистрированы», значит для Вас не настроен шаблоны СМС для ЛК, обратитесь в клиентский сервис.


contr_id - ID клиента;
exists - признак что телефон уже занят другим клиентом.


ModernRememberPwd

Команда: ModernRememberPwd

Восстановление пароля клиентом, зарегистрированного в Личном кабинете.

Метод отправки: GET

Формат запроса:

ModernRememberPwd={"phone":"+79123456789"}

Строка запроса:

GET .../api/?ModernRememberPwd=%7B%22phone%22%3A%20%22%2B79123456789%22%7D

где
phone - телефон клиента, обязательный параметр.

Ответ json:

{
  "error": 0, 
  "Msg": "СМС сообщение с кодом отправлено"
}

где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения.

Если текст сообщения «Вы зарегистрированы», значит для Вас не настроен шаблоны СМС для ЛК, обратитесь в клиентский сервис.



Login

Команда: Login

Команда авторизации под пользователем.

Команда возвращает сессию Session_id, которая используется в командах с пользовательской сессией.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

Login={"User": "Пользователь", "Pwd": "40bd001563085fc35165329ea1ff5c5ecbdbbeef", "AsUser": "1"}

Строка запроса:

GET .../api/?Login=%7B%22User%22%3A+%22%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%22%2C+%22Pwd%22%3A+%2240bd001563085fc35165329ea1ff5c5ecbdbbeef%22%2C+%22AsUser%22%3A+%221%22%7D

где
User – имя пользователя, обязательный параметр;
Pwd – пароль пользователя (преобразованный через SHA-1) , обязательный параметр;

В качестве User / Pwd используются данные (логин/пароль) пользователя Агбис.Химчистка (в программе Агбис.Химчистка, меню «Справочники»-«Пользователи»).

Подробнее:

Подробнее:

Рекомендуется создать отдельного пользователя для работы с API.

AsUser – признак пользователя коммерческого api (равен 1), обязательный параметр.

Ответ json:

{
  "error": 0,
  "Session_id": "0BE170AB-86AF-441F-8523-8C960EA3EC4E",
  "Refresh_id": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4",
  "User_ID": "123"
}

где
Session_id – ID сессии. Время жизни сессии 10 минут;
Refresh_id – ключ обновления сессии без авторизации;
User_ID – ID пользователя.

Сессия активна в течении 10 мин. После будет возвращен код ошибки error = 3, после чего нужно выполнить команду RefreshSession и повторить команду снова.


RefreshSession

Команда: RefreshSession

Обновление ID сессии пользователя.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

RefreshSession={"Refresh_ID": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4"}

Строка запроса:

GET .../api/?RefreshSession=%7B%22Refresh_ID%22%3A+%22D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4%22%7D

где
Refresh_ID – берется из команды Login, обязательный параметр.

Ответ json:

{
  "error": 0,
  "Session_id": "0BE170AB-86AF-441F-8523-8C960EA3EC4E",
  "Refresh_id": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4"
}

где
Session_id – новый ID сессии;
Refresh_id – новый ключ обновления сессии без авторизации.


ExecutedApiCount

Команда: ExecutedApiCount

Общая команда просмотра статистики количества выполненных коммерческих команд API.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

ExecutedApiCount

Строка запроса:

GET .../api/?ExecutedApiCount

Ответ json:

{
  "error": 0,
  "date_list": [
    {
      "date": "02.12.2017",
      "count": "15"
    },
    {
      "date": "03.12.2017",
      "count": "35"
    },
    {
      "date": "04.12.2017",
      "count": "5"
    }
  ]
}
где
date – дата;
count – количество запросов.


ContrTree

Команда: ContrTree

Получение списка групп клиентов.
Используется, например, если необходимо воспроизвести группы клиентов из Агбис.Химчистка

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

ContrTree

Строка запроса:

GET .../api/?ContrTree

Ответ json:

{
  "error": 0,
  "list": [    
    {
      "folder_id": "21",
      "parent_id": "",
      "name": "%D0%9A%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D1%8B"
    },
    {
      "folder_id": "24",
      "parent_id": "21",
      "name": "%D0%A7%D0%B0%D1%81%D1%82%D0%BD%D1%8B%D0%B5%20%D0%BB%D0%B8%D1%86%D0%B0"
    },
    {
      "folder_id": "25",
      "parent_id": "21",
      "name": "%D0%9E%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8"
    }
  ]
}

где
folder_id – ID группы;
parent_id – ID родителя группы;
name – наименование группы.


PriceList

Команда: PriceList

Получение прайс-листа.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

PriceList={"price_id":"12"}

Строка запроса:

GET .../api/?PriceList=%7B%22price_id%22:%2212%22%7D

где
price_id – ID прайс-листа, необязательный параметр. Если не указан, то по умолчанию выдается розничный прайс-лист;
tovar_type - тип отображаемой позиции, необязательный параметр (0 - все товары и услуги, 1 - только товары, 2 - только услуги).

Ответ json:

{
  "error": 0,
  "price_list":[
    { 
      "id": "1",
      "folder_id": "10026",
      "tovar_type": "2",
      "code": "0",
      "name": "%D0%91%D0%BB%D1%83%D0%B7%D0%BA%D0%B0",
      "unit": "1%20%D1%88%D1%82",
      "price": "132,69",
      "group_p": "%D0%A0%D1%83%D0%B1%D0%B0%D1%88%D0%BA%D0%B8",
      "group_c": "%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D1%8B",
      "top_parent": "%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%B8%D0%BB%D1%8C",
      "order_addon_pack_id": "5",
      "sort_index": "",
      "is_price_editable": "1",
      "is_not_for_discount": "0",
      "is_repair": "0",
      "is_percent_price": "0",
      "additional_text": "",
      "short_name": "",
      "index": "",
      "image_id": "0",
      "price_id": "0"
    }
  ]
}

где
price_list - содержит строки прайс-листа:
id – ID услуги/товара в прайс листе;
folder_id – ID группы услуги/товара;
tovar_type - тип позиции (1 - товары, 2 - услуги);
code – артикул;
name – наименование услуги;
unit – единица измерения;
price – цена;
group_p – родительская группа, группы услуги;
group_c – группа, где лежит услуга;
top_parent – верхняя группа;
order_addon_pack_id – номер комплекта доп. реквизитов;
sort_index - индекс сортировки;
is_price_editable - признак цена редактируемая в заказе;
is_not_for_discount - признак не распространять скидки;
is_repair - признак ремонт;
is_percent_price - рассчитывать цену как процент от другой услуги;
additional_text - дополнительная информация;
short_name - краткое наименование;
index - индекс;
image_id - ID картинки услуги;
price_id - ID прайс-листа.


PriceTree

Команда: PriceTree

Группы прайс-листа.

Метод отправки: GET.

Заголовок запроса (Header): не требуется.

Формат запроса:

PriceTree={"id":"12"}

Строка запроса:

GET .../api/?PriceTree=%7B%22id%22:%2212%22%7D

где
id – ID прайс-листа, обязательный параметр.

Ответ json:

{
  "error": 0,
  "price":[
    {
      "folder_id":"10025",
      "parent":"10024",
      "name":"1.+%D0%9A%D0%BE%D0%B6%D0%B0+(%D0%BF%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0)",
      "comm":"",
      "sort_index":""
    }
  ]
}

Где
price - содержит строки группы прайс листа:
folder_id – ID группы;
parent – ID родительской группы;
name – название группы;
comm – комментарий;
sort_index - индекс сортировки.


AddonTypes

Команда: AddonTypes

Получение дополнительных реквизитов.

Метод отправки: GET

Формат запроса:

AddonTypes

Строка запроса:

GET .../api/?AddonTypes

Ответ json:

{
  "error":0,
  "addon_types":[
    {
      "id":"90",
      "group_id":"1",
      "table_name":"DOC_ORDER_SERVICES",
      "descr":"%D0%A1%D0%BB%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F%20(%D1%80%D1%83%D1%87%D0%BD%D0%B0%D1%8F)%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0",
      "value_type":"2",
      "default_int":"",
      "default_str":"",
      "default_bool":"0",
      "default_date":"",
      "default_flt":"",
      "is_default_need":"1",
      "if_null_message":"",
      "print_if_empty":"0",
      "change_price":"2",
      "num":"1,5",
      "is_combo":"0",
      "fullcol":"0",
      "multisel":"0",
      "font_color":"",
      "font_bold":"",
      "multipl":"",
      "hide_item_groups":"",
      "auto_item_groups":"",
      "auto_maximize":"",
      "not_manual_editing":"",
      "change_pr_serv":"",
      "dont_disc_value":"",
      "chang_value":"",
      "affect_user":"",
      "show_display":"",
      "show_difaddon":"",
      "specify_wp":"",
      "comments":"",
      "only_manager":"",
      "addon_str_values":[
      ]
    }
  ]
}
где
addon_types - Массив объектов доп. реквизитов:
id - ID доп. реквизита;
group_id- ID группы доп. реквизита (1 - Описание изделия, 2 - Дефекты изделия, 3 - Дефекты сырья, 4 - Предупреждения, 5 - Иные дефекты);
descr - наименование доп. реквизита;
value_type - тип доп. реквизита (0 - целое, 1 - строка, 2 - логическое, 3 - дата, 5 - вещественное, 6 - метка, 7 - строковые с ценой и количеством, 8 - Строковые с коэффициентом, 9 - Фигура);
default_int - числовое значение по умолчанию (при value_type = 0);
default_str - сроковое значение по умолчанию (при value_type = 1);
default_bool - логическое значение по умолчанию (при value_type = 2);
default_date - дата по умолчанию (при value_type = 3);
default_flt - вещественное значение по умолчанию (при value_type = 5);
comments - комментарий;
font_color - цвет текста;
font_bold - жирный шрифт;
specify_wp - реквизит для уточнения на рабочем месте;
addon_str_values - Массив для выбора строк у доп. реквизита:
id - ID строки;
value_str - строковое описание;
value_flt - числовое значение.


AddonPacks

Команда: AddonPacks

Получение комплектов дополнительных реквизитов.

Метод отправки: GET

Формат запроса:

AddonPacks

Строка запроса:

GET .../api/?AddonPacks

Ответ json:

{
  "error":0,
  "addon_packs":[
    {
      "id":"60",
      "name":"16.%20%D0%9C%D0%B5%D0%BB%D0%BA%D0%B8%D0%B9%20%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82%20%D1%88%D0%B2%D0%B5%D0%B9%D0%BD%D1%8B%D1%85%20%D0%B8%D0%B7%D0%B4%D0%B5%D0%BB%D0%B8%D0%B9",
      "addon_types":[
        2,
        109,
        181,
        225,
        226,
        227,
        228
      ]
    },
    ...
  ],
  ...
}
где
addon_packs - массив объектов комплектов:
id - ID комплекта;
name - наименование комплекта;
addon_types - Массив ID доп. реквизитов, входящих в комплект, из команды AddonTypes.


ReceptionCenters

Команда: ReceptionCenters

Получение списка складов (приёмные пункты).

Метод отправки: GET

Формат запроса:

ReceptionCenters={"with_photo":"1","folders":"1,2,3","lang_id":"0"}

Строка запроса:

GET .../api/?ReceptionCenters=%7B%22with_photo%22%3A%221%22%2C%22folders%22%3A%221%2C2%2C3%22%2C%22lang_id%22%3A%220%22%7D

где
with_photo - признак получать список приемных пунктов с фото (не обязательный);
folders - список групп приёмных пунктов (не обязательный);
lang_id - язык перевода (не обязательный);

Ответ json:

{
  "error":0,
  "list":[
    {
      "id":"1",
      "name":"%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9",
      "address":"%D0%BF%D1%80-%D1%82%20%D0%9C%D0%B5%D1%82%D0%B0%D0%BB%D0%BB%D1%83%D1%80%D0%B3%D0%BE%D0%B2%2043-23",
      "working_hours":"",
      "phone":"999-999-999-999",
      "group":"%D0%92%D0%BD%D0%B5%20%D0%B3%D1%80%D1%83%D0%BF%D0%BF",
      "location":"53.764419,87.117967",
      "cabinet": "0",
      "folder_id":"1"
      "name_for_clients": "%D0%A5%D0%B8%D0%BC%201",
      "use_himinfo": "1",
      "city": "%D0%9D%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%B7%D0%BD%D0%B5%D1%86%D0%BA",
      "comment": "",
      "metro": "",
      "district_id":"1002",
      "working_days": "1%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C2%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C3%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C4%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C5%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C6%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C7%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-",
      "is_work_shop": "0",
      "sclad_is_mobil": "0",
      "sclad_not_automated": "0",
      "photo": ""
    }
  ]
}

где
list - массив объектов складов:
id - ID склада;
name - наименование склада;
address - адрес склада;
working_hours - время работы;
phone - телефон склада;
group - группа склада;
location - геолокация, если вкл. определение геолокации;
cabinet - признак склад Чистомат;
folder_id - ID группы склада;
name_for_clients - название склада для ХимИнфо;
use_himinfo - признак отображения склада на Химинфо, значение 0 или 1;
city - город склада;
comment - комментарий по складу;
metro - ближайшее метро до склада;
district_id - номер района;
working_days - рабочие дни склада;
is_work_shop - признак склад является цехом;
sclad_is_mobil - признак мобильный приемный пункт;
sclad_not_automated - признак неавтоматизированный приемный пункт;
photo - фото склада в строке base64.


Regions

Команда: Regions

Получение списка регионов (районы).

Метод отправки: GET.

Заголовок запроса (Header): не требуется.

Формат запроса:

Regions

Строка запроса:

GET .../api/?Regions

Ответ json:

{
  "error":0,
  "regions":[
    {
      "id":"1002",
      "name":"test"
    }
  ]
}

где
regions - массив объектов регионов:
id – ID региона;
name – наименование региона.


GetStatusOrder

Команда: GetStatusOrder

Поиск статуса заказа по номеру заказа.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

GetStatusOrder={"doc_num":"12345"}

Строка запроса:

GET .../api/?GetStatusOrder=%7B%22doc_num%22%3A%2212345%22%7D

где
doc_num – номер заказа, обязательный параметр.

Ответ json:

{
  "error": 0, 
  "Msg": "%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9",
  "sclad_to": "123",
  "status_id": "4"
}

где
Msg – статус;
sclad_to – склад приема;
status_id – ID статуса.


TripsHr

Команда: TripsHr

Свободное время начала выезда на дату. Для задания корректного времени параметра hr для команды TripOrder.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

TripsHr={"date": "01.01.2020", "car_id": "2", "id": "123"}

Строка запроса:

GET .../api/?TripsHr=%7B%22date%22%3A%2201.01.2020%22%2C%22car_id%22%3A%222%22%2C%22id%22%3A%22123%22%7D

где
date – дата, на которую создается резерв (формат 21.12.2020), обязательный параметр;
id – ID выезда (команда Trips), необязательный параметр. Указывается при редактировании выезда;
region_id – ID региона, необязательный параметр. С учетом по региону;
car_id – мобильный склад, необязательный параметр. С учетом по мобильному складу.

Ответ json:

{
  "error": 0,
  "hr": [
    "00:00",
    "01:00",
    "02:00",
    "03:00",
    "04:00",
    "05:00",
    "06:00",
    "07:00",
    "08:00",
    "12:00",
    "13:00",
    "14:00",
    "15:00",
    "16:00",
    "18:00",
    "19:00",
    "22:00",
    "23:00"
  ]
}

где
hr - массив строк не занятым временем выезда.


TripsHrTo

Команда: TripsHrTo

Свободное время окончания выезда на дату. Для задания корректного времени параметра hr_to для команды TripOrder.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

TripsHrTo={"date": "01.01.2020", "hr_to": "12:00", "car_id": "2", "id": "123"}

Строка запроса:

GET .../api/?TripsHrTo=%7B%22date%22%3A%2201.01.2020%22%2C%22hr_to%22%3A%2212%3A00%22%2C%22car_id%22%3A%222%22%2C%22id%22%3A%22123%22%7D

где
date – дата, на которую создается резерв (формат 21.12.2020), обязательный параметр;
hr_to – предполагаемое время окончания (Формат – «10:00», «07:00»), обязательный параметр;
id – ID выезда (команда Trips), необязательный параметр. Указывается при редактировании выезда;
region_id – ID региона, необязательный параметр. С учетом по региону;
car_id – мобильный склад, необязательный параметр. С учетом по мобильному складу.

Ответ json:

{
  "error": 0,
  "hr_to": [
    "12:00",
    "13:00",
    "14:00",
    "15:00",
    "16:00",
    "17:00",
    "18:00",
    "19:00",
    "20:00",
    "21:00",
    "22:00",
    "23:00",
    "23:59"
  ]
}

где
hr_to - массив строк не занятым временем окончания выезда.


Cars

Команда: Cars

Список выездных машин (выездные ПП)

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

Cars

Строка запроса:

GET .../api/?Cars

Ответ json:

{
  "error": 0,
  "cars": [
    {
      "id": "10010",
      "name": "%D0%9C%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D1%81%D0%BA%D0%BB%D0%B0%D0%B4",
      "address": "",
      "phone": "",
      "price_list_id": ""
    }
  ]
}

где
cars - массив складов/пп:
id – ID склада/пп;
name – название склада/пп;
address - адрес склада/пп;
phone - телефон склада/пп;
price_list_id - ID прайс листа склада/пп.


PromoCode

Команда: PromoCode

Проверка промо-кода. Вернет список рабочих адресов для существующего промо-кода, если они указаны.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса:

PromoCode={"promo":"123"}

где
promo - проверяемый промо-код.

Строка запроса:

GET .../api/?PromoCode=%7B%22promo%22%3A%22123%22%7D

Ответ json:

{
  "error": 0,
  "promo_code_id": "10021",
  "working_address": [
    {
      "id": 1004,
      "promo_code_id": 10021,
      "address": "%D0%90%D0%B4%D1%80%D0%B5%D1%81%201"
    },
    {
      "id": 1005,
      "promo_code_id": 10021,
      "address": "%D0%90%D0%B4%D1%80%D0%B5%D1%81%202"
    }
  ]
}

где
id – ID адреса промо-кода;
promo_code_id – ID промо-кода;
address – адрес промо-кода.