Команды получения общих данных из стандартных справочников, для выполнения которых Не требуется сессия.
Авторизация. ModernLogin
Авторизация. AuthByAddon
Регистрация. ModernRegistration
Восстановление пароля. ModernRememberPwd
Авторизация. Login
Обновление ID сессии. RefreshSession
Просмотр статистики количества выполненных запросов через записывающие команды API. ExecutedApiCount
Версия API. api_version
Группы клиентов. ContrTree
Прайс-лист. PriceList
Группы прайс-листа. PriceTree
Дополнительные реквизиты. AddonTypes
Комплекты доп. реквизитов. AddonPacks
Склады. ReceptionCenters
Регионы (районы). Regions
Статус заказа. GetStatusOrder
Свободное время начала выезда на дату. TripsHr
Свободное время окончания выезда на дату. TripsHrTo
Список выездных машин. Cars
Команда: 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 - промо-код.
Команда: AuthByAddon
Авторизация по значению дополнительного реквизита в Личном кабинете для получения клиентской сессии.
Метод отправки: GET
Формат запроса:
AuthByAddon={"id_addon":100245,"login":"00000001","psw":"40bd001563085fc35165329ea1ff5c5ecbdbbeef"}
Строка запроса:
GET .../api/?AuthByAddon=%7B%22id_addon%22%3A100245%2C%22login%22%3A%2200000001%22%2C%22psw%22%3A%2240bd001563085fc35165329ea1ff5c5ecbdbbeef%22%7D
где
id_addon - вн.номер дополнительного реквизита, обязательный параметр;
login - значение дополнительного реквизита, обязательный параметр;
psw – пароль, преобразованный с помощью 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
Регистрация клиента в Личном кабинете химчистке.
Ограничение на выполнение, не больше 3 запросов за 10 секунд с одного IP.
В противном случает будет выдано предупреждение слишком частые запросы, с увеличением времени ожидания
Метод отправки: 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 - адрес клиента, не обязательный параметр;
registered_from - приложение, из которого пришел запрос на регистрацию, не обязательный параметр.
Варианты значений registered_from:
1 - МП ХимчисткаИнфо;
2 - Чистомат;
3 - Агент химчистки;
4 - ЛК;
5 - ПМП;
6 - Коммерческое API;
7 - web форма консьержа/выездов;
8 - брендированное приложение.
Можно передавать пользовательские значения, они должны быть больше 1000 (например, регистрация в мобильном приложении iOS - 1001, регистрация в мобильном приложении Android - 1002).
Ответ json:
// При успешной регистрации { "error": 0, "Msg": "СМС сообщение с кодом отправлено" } // При нахождении телефона на другом клиенте { "error": 1, "Msg": "Данный номер телефона уже зарегистрирован. Попробуйте восстановить пароль" "contr_id": "1234", "exists": "1" }
где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения;
Если текст сообщения "Вы зарегистрированы", значит для Вас не настроен шаблоны СМС для ЛК, обратитесь в клиентский сервис.
contr_id - ID клиента;
exists - признак что телефон уже занят другим клиентом.
Команда: ModernRememberPwd
Восстановление пароля клиентом, зарегистрированного в Личном кабинете.
Ограничение на выполнение, не больше 3 запросов за 10 секунд с одного IP и .
В противном случает будет выдано предупреждение слишком частые запросы, с увеличением времени ожидания
Метод отправки: 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
Команда авторизации под пользователем.
Команда возвращает сессию Session_id, которая используется в командах с пользовательской сессией.
Сессия активна в течении 10 мин. После будет возвращен код ошибки error = 3, после чего нужно выполнить команду RefreshSession и повторить команду снова.
Ограничение на выполнение, не больше 10 авторизаций за раз не дождавшись ответа от предыдущих попыток без учета IP.
В противном случает будет выдано предупреждение "429 Too many requests" на 2 минуты.
Метод отправки: 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 пользователя.
Команда: 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
Общая команда просмотра статистики количества выполненных коммерческих команд 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" } ] }где
Команда: api_version
Вернет версию api. Параметры команды отсутствуют.
Метод отправки: GET
Формат запроса:
api_version
Строка запроса:
GET .../api/?api_version
Ответ json:
{"api_version": "1.4"}
Команда: 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
Получение прайс-листа.
Метод отправки: 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
Группы прайс-листа.
Метод отправки: 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
Получение дополнительных реквизитов.
Метод отправки: 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":[ ] } ] }где
Команда: 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 ] }, ... ], ... }где
Команда: 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
Получение списка регионов (районы).
Метод отправки: GET.
Заголовок запроса (Header): не требуется.
Формат запроса:
Regions
Строка запроса:
GET .../api/?Regions
Ответ json:
{ "error":0, "regions":[ { "id":"1002", "name":"test" } ] }
где
regions - массив объектов регионов:
id – ID региона;
name – наименование региона.
Команда: 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
Свободное время начала выезда на дату. Для задания корректного времени параметра 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
Свободное время окончания выезда на дату. Для задания корректного времени параметра 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
Список выездных машин (выездные ПП)
Метод отправки: 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
Проверка промо-кода. Вернет список рабочих адресов для существующего промо-кода, если они указаны.
Метод отправки: 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 – адрес промо-кода.