мета-данные страницы

Коммерческое API

Административное API версии 1.0

Описание API

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


Схема работы API


Формат команд

Все значения параметров команд должны быть преобразованы, через js encodeURIComponent или подобные функции.

Пример:

//himinfo.ru/cl/{Path}/api/?command={"key":"value"}&SessionID=...&callback=...

Преобразованный пример:

//himinfo.ru/cl/{Path}/api/?command=%7B%22key%22%3A%22value%22%7D&SessionID=...&callback=...

где:

  • {Path} - имя для Химчистки. Для получения этого параметра обратитесь в Клиентский сервис;
  • command - название выполняемой команды;
  • {«key»: «value»} - параметры команды (значение=ключ). Представляет собой текстовую аналогию записи объекта на JS;
  • SessionID - в зависимости от команды обязательный параметр. Указывает ID сессии для выполнения команды. Выдается при выполнении команды авторизации;
  • callback - необязательный параметр. Указывает на имя процедуры для jsonP, которое вернется в ответе с json строкой.

В ответе на запрос могут присутствовать поля, не описанные в настоящей документации. Приложению следует их игнорировать.


Коды ошибок API

Код ошибкиТекст ошибки Описание
100 Ошибка подключения к БД1
101 Ошибка выполнения запроса1
102 Слишком частые запросы
103 Отсутствуют команды на выполнение. Не правильно была сформирована API команда или такой не существует.
104 Отсутствуют параметры команды Не правильно указаны параметры в команде API.
105 Некорректные данные Не правильный формат данных в параметрах команды API.
106 Недействительный SessionID

1 - обратиться к разработчикам Агбис.


Команды

Справочная информация

Работа с клиентами

Работа с заказами

Работа с услугами

Оплаты заказов

Статистическая информация

Устаревшие команды

Авторизация. Login

Команда: Login

Только для Коммерческого API
Общая команда авторизации.

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

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

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

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

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

.../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 и повторить команду снова.


Проверка валидности сессии. ValidSessionID

Команда: ValidSessionID

Проверка валидности SessionID.

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

Формат запроса: ValidSessionID&SessionID=

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

.../api/?ValidSessionID&SessionID=...

где
SessionID – GUID проверяемой сессии.

Ответ json:

{
  "error": 0, 
  "user_id": "123"
}

где
user_id – ID пользователя, которому принадлежит сессия.


Обновление ID сессии. RefreshSession

Команда: RefreshSession

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

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

Формат запроса: RefreshSession={"Refresh_ID": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4"}

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

.../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 – новый ключ обновления сессии без авторизации.


Выход. Logout

Команда: Logout

Выход, завершение работы сессии

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

Формат запроса: Logout&SessionID=

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

.../api/?Logout&SessionID=...

где
SessionID - ID сессии, обязательный параметр. Возвращает команда авторизации Login.

Ответ json:

{"error": 0}

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


Просмотр статистики количества выполненных запросов через записывающие команды API. ExecutedApiCount

Команда: ExecutedApiCount

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

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

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

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

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

…/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

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

.../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"}

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

.../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",
      "top_parent":"%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%B8%D0%BB%D1%8C",
      "order_addon_pack_id": "5",
      "is_price_editable": "1",
      "is_not_for_discount": "0",
      "is_repair": "0",
      "is_percent_price": "0",
      "additional_text": "",
      "short_name": "",
      "index": "",
      "price_id": "0"
    }
  ]
}

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


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

Команда: PriceTree

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

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

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

Формат запроса: PriceTree={"id":"12"}

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

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

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

Ответ json:

{
  "error": 0,
  "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 – комментарий.


Дополнительные реквизиты. AddonTypes

Команда: AddonTypes

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

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

Формат запроса: .../api/?AddonTypes

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

.../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 - Массив для выбора строк у доп. реквизита (при value_type = 1 и 7):
id - ID строки;
value_str - строковое описание;
value_flt - числовое значение.


Комплекты доп. реквизитов. AddonPacks

Команда: AddonPacks

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

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

Формат запроса: .../api/?AddonPacks

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

.../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.


Регионы (районы). Regions

Команда: Regions

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

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

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

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

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

.../api/?Regions

Ответ json:

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

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


Списки ВДС и ДС. GetListsVdsDsForAll

Команда: GetListsVdsDsForAll

Получение списков активных Внешних дисконтных схем (ВДС) и дисконтных схем (ДС), которые доступны для всех клиентов.

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

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

Формат запроса: GetListsVdsDsForAll&SessionID=

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

.../api/?GetListsVdsDsForAll&SessionID=

Ответ json:

{
  "error": 0, 
  "vds": [
    {
      "id": "100100100183", 
      "title": "100100100183",
      "type_of_scheme": "0",
      "type_of_action": "0",
      "comment": "",
      "is_active": "1",
      "type_of_zeroing": "0",
      "forbid_reuse": "0",
      "block_used_bar": "0",
      "action_time": "3",
      "active_with": "",
      "active_to": "",
      "condition_id": "1",
      "summ_discount": "0",
      "is_add_bonus_ones": "0",
      "bonus_end_dt": "",
      "bonus_active_before": "",
      "bonus_day_active": "",
      "max_percent_in_zakaz": "",
      "select_vds_id": "",
      "bonus_one_time": "0",
      "bonus_tp": "0",
      "bonus_summ": "",
      "is_for_sclads": "1",
      "discount": "0",
      "is_disc_for_folders": "1",
      "is_for_tovar": "1",
      "active_times": [
        {
          "day_of_week": "2",
          "is_active": "1",
          "time_first": "00%3A00%3A00",
          "time_last": "23%3A59%3A00"
        },
        {
          "day_of_week": "3",
          "is_active": "1",
          "time_first": "00%3A00%3A00",
          "time_last": "23%3A59%3A00"
        },
        {
          "day_of_week": "4",
          "is_active": "1",
          "time_first": "00%3A00%3A00",
          "time_last": "23%3A59%3A00"
        },
        {
          "day_of_week": "5",
          "is_active": "1",
          "time_first": "00%3A00%3A00",
          "time_last": "23%3A59%3A00"
        },
        {
          "day_of_week": "6",
          "is_active": "1",
          "time_first": "00%3A00%3A00",
          "time_last": "23%3A59%3A00"
        },
        {
          "day_of_week": "7",
          "is_active": "1",
          "time_first": "00%3A00%3A00",
          "time_last": "23%3A59%3A00"
        },
        {
          "day_of_week": "1",
          "is_active": "1",
          "time_first": "00%3A00%3A00",
          "time_last": "23%3A59%3A00"
        }
      ],
      "sclads": ["10010","10013"],
      "discounts_service_groups": [
        {
          "folder_id": "10015",
          "parent": "",
          "discount": "44"
        }
      ],
      "discounts_services": [
        {
          "tovar_id": "10018",
          "discount": "10",
          "price_before": "1000",
          "price_after": "900",
          "fix_price": "0"
        }
      ],
      "promo_codes": [
        {
          "promo_code_id": "10021",
          "code": "10334",
          "price_list_id": "",
          "is_active": "1"
        }
      ]
    }
  ], 
  "ds": [
    {
      "id": "4", 
      "title": "3%25%20%D0%9D%D0%B0%D0%BA%D0%BE%D0%BF%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%203-15%25"
    }
  ]
}

где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
vds – массив строк внешних дисконтных схем:
id - ID ВДС;
title - наименование ВДС;
type_of_scheme - тип схемы ВДС (0 - Скидка, 1 - Начисление бонуса);
type_of_action - вид действия ВДС (0 - По префиксу штрих-кода в заказе, 1 -По штрихкоду в заказе, 2 - При начислении депозита);
forbid_reuse - запретить повторное использование ВДС разными клиентами;
block_used_bar - блокировать повторное использование ШК;
comment - комментарий;
is_active - активность ВДС;
type_of_zeroing - тип обнуления (0 - Не обнулять, 1 - Для всех услуг, 2 - Для тех услуг, которые участвуют);
action_time - действие ВДС (0 - Всегда, 1 - Только раз в месяц, 2 - Только раз, 3 - В период времени);
active_with - действует ВДС начиная с указанной даты, при action_time - 3; active_to - действует ВДС заканчивая до указанной даты, при action_time - 3; condition_id - применяется к Ко всем клиентам и заказам - 1, К клиентам, которые созданы сегодня - 2, В течение дня создания первого заказа - 3, На первый заказ - 4;
summ_discount - вид суммирования (0 - Использовать глобальные настройки, 1 - Суммировать, 2 - Не суммировать);
is_add_bonus_ones - признак начислять бонус 1 раз каждому клиенту;
bonus_end_dt - начислять бонусы до указанной даты;
bonus_active_before - начисленные бонусы действуют до указанной даты;
bonus_day_active - или действуют несколько дней с момента активации, вместо bonus_active_before;
max_percent_in_zakaz - максимальный процент оплаты заказа;
select_vds_id - оплачивать при выбранной ВДС (ID ВДС);
bonus_one_time - только разовое использование для начисленных бонусов;
bonus_tp - начислять бонус: С фиксированной суммой - 0, При выдаче заказа как процент от суммы заказа - 1, Дифференцированное начисление бонуса(цена) - 2, Дифференцированное начисление бонуса(процент) - 3, При выдаче заказа, рассчитанный по скрипту - 4;
bonus_summ - сумма бонуса;
is_for_sclads - действует только для складов;
discount - скидка по умолчанию на все группы услуг;
is_disc_for_folders - разная скидка по группам услуг;
is_for_tovar - Скидка по услугам;
active_times - массив строк времени действия:
day_of_week - день недели;
is_active - активено;
time_first - время начала;
time_last - время окончания;
sclads - Массив ID складов, где применяется ВДС;
discounts_service_groups - массив строк скидок по группам услуг:
folder_id - ID группы услуги;
parent - ID родителя группы услуги folder_id;
discount - скидка применяемая на группу услуги;
discounts_services - массив строк скидок по услугам:
tovar_id - ID услуги/товара;
discount - скидка;
fix_price - фиксированная цена;
price_before - цена до применения скидки;
price_after - цена после применения скидки;
promo_codes - массив строк промо-кодов ВДС:
promo_code_id - ID промокода;
code - промо-код;
price_list_id - ID прайс-листа промо-кода;
is_active - активность промо-кода;
ds – массив строк дисконтных схем:
id - ID ДС;
title - наименование ДС.


Списки срочности, виды детской одежды и наценки. GetListsOrderTNDForAll

Команда: GetListsOrderTNDForAll

Получение всех списков срочности, видов детской одежды и наценки.

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

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

Формат запроса: GetListsOrderTNDForAll&SessionID=

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

.../api/?GetListsOrderTNDForAll&SessionID=...

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

Ответ json:

{
  "error": 0, 
  "order_dirties": [
    {
      "id": "1001", 
      "name": " %D0%9E%D1%87%D0%B5%D0%BD%D1%8C%20%D1%81%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D0%B7%D0%B0%D0%B3%D1%80%D1%8F%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C"
    },
    {
      "id": "1005", 
      "name": "%D0%A1%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D0%B7%D0%B0%D0%B3%D1%80%D1%8F%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C"
    }
  ], 
  "order_nurseries": [
    {
      "id": "1001", 
      "name": "%D0%94%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F"
    },
    {
      "id": "1002", 
      "name": "%D0%9D%D0%B5%20%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F"
    }
  ]
  "order_times": [
    {
      "id": "1002", 
      "name": "%D0%9D%D0%B5%20%D1%81%D1%80%D0%BE%D1%87%D0%BD%D1%8B%D0%B9"
    },
    {
      "id": "1004", 
      "name": "%D0%A1%D1%80%D0%BE%D1%87%D0%BD%D1%8B%D0%B9%2024%20%D1%87%D0%B0%D1%81%D0%B0"
    }
  ]
}
где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
order_dirties – массив строк наценки услуг;
order_nurseries – массив строк видов детской одежды для услуг;
order_times – массив строк типов срочности заказа;
Msg – описание ошибки (при error = 1).


Работа с клиентами

Создание, изменение клиента. ContragForAll

Команда: ContragForAll

Создание, изменение клиента.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

.../api/?ContragForAll

Тело запроса тип json:

{
  "ContragForAll":{
    "name": "%D0%A2%D0%B5%D1%81%D1%82%20%D0%90%D0%9C%D0%9E",
    "fullname": "%D0%A2%D0%B5%D1%81%D1%82%20%D0%90%D0%9C%D0%9E%20%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D1%81%D1%82",
    "teleph_cell": "%2B79990009915",
    "barcode": "778855522211",
    "gender": "1",
    "address": "%D1%82%D0%B5%D1%81%D1%82%201",
    "email": "example%40example.com",
    "discount": "23,4",
    "birthday": "15.02.1980",
    "scheme_id": "1001"
  },
  "SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}

где
contr_id – ID клиента, если указано поле, то будет поиск этого клиента для изменения, не обязательный параметр.
name – короткое имя (например: Иванов И.И.), обязательный параметр;
fullname – полное имя (например: Иванов Иван Иванович), обязательный параметр;
contrag_type – тип клиента (1 – организации; 2 – частные лица; 3 – Организации по договорам; по умолчанию 1), не обязательный параметр;
teleph_cell – сотовый телефон (обязательно в начале должен присутствовать символ +, кодируется символами - %2B), не обязательный параметр;
telephone – городской телефон, не обязательный параметр;
barcode – номер карты, не обязательный параметр;
gender – пол клиента (0-мужской, 1-женский), не обязательный параметр;
address – адрес, не обязательный параметр;
email – элек. почта, не обязательный параметр;
discount - скидка(разделитель запятая), не обязательный параметр;
birthday – день рождения (формат dd.mm.yyyy), не обязательный параметр;
agree_to_receive_sms – согласие на отправку сервисных смс, не обязательный параметр;
agree_to_receive_adv_sms – согласие на отправку рекламных смс, не обязательный параметр;
agree_to_receive_adv_email - согласие на отправку рекламных email, не обязательный параметр;
scheme_id – ID ДС, (берется из команды GetListsVdsDsForAll, массив строк ds), не обязательный параметр;
SessionID – ID сессии.

Для всех значений ключей json строки делается URI кодирование (например, можно использовать метод javascript encodeURIComponent).

Ответ json:

{
  "error": 0,
  "contr_id": "12345",
  "WasNew": "1"
}

где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
contr_id – ID созданного клиента в Агбис;
WasNew – признак добавления клиента (1 – добавлен как новый, 0 – обновленсуществующий).
Msg – описание ошибки (при error = 1).


Информация по клиенту. ContrInfoForAll

Команда: ContrInfoForAll

Получение информации по клиенту.

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

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

Формат запроса: ContrInfoForAll={"contr_id":"12345"}&SessionID=BBAB6C13-A9BE-4159-8A0C-332F813A7B49

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

.../api/?ContrInfoForAll=%7B%22contr_id%22:%2212345%22%7D&SessionID=BBAB6C13-A9BE-4159-8A0C-332F813A7B49

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

Ответ json:

{
  "error": 0, 
  "png": "EB831E9B-472E-4D30-9AAF-20296E6D0017",
  "dor_id": "12345",
  "contr_id":"10013",
  "name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81+%D0%A2%D0%B5%D1%81%D1%82+%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8%D1%87","short_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
  "fone":"",
  "fone_cell":"%2B79990009900",
  "email":"test@test.com",
  "folder_id": "24",
  "agree_to_receive_sms":"1",
  "agree_to_receive_adv_sms":"1",
  "address":"%D0%9D%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%B7%D0%BD%D0%B5%D1%86%D0%BA,+123-+4",
  "barcode":"1600000100138",
  "discount":"0",
  "scheme_id": "",
  "discount_scheme_name": "",
  "is_family": "0",
  "gender":"0",
  "sp":"2",
  "source":"",
  "last_discount":"15",
  "region_id":"",
  "full_orders_cost":"693942,49",
  "order_not_pay":"72",
  "order_count":"114",
  "deposit":"0",
  "bonus":"1237,75",
  "dolg":"520504,4",
  "promo_code":"P2HZ3",
  "lng":"RU",
  "need_confirm_contract":"0",
  "version_contract":"0",
  "birth_day":"01.10.1974",
  "addresses":[],
  "date_last_ds": "28.06.2022 13:52:08"
}

Где
error - успешность выполнения команды;
contr_id – ID клиента;
name - имя клиента;
fone - обычный телефон;
fone_cell - сотовый телефон;
email - электронная почта;
folder_id - ID группы клиента;
address - адрес клиента;
agree_to_receive_sms - согласен получать СМС о готовности заказов;
agree_to_receive_adv_sms - согласен получать рекламные и поздравительные СМС;
barcode - номер карточки клиента;
discount - процент скидки клиента;
scheme_id - ID дисконтной схемы;
discount_scheme_name - Наименование дисконтной схемы;
is_family - признак семейная скидка;
source - любой текст;
agree_save_card_pay – согласие клиента на сохранение карты оплаты;
birth_day – дата рождения;
bonus – остаток бонуса клиента;
deposit – остаток депозита клиента;
dolg – сумма долга клиента;
gender – пол клиента (0-мужской, 1-женский);
order_count – количество заказов;
order_not_pay – количество не оплаченных заказов;
promo_code – используемый промо-код;
region_id – район;
sp – тип клиента (1- организация, 2- физическое лицо);
date_last_ds - дата присвоения последней ДС.


Информации по клиенту. ContragInfoForAll

Команда: ContragInfoForAll

Получение информации о клиенте по телефону.

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

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

Формат запроса: ContragInfoForAll={"teleph_cell":"+79990009900"}&SessionID=

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

.../api/?ContragInfoForAll=%7B%22teleph_cell%22%3A%22%2B79990009900%22%7D&SessionID=...

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

Ответ json:

{
  "error": 0,
  "contr_id": "10057",
  "fullname": "%D0%A2%D0%B5%D1%81%D1%82+%D0%90%D0%9C%D0%9E+%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D1%81%D1%82",
  "name": "%D0%A2%D0%B5%D1%81%D1%82+%D0%90%D0%9C%D0%9E",
  "teleph_cell": "%2B79990009917",
  "email": "example@example.com",
  "folder_id": "24",
  "address": "%D1%82%D0%B5%D1%81%D1%82+1",
  "barcode": "778855522212",
  "discount": "23,4",
  "gender": "1",
  "birthday": "15.02.1980"
}

где
contr_id – ID клиента;
name – короткое имя;
fullname – полное имя;
teleph_cell – сотовый телефон (обязательно в начале должен присутствовать символ +, кодируется символами - %2B);
barcode – номер дисконтной карты;
gender – пол клиента (0-мужской, 1-женский);
address – адрес;
email – электронная почта;
folder_id - ID группы клиента;
discount - скидка(разделитель запятая);
birthday – день рождения (формат dd.mm.yyyy);
SessionID – ID сессии.


Пополнение бонусного счета клиента. AddBonusForAll

Команда: AddBonusForAll

Начисляет на клиента бонусы по ID клиента или по номеру карты. Может использоваться, например, вознаграждение за первый заказ или регистрацию на сайте

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

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

Формат запроса: AddBonusForAll={"contr_id":"12345","amount":"125.85","active_before":"25.05.2022","max_percent_in_zakaz":"12.4","bonus_type_id":"1001","comment":"Тест"}&SessionID=

где
contr_id – ID клиента(если не указан, то поиск идет по barcode), обязательный параметр если не указан barcode;
barcode – номер карты клиента (если не указан, то поиск идет по contr_id), обязательно поле если не указан contr_id;
amount – сумма бонусов, обязательный параметр;
active_before - бонус действует до этой даты, не обязательный параметр;
max_percent_in_zakaz - максимальный процент оплаты заказа, не обязательный параметр;
bonus_type_id - ID типа бонусного начисления, не обязательный параметр;
comment - комментарий, не обязательный параметр.

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

.../api/?AddBonusForAll=%7B%22contr_id%22%3A%2212345%22%2C%22amount%22%3A%22125.85%22%2C%22active_before%22%3A%2225.05.2022%22%2C%22max_percent_in_zakaz%22%3A%2212.4%22%2C%22comment%22%3A%22%D0%A2%D0%B5%D1%81%D1%82%22%7D&SessionID=

Ответ json:

{"error":0}

где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
Msg – описание ошибки (при error = 1).


Список бонусов клиента за период. BonusesBetweenForAll

Команда: BonusesBetweenForAll

Получение списка бонусов клиента в указанный промежуток времени.

Данная команда с большими периодами может долго выполнятся, из за большого количества возвращаемых данных и вылетать по timeout! Рекомендуется в таких случаях уменьшать период.

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

Заголовок запроса (Header):
Content-type: application/json; charset=UTF-8 - обязательный параметр
Accept-Encoding: deflate - сжатие возвращаемого ответа, не обязательный параметр.

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

.../api/?BonusesBetweenForAll

Тело запроса тип json:

{
  "BonusesBetweenForAll":{
    "contr_id": "10013",
    "StartDate": "01.03.2021",
    "StopDate": "30.03.2021"
  },
  "SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}

где
contr_id - ID клиента;
StartDate – дата начала, обязательный параметр;
StopDate – дата окончания, обязательный параметр.

Ответ json:

{
  "error": 0,
  "bonuses": [
    {
      "bonus_id": "100624",
      "parent_bonus_id": "",
      "doc_date": "03.03.2021",
      "doc_time": "11:47:36",
      "kredit": "150",
      "already_payed": "10",
      "bonus_rest": "140",
      "active_before": "",
      "max_percent_in_zakaz": "",
      "one_time": "0",
      "comment": "",
      "bonus_type_id": "1001",
      "bonus_type_name": "1222"
    }
  ],
  "bonus_payments": [
    {
      "id": "100604",
      "bonus_id": "100624",
      "doc_date": "23.03.2021",
      "doc_time": "11:10:21",
      "debet": "10",
      "dor_id": "1001490",
      "doc_num": "000124"
    }
  ]
}

где
bonuses – массив объектов начислений бонусов;
bonus_id - ID бонуса;
parent_bonus_id - ID родительского бонуса, в связке c bonus_id;
doc_date - Дата начисления бонусов;
doc_time - Время начисления бонусов;
kredit - Сумма начисления бонуса;
already_payed - Потрачено бонуса;
bonus_rest - Остаток бонуса;
active_before - Дата до которой действуют бонусы;
max_percent_in_zakaz - Максимальный процент оплаты бонусами;
one_time - Признак только разовое использование;
comment - Комментарий;
bonus_type_id - ID типа бонусного начисления;
bonus_type_name - Наименование типа бонусного начисления;

bonus_payments – массив объектов оплат бонусами;
id - ID оплаты бонусом;
bonus_id - ID бонуса, которым оплачивали;
doc_date - Дата оплаты бонусом;
doc_time - Время оплаты бонусом;
debet - Сумма оплаты бонусом;
dor_id - ID заказа;
doc_num - номер заказа.


Работа с заказами

Сохранение заказа. SaveOrderForAll

Команда: SaveOrderForAll

Сохранение заказа.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

.../api/?SaveOrderForAll

Тело запроса тип json:

{
  "SaveOrderForAll":{
    "Order":{
      "contr_id": "10013",
      "doc_num": "233",
      "bso": "2233344555",
      "doc_date": "29.10.2017",
      "fast_exec": "0",
      "sclad_id": "1003",
      "sclad_out_id": "1005",
      "price_id": "2",
      "date_out": "30.10.2017 15:25:00",
      "vds_id": "1001",
      "status_id": "1",
      "is_not_confirmed": "0",
      "waiting_confirm": "1",
      "get_confirm_link": "1"
    },
    "Services":[
      {
        "tovar_id": "10018",
        "count": "1",
        "barcode_serv": "1270000000001",
        "kfx": "1",
        "discount": "10",
        "ext_info": "%D1%82%D0%B5%D1%81%D1%82",
        "nursery_id": "3",
        "dirty_id": "1",
        "status_id": "1",
        "addons": [
          {
            "addon_id":"100243",
            "values": "20,3.3,2"
          },
          {
            "addon_id":"100245",
            "values": "2|1.3|3|"
          }
        ]
      },
      {
        "tovar_id": "10027",
        "count": "2",
        "addons": [
          {
            "addon_id": "111",
            "values": "%D0%91%D0%B5%D0%B6%D0%B5%D0%B2%D1%8B%D0%B9%2C%20%D0%96%D1%91%D0%BB%D1%82%D1%8B%D0%B9%2C%20%D0%9A%D0%B0%D1%88%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9"
          },
          {
            "addon_id": "239",
            "values": "EL%20-%20%D1%8D%D0%BB%D0%B0%D1%81%D1%82%D0%B0%D0%BD%2C%20SE%20-%20%D1%88%D0%B5%D0%BB%D0%BA"
          },
          {
            "addon_id": "82",
            "values": "1"
          },
          {
            "addon_id": "181",
            "values": "%D1%82%D0%B5%D1%81%D1%82%201"
          }
        ]
      },

      {
        "dos_id":"1",
        "tovar_id":"10018",
        "count":"1",
        "is_recalc_disc":"1",
        "addons":[]
      },
      {
        "parent_id":"1",
        "tovar_id":"10016",
        "count":"1",
        "addons":[]
      },			
      {
        "dos_id":"2",
        "tovar_id":"10018",
        "count":"1",
        "addons":[]
      },
      {
        "parent_id":"2",
        "tovar_id":"10016",
        "count":"1",
        "addons":[]
      },
      {
        "parent_id":"2",
        "tovar_id":"100305",
        "count":"1",
        "addons":[]
      }
    ],
    "Comments": [
      "%D1%82%D0%B5%D1%81%D1%82%201",
      "%D1%82%D0%B5%D1%81%D1%82%202"
    ]
  },
  "SessionID": "AFF2413A-CCD9-4392-A0EA-D35DEAD3C84D"
}

где
Order – объект переменных заказа:
contr_id – ID клиента, обязательный параметр;
doc_num – номер заказа, не обязательный параметр. Номер должен быть вида: XXXX-YY, где XXXX - порядковый номер заказа, YY – номер подразделения; на основе номера заказа формируется автоматически номер бирки услуг; без особой необходимости, данный параметр не нужно заполнять;

При использовании этого параметра, контроль правильности и последовательности формирования номера заказа ложится на разработчика;

bso – номер для налоговой, не обязательный параметр;
doc_date – дата принятия заказа (формат dd.mm.yyyy), не обязательный параметр;
fast_exec – ID срочности, не обязательный параметр. Берется из команды GetListsOrderTNDForAll, массив строк order_times;
sclad_id – ID склада принятия, обязательный параметр;
sclad_out_id – ID склада выдачи, обязательный параметр;
price_id – ID прайс-листа, не обязательный параметр. По умолчанию 0 - «Розничный прайс лист»;
date_out – дата выдачи (формат dd.mm.yyyy HH:MM:SS), не обязательный параметр;
vds_id – ID внешней дисконтной схемы, не обязательный параметр. Берется из команды GetListsVdsDsForAll, массив строк vds;
status_id – ID статус заказа, не обязательный параметр. Принимает значения 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный;
waiting_confirm – признак подтверждения заказа от клиента, не обязательный параметр. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;
is_not_confirmed - признак подтверждения сотрудником химчистки, не обязательный параметр. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;
get_confirm_link - признак получения ссылки на подтверждение заказа вида https://agb.is/.... Для генерации ссылки должны быть указаны параметры waiting_confirm равным 1 и is_not_confirmed равным 0;
only_with_main_calc_price - разрешает работу опции «Рассчитывать цену как процент от другой услуги» из карточки номенклатуры в услуге, не обязательный параметр;

Services – массив объектов услуг (обязательный параметр, без услуг создать заказ нельзя):
dos_id - порядковый номер основной услуги (1, 2, и т.д.), не обязательный параметр. Служит только для определения привязки дочерней услуги (комплектной или ремонтной) к основной по параметру parent_id;
parent_id - порядковый номер родительской услуги (1, 2, и т.д.), не обязательный параметр. Служит только для определения привязки дочерней услуги (комплектной или ремонтной) к основной по параметру dos_id;
Примеры заполнения dos_id и parent_id при сохранении нового заказа:

{
  "dos_id": "1",
  "tovar_id": "10018",
  "count": "1",
  ...
},
{
  "dos_id": "2",
  "parent_id": "1",
  "tovar_id": "10018",
  "count": "1",
  ...
},
...
tovar_id – ID услуги из прайс-листа (узнать можно из прайс-листа командой PriceList, см. ниже), обязательный параметр;
count – кол-во, обязательный параметр;
barcode_serv – ШК услуги, не обязательный параметр; без особой необходимости, данный параметр не нужно заполнять;

При использовании этого параметра, контроль правильности и последовательности формирования номера ШК услуги ложится на разработчика;

kfx – коэффициент, не обязательный параметр;
discount – скидка услуги, не обязательный параметр. Применяется как ручная скидка;
is_recalc_disc - счет скидки услуги в зависимости от скидки клиента, ДС, распродаж, не обязательный параметр. Расчет скидки происходит на стороне сервера, без учета параметра discount;
ext_info – описание, не обязательный параметр;
nursery_id – ID детской скидки, не обязательный параметр. Берется из команды GetListsOrderTNDForAll, массив строк order_nurseries;
dirty_id – ID наценки, не обязательный параметр. Берется из команды GetListsOrderTNDForAll, массив строк order_dirties;
status_id – ID статус услуги, не обязательный параметр. Принимает значения 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный;

addons – массив объектов доп. реквизитов (обязательный параметр, если не реквизитов для заполнения, указывается пустым []):
addon_id – ID доп. реквизита, обязательный параметр. Узнать можно из команды AddonTypes, см. ниже;
values – значение реквизита (значения перечисляются через разделитель. Для сброса значения реквизита задается пустое значение), обязательный параметр;
Примеры заполнения addons для:

  • 0 - Целые

{
  "addon_id": "123",
  "values": "12"
}

  • 1 - Строковые

{
  "addon_id": "124",
  "values": "%D1%82%D0%B5%D1%81%D1%82%201"
}

  • 2 - Булевы (1/0)

{
  "addon_id": "125",
  "values": "1"
}

  • 3 - Дата

{
  "addon_id": "126",
  "values": "12.03.2022"
}

  • 5 - С плавающей запятой

{
  "addon_id": "127",
  "values": "12,3"
}

  • 7 - Строковые с ценой и количеством

{
  "addon_id": "128",
  "values": "20,3.3,2" // Перечисление значений по порядку, через запятую
}

  • 8 - Строковые с коэффициентом

{
  "addon_id": "129",
  "values": "%D1%82%D0%B5%D0%BA%D1%81%D1%82%201"
}

  • 9 - Фигура (1 - Квадрат (Пример: 1|3,3|), 2 - Прямоугольник (Пример: 2|1.3|3|), 3 - Круг (Пример: 3|4,8|2.4|), 4 - Овал (Пример: 4|2,3|4,5|))

{
  "addon_id": "129",
  "values": "2|1.3|3|" // где -> тип|длина|ширина|
}

Comments – массив строк комментариев по заказу (не обязательный параметр, если комментариев нет, то оставляем пустым []), перечисляются через запятую.

Для всех значений ключей json строки делается URI кодирование (например, можно использовать метод javascript encodeURIComponent).

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

Ответ json:

{
  "error": 0,
  "dor_id": "12345",
  "confirm_link": "https:\/\/agb.is\/..."
}

где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
dor_id – ID созданного заказа в Агбис;
confirm_link - ссылка на подтверждение заказа, при указанном параметре get_confirm_link = 1;
Msg – описание ошибки (при error = 1).


Изменение заказа. UpdateOrderForAll

Команда: UpdateOrderForAll

Изменение существующего заказа.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

.../api/?UpdateOrderForAll

Тело запроса тип json:

{
  "UpdateOrderForAll":{
    "Order":{
      "dor_id": "55454441",
      "doc_num": "233",
      "bso": "2233344555",
      "doc_date": "29.10.2017",
      "fast_exec": "0",
      "sclad_id": "1003",
      "sclad_out_id": "1005",
      "price_id": "2",
      "date_out": "30.10.2017 15:25:00",
      "vds_id": "1001",
      "status_id": "3"
    },
    "Services":[
      {
        "tovar_id": "10018",
        "count": "1",
        "barcode_serv": "1270000000001",
        "kfx": "1",
        "discount": "10",
        "ext_info": "%D1%82%D0%B5%D1%81%D1%82",
        "nursery_id": "3",
        "dirty_id": "1",
        "status_id": "1",
        "addons": [
          {
            "aos_id":"10030547",
            "values": ""
          },
          {
            "aos_id":"10030548",
            "values": "4|2,3|4,5|"
          },
          {
            "aos_id":"10030549",
            "values": "20,3.3,2"
          }
        ]
      },
      {
        "tovar_id": "10027",
        "count": "2",
        "addons": [
          {
            "addon_id": "111",
            "values": "%D0%91%D0%B5%D0%B6%D0%B5%D0%B2%D1%8B%D0%B9%2C%20%D0%96%D1%91%D0%BB%D1%82%D1%8B%D0%B9%2C%20%D0%9A%D0%B0%D1%88%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9"
          },
          {
            "addon_id": "239",
            "values": "EL%20-%20%D1%8D%D0%BB%D0%B0%D1%81%D1%82%D0%B0%D0%BD%2C%20SE%20-%20%D1%88%D0%B5%D0%BB%D0%BA"
          },
          {
            "addon_id": "82",
            "values": "1"
          },
          {
            "addon_id": "181",
            "values": "%D1%82%D0%B5%D1%81%D1%82%201"
          }
        ]
      },
      {
        "tovar_id": "10018",
        "count": "1",
        "barcode_serv": "1270000000001",
        "kfx": "1",
        "discount": "10",
        "ext_info": "%D1%82%D0%B5%D1%81%D1%82",
        "nursery_id": "3",
        "dirty_id": "1",
        "addons": []
      },
      {
        "dos_id": "12344422",
        "count": "2",
        "addons": []
      },
      
      {
        "dos_id":"1",
        "tovar_id":"10018",
        "count":"1",
        "addons":[]
      },
      {
        "parent_id":"1",
        "tovar_id":"10016",
        "count":"1",
        "addons":[]
      },      
      {
        "dos_id":"2",
        "tovar_id":"10018",
        "count":"1",
        "addons":[]
      },
      {
        "parent_id":"2",
        "tovar_id":"10016",
        "count":"1",
        "addons":[]
      },
      {
        "parent_id":"2",
        "tovar_id":"100305",
        "count":"1",
        "addons":[]
      },
      
      {
        "parent_id":"100231208",
        "tovar_id":"10016",
        "count":"1",
        "addons":[]
      }
    ],
    "Comments": [
      "%D1%82%D0%B5%D1%81%D1%82%201", 
      "%D1%82%D0%B5%D1%81%D1%82%202"
    ]
  },
  "SessionID": "AFF2413A-CCD9-4392-A0EA-D35DEAD3C84D"
}

где
Order – объект переменных заказа:
dor_id – ID заказа, обязательный параметр;
doc_num – номер заказа, не обязательный параметр. Номер должен быть вида: XXXX-YY, где XXXX - порядковый номер заказа, YY – номер подразделения; на основе номера заказа формируется автоматически номер бирки услуг; без особой необходимости, данный параметр не нужно заполнять;

При использовании этого параметра, контроль правильности и последовательности формирования номера заказа ложится на разработчика;

bso – номер для налоговой, не обязательный параметр;
doc_date – дата принятия заказа (формат dd.mm.yyyy), не обязательный параметр;
fast_exec – ID срочности, не обязательный параметр. Берется из команды GetListsOrderTNDForAll, массив строк order_times;
sclad_id – ID склада принятия, не обязательный параметр;
sclad_out_id – ID склада выдачи, не обязательный параметр;
price_id – ID прайс-листа, не обязательный параметр;
date_out – дата выдачи (формат dd.mm.yyyy HH:MM:SS), не обязательный параметр;
vds_id – ID внешней дисконтной схемы, не обязательный параметр. Берется из команды GetListsVdsDsForAll, массив строк vds;
status_id – статус заказа, не обязательный параметр. Принимает значения 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный;
waiting_confirm – признак подтверждения заказа от клиента, не обязательный параметр. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;
is_not_confirmed - признак подтверждения сотрудником химчистки, не обязательный параметр. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;
get_confirm_link - признак получения ссылки на подтверждение заказа вида https://agb.is/.... Для генерации ссылки должны быть указаны параметры waiting_confirm равным 1 и is_not_confirmed равным 0;
only_with_main_calc_price - разрешает работу опции «Рассчитывать цену как процент от другой услуги» из карточки номенклатуры услуге, не обязательный параметр;

Services – массив объектов услуг (обязательный параметр, если нет услуг на изменение оставляется пустым []):
dos_id - ID услуги заказа (11234 или 1, 2, и т.д.), не обязательный параметр. Если не указан параметр, услуга будет добавлена в существующий заказ как новая. Если параметр указан как порядковый номер, то служит только для определения привязки дочерней услуги (комплектной или ремонтной) к основной по параметру parent_id и услуга будет добавлена в существующий заказ как новая;
parent_id - порядковый номер или для привязки к существующему ID в заказе родительской услуги (11234 или 1, 2, и т.д.), не обязательный параметр. Служит только для определения привязки дочерней услуги (комплектной или ремонтной) к основной по параметру dos_id;
Примеры заполнения dos_id и parent_id при сохранении существующего заказа:

{
  "dos_id": "1",
  "parent_id": "10016",
  "tovar_id": "10018",
  "count": "1",
  ...
},
{
  "dos_id": "2",
  "tovar_id": "10018",
  "count": "1",
  ...
},
{
  "dos_id": "10022",
  "tovar_id": "10018",
  "count": "1",
  ...
},
...
tovar_id – ID услуги из прайс-листа, если указан dos_id, то поле игнорируется, не обязательный параметр.
count – кол-во, обязательный параметр;
barcode_serv – ШК услуги, не обязательный параметр; без особой необходимости, данный параметр не нужно заполнять;

При использовании этого параметра, контроль правильности и последовательности формирования номера ШК услуги ложится на разработчика;

kfx – коэффициент, не обязательный параметр;
discount – скидка услуги, не обязательный параметр;
is_recalc_disc - счет скидки услуги в зависимости от скидки клиента, ДС, распродаж, не обязательный параметр. Расчет скидки происходит на стороне сервера, без учета параметра discount;
ext_info – описание, не обязательный параметр;
nursery_id – ID детской скидки, не обязательный параметр. Берется из команды GetListsOrderTNDForAll, массив строк order_nurseries;
dirty_id – ID наценки, не обязательный параметр параметр. Берется из команды GetListsOrderTNDForAll, массив строк order_dirties;
status_id – ID статус услуги, не обязательный параметр. Принимает значение 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный;

addons – массив объектов доп. реквизитов (обязательный параметр, если нет реквизитов на изменение, то оставляется пустым []):
aos_id – ID строки доп реквизита в заказе в существующей услуге, не обязательный параметр. Если не указан, то реквизит будет добавлен как новый;
addon_id – ID доп. реквизита в новой услуге, если указан aos_id, то поле игнорируется, не обязательный параметр. Узнать можно из команды AddonTypes, см. ниже;
values – значение реквизита (значения перечисляются через разделитель. Для сброса значения реквизита задается пустое значение), обязательный параметр;
Примеры заполнения addons для:

  • 0 - Целые

{
  "addon_id": "123",
  "values": "12"
}

  • 1 - Строковые

{
  "addon_id": "124",
  "values": "%D1%82%D0%B5%D1%81%D1%82%201"
}

  • 2 - Булевы (1/0)

{
  "addon_id": "125",
  "values": "1"
}

  • 3 - Дата

{
  "addon_id": "126",
  "values": "12.03.2022"
}

  • 5 - С плавающей запятой

{
  "addon_id": "127",
  "values": "12,3"
}

  • 7 - Строковые с ценой и количеством

{
  "addon_id": "128",
  "values": "20,3.3,2" // Перечисление значений по порядку, через запятую
}

  • 8 - Строковые с коэффициентом

{
  "addon_id": "129",
  "values": "%D1%82%D0%B5%D0%BA%D1%81%D1%82%201"
}

  • 9 - Фигура (1 - Квадрат (Пример: 1|3,3|), 2 - Прямоугольник (Пример: 2|1.3|3|), 3 - Круг (Пример: 3|4,8|2.4|), 4 - Овал (Пример: 4|2,3|4,5|))

{
  "addon_id": "129",
  "values": "2|1.3|3|" // где -> тип|длина|ширина|
}

Comments – массив строк комментариев по заказу (не обязательный параметр, если комментариев нет, то оставляем пустым []), перечисляются через запятую.

Для всех значений ключей json строки делается URI кодирование (например, можно использовать метод javascript encodeURIComponent);

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

Ответ json:

{
  "error": 0,
  "dor_id": "12345",  
  "confirm_link": "https:\/\/agb.is\/..."
}

где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
dor_id – ID созданного заказа в Агбис;
confirm_link - ссылка на подтверждение заказа;
Msg – описание ошибки (при error = 1).


Изменение статуса заказа. ChangeStatusOrdersForAll

Команда: ChangeStatusOrdersForAll

Изменение статуса заказа.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

.../api/?ChangeStatusOrdersForAll

Тело запроса тип json:

{
  "ChangeStatusOrdersForAll":{
    "Orders": [
      {
        "dor_id": "100182", 
        "status_id": "3"
      }
    ]
  }, 
  "SessionID": "BBAB6C13-A9BE-4159-8A0C-332F813A7B49"
}

где
Orders – массив заказов (обязательный параметр):
dor_id – ID существующего заказа, обязательный параметр;
status_id – ID нового статуса заказа, обязательный параметр. Принимает значения 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный.

Ответ json:

{"error":0}

где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
Msg – описание ошибки (при error = 1).


Создание выезда. TripOrder

Команда: TripOrder

Создание выезда в назначенное время.
Временные интервалы задаются обязательными параметрами hr и hr_to.

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

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

Формат запроса: TripOrder={"tp": "1", "date": "07.07.2020", "hr": "11:00", "hr_to": "12:00", "address": "тест", "region_id": "1", "car_id": "2", "comment": "тест", "fio": "Тест", "tel": "+79876543210", "mp_status": "1"}&SessionID=

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

.../api/?TripOrder=%7B%22tp%22%3A%20%221%22%2C%20%22date%22%3A%20%2207.07.2020%22%2C%20%22hr%22%3A%20%2211%3A00%22%2C%20%22hr_to%22%3A%20%2212%3A00%22%2C%20%22address%22%3A%20%22%D1%82%D0%B5%D1%81%D1%82%22%2C%20%22region_id%22%3A%20%221%22%2C%20%22car_id%22%3A%20%222%22%2C%20%22comment%22%3A%20%22%D1%82%D0%B5%D1%81%D1%82%22%2C%20%22fio%22%3A%20%22%D0%A2%D0%B5%D1%81%D1%82%22%2C%20%22tel%22%3A%20%22%2B79876543210%22%2C%20%22mp_status%22%3A%20%221%22%7D&SessionID=...

где
id - ID выезда, не обязательный параметр. Задается для редактирования выезда (команда Trips);
tp - тип выезда (1 - забрать, 2 - доставить по умолчанию), не обязательный параметр;
contr_id - ID клиента, не обязательный параметр;
date – дата, на которую создается резерв (формат 21.12.2020), обязательный параметр;
hr – время, на которое создается резерв (формат «11:30»), обязательный параметр;
hr_to – время окончания выезда (формат «11:30»), обязательный параметр;
address – адрес выезда, если выезд по клиенту, обязательный параметр;
region_id – ID региона (из команды Regions), не обязательный параметр;
car_id - ID мобильного склада, обязательный параметр;
comment – комментарий, не обязательный параметр;
tel - телефон клиента, обязательный параметр;
fio - фио клиента, не обязательный параметр;
mp_status - статус выезда (0 - Новый, 1 - Совершён,2 - Отменён,3 - Принял,4 - В пути,5 - Приехал,6 - Пересогласование), обязательный параметр;
user_id - экспедитор, не обязательный параметр;
control_user_id - диспетчер, не обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error":0,
  "Trip":12345,  
  "Msg": "%D0%97%D0%B0%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BE"
}


Информация по выезду. Trip

Команда: Trip

Получение информации по выезду.

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

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

Формат запроса: Trip={"id":"1234"}&SessionID=

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

.../api/?Trip=%7B%22id%22%3A%221234%22%7D&SessionID=...

где
id - ID выезда.

Ответ json:

{
  "error": 0,
  "id": "10090",
  "tp": "2",
  "dt": "22.04.2021",
  "hr": "7",
  "sclad_id": "10010",
  "address": "",
  "comment": "",
  "sclad_plan_to": "",
  "kind_id": "1",
  "contr_id": "",
  "control_user_id": "",
  "region_id": "",
  "mn": "",
  "to_hr": "8",
  "to_mn": "",
  "house": "",
  "room": "",
  "level_room": "",
  "geo_location": "",
  "entrance": "",
  "intercom": "",
  "contr_address_id": "",
  "messages": [
    {
      "mess_id": "10085",
      "parent_id": "",
      "user_id": "",
      "message_type_id": "7",
      "barcode": "45893254",
      "dttm": "24.12.2019%2018:05:53",
      "comm": "",
      "contr_id": "10013",
      "sclad_id": "10010",
      "firm_id": "",
      "warn_group_id": "",
      "count_things": "",
      "sms_tel": "",
      "dor_id": "1001091"
    }
  ],
  "orders": [
    {
      "dor_id": "1001448",
      "debet": "0",
      "kredit": "850",
      "date_out": "22.04.2021%2017:00:00",
      "kind_id": "3",
      "order_num": "",
      "status_id": "1",
      "sclad_kredit_id": "10010",
      "message_id": "",
      "doc_num": "000082",
      "contragent_id": "100484065",
      "firm_id": "11"
    }
  ]
}

где
id - ID выезда;
tp - тип выезда (0 - забрать, 1 - доставить);
dt - дата выезда;
hr и mn - час и минута начала выезда;
to_hr и to_mn - час и минута окончания выезда;
sclad_id – ID мобильного склада;
address - адрес выезда;
comment - комментарий к выезду;
sclad_plan_to – ID склада для выезда;
kind_id - тип выезда (1 - Выезд по заказу, 2 - выезд по клиенту, 3 - выезд по складу);
contr_id – ID клиента;
control_user_id - ID диспетчера;
region_id – ID региона (команда Regions);
house - дом;
room - квартира;
level_room - этаж;
geo_location - координаты;
entrance - подъезд;
intercom - домофон;
contr_address_id - ID адреса клиента;

messages - информация по мешкам у выезда, массив объектов:
mess_id - ID мешка;
user_id - ID пользователя;
message_type_id - тип сообщения (7 - мешок);
barcode - номер мешка;
dttm - дата принятия мешка;
comm - комментарий;
contr_id - ID клиента;
sclad_id - ID склада;
firm_id - ID фирмы;
warn_group_id - группа предупреждения;
count_things - количество вещей;
sms_tel - телефон клиента из заказа;
dor_id - ID заказа;

orders - список заказов, массив объектов:
dor_id - ID заказа;
kredit - сумма заказа;
debet - оплачено;
date_out - дата выдачи;
kind_id – тип заказа (0 – заказ химчистки, 1- прачечный заказ, 2 – продажа товаров, 4 – выездной заказ);
order_num - номер БСО;
status_id – ID статуса заказа (1 – новый, 3 – в исполнении, 4 – исполненный, 5 - выданный);
sclad_kredit_id - ID склад приема заказа;
message_id - ID сообщения, на основе которого создан заказ;
doc_num - номер заказа;
contragent_id - ID клиента;
firm_id - ID фирмы.


Информация по заказу. OrderInfoForAll

Команда: OrderInfoForAll

Команда просмотр информации о конкретном заказе по dor_id

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

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

Формат запроса: OrderInfoForAll={"dor_id":"12345"}&SessionID=BBAB6C13-A9BE-4159-8A0C-332F813A7B49

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

.../api/?OrderInfoForAll=%7B%22dor_id%22%3A%2210013%22%7D&SessionID=BBAB6C13-A9BE-4159-8A0C-332F813A7B49

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

Ответ json:

{
  "error": 0, 
  "order": {
    "dor_id": "100182", 
    "doc_num": "000233", 
    "kredit": "4000", 
    "debet": "0", 
    "doc_date": "29.11.2017", 
    "date_out": "", 
    "date_out_fact": "", 
    "status_id": "3", 
    "photo_exist": "1", 
    "discount": "0",     
    "fast_execute": "0",
    "sclad_id": "12455", 
    "sclad_to": "12455", 
    "current_sclad_id": "1003", 
    "kind_id": "3", 
    "vds_id": "1001",
    "contr_id": "10013",
    "waiting_confirm": "0",
    "is_not_confirmed": "0",
    "sclad_name": "", 
    "sclad_adr": "", 
    "sclad_hours": "",
    "condition_id": "",
    "condition_name": "",
    "Srvices": [
      {
        "dos_id": "100229858", 
        "parent_id": "100229857", 
        "tov_id": "10018", 
        "service": "%D0%91%D0%B5%D1%80%D0%BC%D1%83%D0%B4%D1%8B", 
        "code": "01.18", 
        "status_id": "3", 
        "status_name": "%D0%92+%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8", 
        "serv_num": "1", 
        "barcode": "272102000000071001", 
        "barcode_read": "%5B2%5D%207%20(1)",
        "price": "1000", 
        "qty": "1", 
        "kfx": "1", 
        "discount": "0", 
        "nursery_id": "0", 
        "nurseries_name": "%D0%9D%D0%B5+%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F",
        "nurseries_discount": "0", 
        "serv_weight": "1", 
        "dirty_id": "0", 
        "dirty_name": "%D0%9E%D0%B1%D1%89%D0%B5%D0%B5", 
        "dirty_kfx": "1", 
        "kredit": "1000", 
        "ext_info": "", 
        "shop_description": "", 
        "group_tov": "1.+%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D1%82%D1%80%D0%B8%D0%BA%D0%BE%D1%82%D0%B0%D0%B6%D0%BD%D0%B0%D1%8F+%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0", 
        "contr_provider_id": "10072",
        "contr_provider_name": "%D0%9F%D0%BE%D0%B4%20%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F",
        "contr_provider_inn": "1234-1234-1234-1234",
        "nds_name": "%D0%91%D0%B5%D0%B7%20%D0%9D%D0%94%D0%A1",
        "addons": []
      },
      {
        "dos_id": "100229859", 
        "tov_id": "10027", 
        "service": "%D0%92%D0%BE%D0%B4%D0%BE%D0%BB%D0%B0%D0%B7%D0%BA%D0%B0", 
        "code": "01.27", 
        "status_id": "3", 
        "status_name": "%D0%92+%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8", 
        "barcode": "271700000002331002", 
        "price": "1500", 
        "qty": "2", 
        "kfx": "1", 
        "discount": "0",
        "fast_execute": "0",  
        "nursery_id": "0", 
        "nurseries_name": "%D0%9D%D0%B5+%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F", 
        "nurseries_discount": "0", 
        "serv_weight": "1", 
        "dirty_id": "0", 
        "dirty_name": "%D0%9E%D0%B1%D1%89%D0%B5%D0%B5", 
        "dirty_kfx": "1", 
        "kredit": "3000", 
        "ext_info": "", 
        "shop_description": "", 
        "group_tov": "1.+%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D1%82%D1%80%D0%B8%D0%BA%D0%BE%D1%82%D0%B0%D0%B6%D0%BD%D0%B0%D1%8F+%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0", 
        "contr_provider_id": "",
        "contr_provider_name": "",
        "contr_provider_inn": "",
        "nds_name": "",
        "addons": [
          {
            "addon_id": "111", 
            "descr": "%D0%A6%D0%B2%D0%B5%D1%82", 
            "value_type": "1", 
            "aos_id": "1001787", 
            "aos_value": "%D0%91%D0%B5%D0%B6%D0%B5%D0%B2%D1%8B%D0%B9,+%D0%96%D1%91%D0%BB%D1%82%D1%8B%D0%B9,+%D0%9A%D0%B0%D1%88%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9"
          },
          {
            "addon_id": "239", 
            "descr": "%D0%A1%D0%BE%D1%81%D1%82%D0%B0%D0%B2+%D1%82%D0%BA%D0%B0%D0%BD%D0%B8", 
            "value_type": "1", 
            "aos_id": "1001788", 
            "aos_value": "EL+-+%D1%8D%D0%BB%D0%B0%D1%81%D1%82%D0%B0%D0%BD,+SE+-+%D1%88%D0%B5%D0%BB%D0%BA"
          },
          {
            "addon_id": "82", 
            "descr": "%D0%91%D0%B5%D0%BB%D0%B5%D1%81%D0%BE%D1%81%D1%82%D1%8C", 
            "value_type": "2", 
            "aos_id": "1001789", 
            "aos_value": "1"
          },
          {
            "addon_id": "181", 
            "descr": "%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F", 
            "value_type": "1", 
            "aos_id": "1001790", 
            "aos_value": "%D1%82%D0%B5%D1%81%D1%82+1"
          }
        ]
      }
    ],
    "Tovars":[
      {
        "dol_id":"10043",
        "tov_id":"100300",
        "tovar_name":"%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%D1%81%D0%BE%D0%BF%D1%83%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D0%B9",
        "code":"0",
        "group_tov":"%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D1%8B",
        "barcode":"",
        "price":"5",
        "qty":"1",
        "kfx":"1",
        "discount":"5",
        "kredit":"4,75",
        "ext_info":"sdddd%20sdg%20sgs",
        "tovar_descr":"fsdf%20sfs%20cfsd%20g%20wge%20w%D1%8B%20sg%20swgwg%20%D0%B4%D0%BE%D0%BB%D1%82%20kkkk%20k",
        "monger_id":"1",
        "monger_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81"
      }
    ]
  }
}

где
orders – массив объектов заказов:
dor_id – ID заказа;
doc_num – номер заказа
kredit – сумма заказа,
debet – оплачено;
doc_date – дата заказа;
date_out – дата выдачи заказа;
date_out_fact – дата выдачи заказа фактическая;
status_id – статус заказа (1 – новый, 3 – в исполнении, 4 – исполненный, 5 - выданный). поле status - устаревшее;
status_name – наименование статуса;
photo_exist – признак присутствия в заказе фотографий;
discount – скидка;
fast_execute – ID срочности (берется из команды GetListsOrderTNDForAll, массив строк order_times);
sclad_id – ID склада приема;
sclad_to – ID склада выдачи;
current_sclad_id – ID текущего склада;
kind_id – тип заказа (0 – заказ химчистки, 1- прачечный заказ, 2 – продажа товаров, 4 – выездной заказ);
vds_id – ID внешней дисконтной схемы;
waiting_confirm – признак подтверждения заказа от клиента, не обязательный параметр. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;
is_not_confirmed - признак подтверждения сотрудником химчистки, не обязательный параметр. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;
sclad_name - наименования склада выдачи;
sclad_adr - адрес склада выдачи;
sclad_hours - время работы склада выдачи;
condition_id - ID состояния, с версии Агбис.Химчистки 4.4.0;
condition_name - наименование состояния, с версии Агбис.Химчистки 4.4.0;

Srvices – массив объектов услуг:
dos_id – ID услуги в заказе;
parent_id – ID родительской услуги;
tov_id – ID услуги;
service – наименование;
status_id – статус услуги (1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный);
serv_num – порядковый номер услуги;
barcode – ШК услуги;
barcode_read - ШК для чтения;
price – цена услуги из прайс листа;
qty – кол-во;
kfx – коэффициент;
discount – скидка по услуге;
nursery_id – ID детской скидки (берется из команды GetListsOrderTNDForAll, массив строк order_nurseries);
nurseries_name – наименование детской скидки;
nurseries_discount – значение детской скидки;
dirty_id – ID наценки параметр (берется из команды GetListsOrderTNDForAll, массив строк order_dirties);
dirty_name – наименование наценки;
dirty_kfx – коэффициент наценки;
kredit – сумма услуги в заказе;
ext_info – описание;
shop_description – описание цеха;
group_tov – наименование группы услуги;
contr_provider_id - ID агента;
contr_provider_name - название агента;
contr_provider_inn - ИНН агента;
nds_name - применяемая НДС;

addons - массив объектов доп. реквизитов услуг:
addon_id – ID доп. реквизита;
descry – наименование доп. реквизита;
value_type – тип доп. реквизита;
aos_id – ID реквизита в заказе;
aos_value – значение доп. реквизита.

Tovars – массив объектов товаров:
dol_id – ID товара в заказе;
tov_id - ID товара из прайс-листа;
tovar_name – наименование товара;
group_tov – наименование группы товара;
barcode – ШК товара;
price – цена товара из прайс листа;
qty – кол-во;
kfx – коэффициент;
discount – скидка по товару;
kredit – сумма товара в заказе;
ext_info – описание;
tovar_descr – описание товара;
monger_id – ID продавца (пользователя);
monger_name – Имя продавца (пользователя).


Квитанция. Receipt

Команда: Receipt

Получение квитанции по заказу. Устаревший вариант

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

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

Формат запроса: Receipt={"dor_id":"12345", "typeExport": "png"}

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

.../api/?Receipt=%7B%22dor_id%22:%2212345%22%7D&SessionID=

где
dor_id – ID заказа, обязательный параметр;
typeExport – тип формата файла, pdf (по умолчанию), png, svg, не обязательный параметр.

Ответ json:

{
  "error": 0, 
  "png": "EB831E9B-472E-4D30-9AAF-20296E6D0017",
  "dor_id": "12345" 
}

Где
png – имя документа png.

Стандартный путь открытия квитанции:
https://www.himinfo.ru/upload_files/EB831E9B-472E-4D30-9AAF-20296E6D0017.pdf


Квитанция. ReceiptOnline

Команда: ReceiptOnline

Получение квитанции по заказу.
Можно выполнять в любой момент заказа, после создания заказа.

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

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

Формат запроса: ReceiptOnline={"dor_id":"12345", "typeExport": "png"}

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

.../api/?ReceiptOnline=%7B%22dor_id%22:%2212345%22%7D&SessionID=

где
dor_id – ID заказа, обязательный параметр;
typeExport – тип формата файла, pdf (по умолчанию), png, svg, не обязательный параметр;
В зависимости от typeExport будет содержать определенный документ с соответствующим Content-Type.
Для typeExport=pdf, Content-Type=application/pdf;
typeExport=png, Content-Type=image/png;
typeExport=svg, Content-Type=image/svg+xml.
sign – если указан, то при наличии квитанции с подписью, вернется квитанция в формате svg (работает только в паре с параметром typeExport=svg).

В ответ возвращаются двоичные данные


Список заказов за период. OrdersBetweenForAll

Команда: OrdersBetweenForAll

Получения списка заказов за указанный период.

Данная команда с большими периодами может долго выполнятся, из за большого количества возвращаемых данных и вылетать по timeout! Рекомендуется в таких случаях уменьшать период.

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

Заголовок запроса (Header):
Content-type: application/json; charset=UTF-8 - обязательный параметр
Accept-Encoding: deflate - сжатие возвращаемого ответа, не обязательный параметр.

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

.../api/?OrdersBetweenForAll

Тело запроса тип json:

{
  "OrdersBetweenForAll":{
    "StartDate": "01.03.2018",
    "StopDate": "30.03.2018",
    "callback_address":"https://test.com/test.php"
  },
  "SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}

где
StartDate – дата начала, обязательный параметр;
StopDate – дата окончания, обязательный параметр;
callback_address – адрес на который нужно вернуть ответ, не обязательный параметр. Если команда будет возвращать ответ дольше чем 29сек, то на этот адрес будет отправлен сформированный ответ.

Ответ json:

{
  "error": 0,
  "order": [
    {
      "dor_id":"100228",
      "doc_num":"000034",
      "contr_id":"10088",
      "kredit":"11",
      "debet":"11",
      "dolg":"0",
      "doc_date":"23.01.2018",
      "doc_time":"11:10:00",
      "date_out":"24.01.2018+17:00:00",
      "date_out_fact": "",
      "status":"1",
      "status_name":"%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
      "photo_exist":"0",
      "discount":"0",
      "sclad_id":"1",
      "sclad_to":"1",
      "current_sclad_id":"1",
      "fast_execute":"0",
      "kind_id":"0",
      "vds_id":"",
      "waiting_confirm": "0",
      "is_not_confirmed": "0",
      "condition_id": "",
      "condition_name": "",
      "Srvices": [,
        {
          "dos_id":"100229911",
          "parent_id":"100229910",
          "tov_id":"100295",
          "service":"%D0%91%D1%80%D1%8E%D0%BA%D0%B8+%D0%BA%D0%BE%D0%B6%D0%B0%D0%BD%D1%8B%D0%B5+(%D0%BF%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0)",
          "code":"01.11",
          "status_id":"1",
          "status_name":"%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
          "serv_num":"1",
          "barcode":"271800000000341001",
          "price":"6",
          "qty":"1",
          "kfx":"1",
          "discount":"0",
          "nursery_id":"0",
          "nurseries_name":"%D0%9D%D0%B5+%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F",
          "nurseries_discount":"0",
          "serv_weight":"1",
          "dirty_id":"0",
          "dirty_name":"%D0%9E%D0%B1%D1%89%D0%B5%D0%B5",
          "dirty_kfx":"1",
          "kredit":"6",
          "ext_info":"",
          "shop_description":"",
          "group_tov":"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)",
          "contr_provider_id": "10072",
          "contr_provider_name": "%D0%9F%D0%BE%D0%B4%20%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F",
          "contr_provider_inn": "1234-1234-1234-1234",
          "nds_name": "%D0%91%D0%B5%D0%B7%20%D0%9D%D0%94%D0%A1",
          "addons":[
            {
              "addon_id":"110",
              "descr":"%D0%9F%D0%BE%D0%BB",
              "value_type":"1",
              "aos_id":"1003462",
              "aos_value":""
            },
          ]
        }
      ],
      "payments":[
        {
          "date_pay":"18.12.2017+16:02:55",
          "document":"%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0+%D0%B1%D0%B0%D0%BD%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B9+%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D0%B9",
          "debet":"150",
          "kredit":"0",
          "kassa_name":"%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F"
        }
      ] 
    }
  ]
}

где
Orders – массив объектов заказов;
dor_id – ID заказа;
doc_num – номер заказа;
contr_id – ID клиента;
kredit – сумма заказа;
debet – сумма оплаты заказа;
dolg – долг по заказу;
doc_date – дата принятия заказа;
doc_time – время принятия заказа;
date_out – дата выдачи заказа;
date_out_fact – дата выдачи заказа фактическая;
status – ID статуса;
status_name – наименование статуса;
photo_exist – признак присутствия в заказе фотографий;
discount – скидка;
sclad_id - склад принятия;
sclad_to – склад выдачи;
current_sclad_id – текущий склад;
fast_execute – ID срочности;
kind_id – тип заказа (0 – заказ химчистки, 1- прачечный заказ, 2 – продажа товаров, 4 – выездной заказ);
vds_id – ID ВДС;
waiting_confirm – признак подтверждения заказа от клиента. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;
is_not_confirmed - признак подтверждения сотрудником химчистки. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;
condition_id - ID состояния, с версии Агбис.Химчистки 4.4.0;
condition_name - наименование состояния, с версии Агбис.Химчистки 4.4.0;

Srvices – массив объектов услуг;
dos_id – ID услуги в заказе;
parent_id – ID родительской услуги;
tov_id – ID услуги в прайс-листе;
service – наименование услуги;
code – артикул услуги;
status_id – ID статуса;
status_name – наименование статуса;
serv_num – порядковый номер услуги;
barcode – штрихкод услуги;
price - цена услуги из прайс-листа;
qty – количество;
kfx – коэффициент;
discount - скидка услуги;
nursery_id – ID детской скидки
nurseries_name – наименование услуги;
nurseries_discount - значение детской скидки;
serv_weight – вес услуги;
dirty_id – ID наценки;
dirty_name – наименование наценки;
dirty_kfx – коэффициент наценки;
kredit – сумма услуги;
ext_info – описание;
shop_description – описание цеха;
group_tov – наименование группы услуги;
contr_provider_id - ID агента;
contr_provider_name - название агента;
contr_provider_inn - ИНН агента;
nds_name - применяемая НДС;

addons – массив объектов доп. реквизитов;
addon_id – ID доп. реквизита;
descr – наименование доп. реквизита;
value_type - тип доп. реквизита;
aos_id - ID реквизита в заказе;
aos_value - значение доп. реквизита;

payments – массив объектов оплат;
date_pay – дата оплаты;
document –документ оплаты;
debet – сумма прихода;
kredit – сумма расхода;
kassa_name – наименование кассы.


Работа с услугами

Сохранение фотографии в услуге. SetOrderImagesForAll

Команда: SetOrderImagesForAll

Сохранение фотографий в услуге.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

.../api/?SetOrderImagesForAll

Тело запроса тип json:

{
  "SetOrderImagesForAll":{
    "dos_id": "100229859", 
    "img": "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"
  }, 
  "SessionID": "AFF2413A-CCD9-4392-A0EA-D35DEAD3C84D"
}

где
dos_id – ID услуги, обязательный параметр;
img – Jpeg картинка в строке base64, обязательный параметр.

Ответ json:

{"error": 0}

где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
Msg – описание ошибки (при error = 1).


Накладные в пути. DocsInWayBetweenForAll

Команда: DocsInWayBetweenForAll

Получения списка накладных в пути, в указанный промежуток времени.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

.../api/?DocsInWayBetweenForAll

Тело запроса тип json:

{
  "DocsInWayBetweenForAll":{
    "StartDate": "01.03.2018",
    "StopDate": "30.03.2018",
  },
  "SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}

где
StartDate – дата начала, обязательный параметр;
StopDate – дата окончания, обязательный параметр.

Ответ json:

{
  "error": 0,
  "docs_in_way": [
    {
      "id":"100625",
      "doc_date":"27.12.2017",
      "doc_num":"000030",
      "diw_status_id":"3",
      "diw_status_name":"%D0%9F%D1%80%D0%B8%D0%BD%D1%8F%D1%82%D0%B0",
      "from_sclad_id":"1",
      "to_sclad_id":"1007",
      "by_way_of_sclad_id":"10010",
      "from_sclad_name":"%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9",
      "to_sclad_name":"%D0%9F%D0%9F%20%D0%9E%D1%80%D1%8B%D0%BD%D0%B1%D0%BE%D1%80.%20%D0%A8%D0%BA%D0%B0%D1%84",
      "by_way_of_sclad_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",
      "from_user_id":"1",
      "accomp_id":"1",
      "to_user_id":"1",
      "from_user_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
      "accomp_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
      "to_user_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
      "qty_places":"",
      "barcode":"250000000000100625",
      "sclad_group_id":"",
      "sclad_group_name":"",
      "comments":"",
      "docs_in_way_serv":[
        {
          "id":"100121",
          "dos_id":"100229872",
          "doc_in_way_id":"100625",
          "barcode":"271700000001711003",
          "barcode_read":"%5B0%5D%20171%20(3)",
          "doc_num":"000171",
          "doc_date":"25.12.2017",
          "dor_id":"100186",
          "date_out":"25.12.2017%2017:00:00",
          "tovar_id":"100288",
          "tovar_name":"%D0%94%D1%83%D0%B1%D0%BB%D0%B5%D0%BD%D0%BA%D0%B0%202%2F4%20(%D0%BF%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0)",
          "qty_kredit":"1",
          "status_id":"4",
          "status_name":"%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9",
          "date_in":"27.07.2018",
          "time_in":"15:07:20",
          "user_id_in":"1",
          "user_in_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
          "ext_info":"",
          "sclad_to":"1007",
          "sclad_to_name":"%D0%9F%D0%9F%20%D0%9E%D1%80%D1%8B%D0%BD%D0%B1%D0%BE%D1%80.%20%D0%A8%D0%BA%D0%B0%D1%84",
          "contr_id":"10013",
          "contr_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
          "sclad_id_in":"1",
          "sclad_id_in_name":""
        }
      ]
    }
  ]
}

где
docs_in_way – массив объектов накладных в пути;
id – ID накладной в пути;
doc_date – дата накладной;
doc_num – номер накладной;
diw_status_id – ID статус накладной (1 - Готова к отгрузке, 2 - В пути, 3 - Принята, 4 - Принята не полностью);
diw_status_name – наименования статуса;
from_sclad_id – ID склада, «с какого клада накладная»;
to_sclad_id – ID склада, «на какой склад накладная»;
by_way_of_sclad_id – ID мобильного склада, «через мобильный склад»;
from_sclad_name – наименование, «с какого клада накладная»;
to_sclad_name – наименование, «на какой склад накладная»;
by_way_of_sclad_name – наименование, «через мобильный склад»;
from_user_id – ID пользователя, «отгрузил»;
accomp_id – ID пользователя, «экспедитор»;
to_user_id – ID пользователя, «принял»;
from_user_name – наименование, «отгрузил»;
accomp_name – наименование, «экспедитор»;
to_user_name – наименование, «принял»;
qty_places – кол-во мест;
barcode – штрихкод;
sclad_group_id – ID группы складов, «на группу складов»;
sclad_group_name – наименование, «на группу складов»;
comments – комментарий;

docs_in_way_serv – массив объектов услуг в накладной;
id – ID строки услуги в накладной;
dos_id – ID услуги в заказе;
doc_in_way_id – ID накладной;
barcode – штрихкод услуги;
barcode_read – штрихкод услуги, для чтения;
doc_num – номер заказа;
doc_date – дата заказа;
dor_id – ID заказа;
date_out – дата выдачи заказа;
tovar_id – ID услуге в прайс-листе;
tovar_name – наименование услуги;
qty_kredit – количество услуги;
status_id – статус услуги;
status_name – наименование статуса услуги;
date_in – дата принятия;
time_in – время принятия;
user_id_in – ID пользователя;
user_in_name – наименование пользователя;
ext_info – описание услуги;
sclad_to – ID склад выдачи заказа;
sclad_to_name – наименование склад выдачи заказа;
contr_id – ID клиента;
contr_name – ФИО клиента;
sclad_id_in – ID cклада принятия услуги в накладной;
sclad_id_in_name – наименование склада принятия услуги в накладной.


Работа с оплатами

Оплата заказа. PayForAll

Команда: PayForAll

Для выполнения команды необходимо выставить две глобальные настройки на центральной базе клиента.
Значения необходимо согласовать с Химчисткой.

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть


Передача информации об оплате заказа (dor_id) из внешней системы.
На внешнем сервисе может быть реализована любая Платежная система, в Агбис необходимо передать краткую информацию по оплате.

Возможна частичная оплата, т.е. часть «оплата по карте», часть «оплата бонусом».

ВАЖНО! : если оплату необходимо фискализировать на ККТ, то необходимо передать параметр is_fiscal
При этом у клиента должна быть настроена фискализации

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

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

Формат запроса: PayForAll={"dor_id": "1123444", "amount": "123.25", "type_doc": "1"}&SessionID=

где
dor_id – ID заказа, обязательный параметр;
amount – сумма оплаты, обязательный параметр;
type_doc – тип документа возврата (1 – Оплата по карте, по умолчанию; 2- оплата по кассе, 3 – оплата по банку, 4 – оплата бонусом, 5 – оплата депозитом) , обязательный параметр;
is_fiscal - признак, что оплату по карте или по кассе нужно фискализировать (0 - без фискализации; 1 - требуется фискализировать), не обязательный параметр.
Для работы этого параметра требуется настроенная онлайн касса https://doc.agb.is/internal/agent_kassa_online в новом режиме и выставить настройку «Фискализировать оплаты коммерческого API PayForAll и ReturnPayForAll» (Будут фискализироваться оплаты совершенные через коммерческое API).

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

.../api/?PayForAll=%7B%22dor_id%22%3A%20%221123444%22%2C%20%22amount%22%3A%20%22123.25%22%2C%20%22type_doc%22%3A%20%221%22%7D&SessionID=

Ответ json:

{"error":0}

где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
Msg – описание ошибки (при error = 1).


Возврат средств. ReturnPayForAll

Команда: ReturnPayForAll

Возврат средств в заказе.

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

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

Формат запроса: ReturnPayForAll={"dor_id": "1123444", "amount": "123.25", "type_doc": "1"}&SessionID=

где
dor_id – ID заказа, обязательный параметр;
amount – сумма возврата, обязательный параметр;
type_doc – тип документа возврата (1 – Возврат по карте, по умолчанию; 2- возврат по кассе, 3- возврат по банку), обязательный параметр;
is_fiscal - признак, что оплату по карте или по кассе нужно фискализировать (0 - без фискализации; 1 - требуется фискализировать), необязательный параметр.
Для работы этого параметра требуется настроенная онлайн касса https://doc.agb.is/internal/agent_kassa_online в новом режиме и выставить настройку «Фискализировать оплаты коммерческого API PayForAll и ReturnPayForAll» (Будут фискализироваться оплаты совершенные через коммерческое API).

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

.../api/?ReturnPayForAll=%7B%22dor_id%22%3A%20%221123444%22%2C%20%22amount%22%3A%20%22123.25%22%2C%20%22type_doc%22%3A%20%221%22%7D&SessionID=

Ответ json:

{"error":0}
где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
Msg – описание ошибки (при error = 1).


Статистическая информация

Получение изменившихся заказов и клиентов

Для получения списка изменившихся заказов, правильнее воспользоваться командами - OrderByDateTimeForAll, LastChangeOrder.
Для получения списка изменившихся клиентов, использовать команду ClientsByDateTimeForAll.


Получения списка заказов, измененных в указанный промежуток времени. OrderByDateTimeForAll

Команда: OrderByDateTimeForAll

Получения списка информации по заказам, измененных в указанный промежуток времени.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

.../api/?OrderByDateTimeForAll

Тело запроса тип json:

{
  "OrderByDateTimeForAll":{
    "StartDate": "01.03.2018 10:00",
    "StopDate": "01.03.2018 12:00"
  },
  "SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}

где
StartDate – дата начала, обязательный параметр;
StopDate – дата окончания, обязательный параметр.

Ответ json:

{
  "error": 0,
  "order": [
    {
      "update":"16.03.2018+17:53:58",
      "dor_id":"100228",
      "doc_num":"000034",
      "contr_id":"10088",
      "kredit":"11",
      "debet":"11",
      "dolg":"0",
      "doc_date":"23.01.2018",
      "date_out":"24.01.2018+17:00:00",
      "date_out_fact":"",
      "status":"1",
      "status_name":"%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
      "photo_exist":"0",
      "discount":"0",
      "sclad_id":"1",
      "sclad_to":"1",
      "current_sclad_id":"1",
      "fast_execute":"0",
      "kind_id":"0",
      "vds_id":"",
      "user_id": "1",
      "user_name": "%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
      "firm_id": "10023",
      "firm_name": "%D0%9E%D0%9E%D0%9E%20%22%D0%9A%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%90%D0%B3%D0%B1%D0%B8%D1%81%22",
      "price_list_id": "10023",
      "price_list_name": "%D0%94%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%20%E2%84%96000008%20%D0%BE%D1%82%2002.09.2019",      
      "waiting_confirm": "0",
      "is_not_confirmed": "0",
      "condition_id": "",
      "condition_name": "",
      "Srvices": [
        {
          "dos_id":"100229911",
          "parent_id":"100229910",
          "tov_id":"100295",
          "service":"%D0%91%D1%80%D1%8E%D0%BA%D0%B8+%D0%BA%D0%BE%D0%B6%D0%B0%D0%BD%D1%8B%D0%B5+(%D0%BF%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0)",
          "code":"01.11",
          "status_id":"1",
          "status_name":"%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
          "serv_num":"1",
          "barcode":"271800000000341001",
          "price":"6",
          "qty":"1",
          "kfx":"1",
          "discount":"0",
          "nursery_id":"0",
          "nurseries_name":"%D0%9D%D0%B5+%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F",
          "nurseries_discount":"0",
          "serv_weight":"1",
          "dirty_id":"0",
          "dirty_name":"%D0%9E%D0%B1%D1%89%D0%B5%D0%B5",
          "dirty_kfx":"1",
          "kredit":"6",
          "ext_info":"",
          "shop_description":"",
          "group_tov":"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)",
          "current_sclad_id": "1003",
          "contr_provider_id": "10072",
          "contr_provider_name": "%D0%9F%D0%BE%D0%B4%20%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F",
          "contr_provider_inn": "1234-1234-1234-1234",
          "nds_name": "%D0%91%D0%B5%D0%B7%20%D0%9D%D0%94%D0%A1",
          "addons":[
            {
               "addon_id":"110",
               "descr":"%D0%9F%D0%BE%D0%BB",
               "value_type":"1",
               "aos_id":"1003462",
               "aos_value":""
             },
          ]
        }
      ] ,
      "Tovars":[
        {
          "dol_id":"10043",
          "tov_id":"100300",
          "tovar_name":"%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%D1%81%D0%BE%D0%BF%D1%83%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D0%B9",
          "code":"0",
          "group_tov":"%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D1%8B",
          "barcode":"",
          "price":"5",
          "qty":"1",
          "kfx":"1",
          "discount":"5",
          "kredit":"4,75",
          "ext_info":"sdddd%20sdg%20sgs",
          "tovar_descr":"fsdf%20sfs%20cfsd%20g%20wge%20w%D1%8B%20sg%20swgwg%20%D0%B4%D0%BE%D0%BB%D1%82%20kkkk%20k",
          "monger_id":"1",
          "monger_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81"
        }
      ],
      "payments":[
        {
          "date_pay":"18.12.2017+16:02:55",
          "document":"%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0+%D0%B1%D0%B0%D0%BD%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B9+%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D0%B9",
          "debet":"150",
          "kredit":"0",
          "kassa_name":"%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F"
        }
      ] 
    }
  ]
}

где
Orders – массив объектов заказов;
update – дата изменения;
dor_id – ID заказа;
doc_num – номер заказа;
contr_id – ID клиента;
kredit – сумма заказа;
debet – сумма оплаты заказа;
dolg – долг по заказу;
doc_date – дата принятия заказа;
date_out – дата выдачи заказа;
date_out_fact – дата выдачи заказа фактическая;
status – ID статуса (1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный);
status_name – наименование статуса;
photo_exist – признак присутствия в заказе фотографий;
discount – скидка;
sclad_id - склад принятия;
sclad_to – склад выдачи;
current_sclad_id – текущий склад;
fast_execute – ID срочности;
kind_id – тип заказа (0 – заказ химчистки, 1- прачечный заказ, 2 – продажа товаров, 4 – выездной заказ);
vds_id – ID ВДС;
user_id - ID пользователя;
user_name - Имя пользователя;
waiting_confirm – признак подтверждения заказа от клиента, не обязательный параметр. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;
is_not_confirmed - признак подтверждения сотрудником химчистки, не обязательный параметр. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;
condition_id - ID состояния, с версии Агбис.Химчистки 4.4.0;
condition_name - наименование состояния, с версии Агбис.Химчистки 4.4.0;

Srvices – массив объектов услуг;
dos_id – ID услуги;
parent_id – ID родительской услуги;
tov_id – ID услуги в прайс-листе;
service – наименование услуги;
code – артикул услуги;
status_id – ID статуса (1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный);
status_name – наименование статуса;
serv_num – порядковый номер услуги;
barcode – штрихкод услуги;
price - цена услуги из прайс листа;
qty – количество;
kfx – коэффициент;
discount - скидка услуги;
nursery_id – ID детской скидки;
nurseries_name – наименование услуги;
nurseries_discount - значение детской скидки;
serv_weight – вес услуги;
dirty_id – ID наценки;
dirty_name – наименование наценки;
dirty_kfx – коэффициент наценки;
kredit – сумма услуги;
ext_info – описание;
shop_description – описание цеха;
group_tov – наименование группы услуги;
current_sclad_id – ID текущего склада услуги;
contr_provider_id - ID агента;
contr_provider_name - название агента;
contr_provider_inn - ИНН агента;
nds_name - применяемая НДС;

addons – массив объектов доп. Реквизитов;
addon_id – ID доп. реквизита;
descr – наименование доп. Реквизита;
value_type - тип доп. реквизита;
aos_id - ID реквизита в заказе;
aos_value - значение доп. Реквизита;

Tovars – массив объектов товаров:
dol_id – ID товара в заказе;
tov_id - ID товара в прайс-листе;
tovar_name – наименование товара;
group_tov – наименование группы товара;
barcode – ШК товара;
price – цена товара из прайс-листа;
qty – кол-во;
kfx – коэффициент;
discount – скидка по товару;
kredit – сумма товара в заказе;
ext_info – описание;
tovar_descr – описание товара;
monger_id – ID продавца (пользователя);
monger_name – Имя продавца (пользователя);

payments – массив объектов оплат;
date_pay – дата оплаты;
document –документ оплаты;
debet – Сумма прихода;
kredit – сумма расхода;
kassa_name – наименование кассы.


Получения списка клиентов измененные в указанный промежуток времени. ClientsByDateTimeForAll

Команда: ClientsByDateTimeForAll

Получения списка клиентов измененные в указанный промежуток времени.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

.../api/?ClientsByDateTimeForAll

Тело запроса тип json:

{
  " ClientsByDateTimeForAll":{
    "StartDate": "01.03.2018 10:00",
    "StopDate": "30.03.2018 20:00"
  },
  "SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}
где
StartDate – дата начала, обязательный параметр;
StopDate – дата окончания, обязательный параметр.

Ответ json:

{
  "error":0,
  "clients":[
    {           
      "update": "16.11.2021%2015:30:36",
      "contr_id": "10013",
      "fullname": "%D0%90%D0%B3%D0%B1%D0%B8%D1%81%20%D0%A2%D0%B5%D1%81%D1%82%20%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8%D1%87",
      "name": "%D0%90%D0%B3%D0%B1%D0%B8%D1%81%20%D0%A2.%20%D0%A2.",
      "telephone": "",
      "teleph_cell": "%2B79990009900",
      "email": "test@test.ru",
      "folder_id": "24",
      "address": "%D1%82%D0%B5%D1%81%D1%82",
      "barcode": "1600000100138",
      "discount": "12",
      "gender": "0",
      "is_active": "1",
      "is_deleted": "0",
      "source": "",
      "agree_to_receive_sms": "1",
      "agree_to_receive_adv_sms": "0",
      "sp": "2",
      "region_id": "",
      "date_create": "30.03.2017%2010:57:41",
      "first_order_date": "22.06.2017",
      "save_token_pay": "0",
      "last_order_date": "13.07.2022",
      "previous_order_date": "08.06.2022",
      "scheme_id": "",
      "schem_name": "",
      "is_family": "0",
      "dics_block_reason": "",
      "contr_block_reason": "",
      "address_post": "",
      "okpo": "",
      "inn": "",
      "kpp": "",
      "ogrn": "",
      "account": "",
      "bank_name": "",
      "birth_day": "",
      "order_not_pay": "380",
      "order_count": "599",
      "dolg": "1399165,42",
      "bonus": "5459,6",
      "deposit": "36",
      "enter_count": "208",
      "pay_rest": "-1310113,31",
      "date_avg": "2",
      "pay_summ": "1780109,24",
      "disc_rest": "%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82",
      "promo_code": "P2HZ3",
      "date_last_ds": "28.06.2022 13:52:08"
    }
  ]
}

где
clients – массив объектов клиентов;
update – дата изменения клиента;
contr_id – ID клиента;
fullname – полное ФИО;
name – краткое ФИО;
telephone – обычный телефон;
teleph_cell – сотовый телефон;
email – электронная почта;
folder_id - ID группы клиента;
address – адрес клиента;
barcode – штрихкод клиента;
discount – скидки клиента;
gender – пол клиента (0-мужской, 1-женский);
is_active – признак активности;
is_deleted – признак удаления;
source – произвольный текст;
agree_to_receive_sms – согласие получать СМС о готовности заказов;
agree_to_receive_adv_sms – согласие получать рекламные и поздравительные СМС;
sp – тип клиента (1- организация, 2- физическое лицо);
region_id – регион;
date_create – дата создания;
first_order_date – дата первого заказа;
last_order_date – дата последнего заказа;
previous_order_date – дата предпоследнего заказа;
scheme_id - ID дисконтной схемы;
schem_name - наименование ДС;
is_family - признак семейная скидка;
agree_save_card_pay – признак согласия сохранять карту оплаты;
birth_day – дата рождения;
order_not_pay – количество не отплаченных заказов;
order_count – количество заказов;
deposit – остаток депозита клиента;
bonus – остаток бонусов клиента;
dolg – сумма долга;
enter_count – количество посещений;
pay_rest – нерастраченные авансовые платежи;
date_avg – среднее кол-во дней между заказами;
pay_summ –  сумма заказов за весь период;
disc_rest – остаток по дисконтной схеме;
promo_code – промо-код;
date_last_ds - дата присвоения последней ДС.


Список изменившихся ID заказов. LastChangeOrder

Команда: LastChangeOrder

Получение списка изменившихся ID заказов.

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

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

Формат запроса: LastChangeOrder=&SessionID=

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

.../api/?LastChangeOrder&SessionID=...

Ответ json:

{
  "error": 0, 
  "last_orders": 
    [
      {
        "cur_id": "123",
        "dttm": "15.01.2019 12:23",
        "dor_id": "123456", 
        "status_id": "1", 
        "contr_id": "123456789"
        "cur_sclad_id": "12334",
        "sclad_to": "12333",
        "sclad_kredit_id": "12345"
      },
      {
        "cur_id": "124",
        "dttm": "15.01.2019 12:24",
        "dor_id": "258963",
        "status_id": "3",
        "contr_id": "1234567",
        "cur_sclad_id": "12334",
        "sclad_to": "12333",
        "sclad_kredit_id": "12345"
      },
      ...
    ]
}

где
last_orders – массив изменившихся заказов:
cur_id - порядковый номер изменения;
dttm - дата и время изменения;
dor_id – ID заказа;
contr_id – ID клиента;
status_id – статус заказа (1 – новый, 3 – в исполнении, 4 – исполненный, 5 - выданный);
cur_sclad_id – текущий ID склад заказа на момент изменения в заказе;
sclad_to - ID склада выдачи;
sclad_kredit_id - ID склада приема;


Устаревшие команды

В данном разделе находятся уже устаревшие команды, но еще работающие.

Через несколько лет они будут удалены.

Для избежания поломки уже интегрированных устаревших команд, рекомендуется сделать переход на соответствующую актуальную команду.


Получение фотографий услуг. GetOrderImagesForAll

Команда: GetOrderImagesForAll

Устаревшая команда. Команда просмотра фотографий заказа.
Для просмотра списка фотографий, рекомендуется использовать актуальную команду OrderImagesModern.

Для получения самой фотографии, используется команда PhotoOnline.

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

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

Формат запроса: GetOrderImagesForAll={"dor_id": "11223334"}&SessionID=

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

.../api/?GetOrderImagesForAll=%7B%22dor_id%22%3A%20%2211223334%22%7D&SessionID=…

где
dor_id – ID заказа, обязательно поле.

Ответ json:

{
  "error":0, 
  "photos":[
    {
      "dos_id": "100229859", 
      "photo_id": "1004", 
      "img": "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"
    }
  ]
}

где
photos – массив фотографий;
dos_id – ID услуги заказа;
photo_id – ID фотографии;
img – фотография в строке base64.