Сделки (contract)
Метод “contract”
Метод позволяет управлять записями Клиентов – добавлять, обновлять, удалять.
Запрос “fields”
Запрос позволяет получить список доступных полей, хранящих информацию о сделке в формате – «Имя поля» - «Расшифровка назначения» для формирования дальнейших запросов.
В список включены поля, активированные в Панели управления / Формы сделок. Не активные поля игнорируются при обработке.
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=fields
Ответ:
{
"data":{
"did":"Уникальный идентификатор записи в CRM",
"uid":"Уникальный идентификатор записи в вашей ИС",
"datum":"Дата создания. YYYY-MM-DD",
"datum_izm":"Дата последнего изменения. YYYY-MM-DD",
"mcid":"ID своей компании",
"iduser":"Ответственный",
"datum_plan":"Дата план.",
"step":"Этап",
"dog_num":"Договор",
"tip":"Тип сделки",
"direction":"Направление",
"adres":"Адрес",
"content":"Описание",
"payer":"Плательщик",
"des":"Примечание",
"kol":"Сумма план.",
"marg":"Прибыль",
"datum_start":"Период действия. Начало",
"datum_end":"Период действия. Конец",
"datum_close":"Дата закрытия. YYYY-MM-DD",
"status_close":"Результат закрытия сделки",
"kol_fact":"Фактическая сумма продажи"
}
}
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
Запрос “steplist”
Запрос позволяет получить список этапов в формате – «Этап» - «Расшифровка назначения» для формирования дальнейших запросов.
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=steplist
Ответ:
Ответ содержит массив этапов с расшифровкой значений
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
Запрос “direction”
Запрос позволяет получить список этапов в формате – «Этап» - «Расшифровка назначения» для формирования дальнейших запросов.
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=direction
Ответ:
Ответ содержит массив этапов с расшифровкой значений
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
Запрос “contracttipe”
Запрос позволяет получить список типов сделок для формирования дальнейших запросов.
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=contracttipe
Ответ:
Ответ содержит массив типов сделок
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
Запрос “statusclose”
Запрос позволяет получить список статусов закрытых сделок.
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=statusclose
Ответ:
Ответ содержит массив статусов закрытия сделки, которые используются в запросе close
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
Запрос “list”
Запрос позволяет получить список сделок, доступных текущему сотруднику, в т.ч. с применением фильтров.
Параметры запроса (не обязательные):
- offset – страница вывода, с учетом того, что установлен лимит в 200 записей на страницу (по умолчанию offset = 0)
- order – поле, по которому будет производится сортировка списка (по умолчанию order = datum)
- first – направление сортировки (new – сначала новые, old – сначала старые). (по умолчанию first = new)
Фильтры (не обязательные):
- uid – ограничение по uid сделки (идентификатор из внешней системы)
- user – ограничение по пользователю (указывается логин пользователя)
- dateStart – начальная дата создания записи (формат - YYYY-MM-DD)
- dateEnd – конечная дата создания записи (не обязательно, формат - YYYY-MM-DD)
- только dateStart – вывод записей с датой создания больше указанной даты
- только dateEnd – вывод записей с датой создания меньше указанной даты
- word – слово поиска по полям title, des, adres
- steps – фильтр по этапам с перечислением названий этапов через запятую (Например – 10,20,40)
- active - yes - активная сделка (по умолчанию) или no - закрытая
- fields – указание списка полей, выводимых запросом
- invoice - если равен "no", то ответ не будет содержать счетов (yes - по умолчанию)
Дополнительные фильтры:
- filter - массив, содержащий дополнительные фильтры:
- clid - идентификатор клиента-заказчика
- payer - идентификатор клиента-плательщика
- direction - направление деятельности в текстовом виде (напроимер, основное)
- tip - тип сделки в текстовом виде
- input1...input10 - доп.поле
Пример формирования запроса в PHP:
$params['login'] = "vladislav@isaler.ru";
$params['apikey'] = 'aMgiCQyj8bCToNc47BZZYrRICoWSIl';
$params['action'] = 'list';
$params['filter']['tip'] = 'Услуги';
$params['filter']['direction'] = 'Отделка';
$params['filter']['input1'] = 'Текст';
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=list&offset=0&order=datum&first=&user=&dateStart=2015-01-01&dateEnd=&word=&fields=did,clid,title,kol,marga
Ответ:
В поле “data” приходит список записей, в поле "count" - приходит общее количество записей в выборке
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
Запрос “info”
Запрос позволяет получить информацию о сделке по её идентификатору - did.
Параметры запроса:
- did – уникальный идентификатор записи или uid – идентификатор из внешней системы
- fields – ограничение вывода информации по полям с разделением запятыми без пробелов
- bankinfo – вывод банковских реквизитов клиента (yes / no – по умолчанию)
- invoice - если равен "no", то ответ не будет содержать счетов (yes - по умолчанию)
- speka - если равен "no", то ответ не будет содержать спецификации (yes - по умолчанию)
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=info&did=744
Ответ:
{
"data":{
"did":"744",
"datum":"2015-01-31",
"datum_izm":null,
"clid":"1781",
"clientname":"Юлла, ООО",
"title":"Продажа для Юлла, ООО",
"mcid":"3",
"iduser":"vladislav@isaler.ru",
"datum_plan":"2015-06-30",
"step":"90",
"dog_num":"192",
"tip":"Продажа услуг",
"direction":"Проектные работы",
"adres":"г. Пермь, ул. Коммунистическая, 41",
"content":"",
"payer":"1781",
"payername":"Юлла, ООО",
"kol":"27741.00",
"marga":"7622.00",
"datum_start":"0000-00-00",
"datum_end":"0000-00-00",
"close":"no",
"datum_close":null,
"status_close":false,
"des_fact":null,
"kol_fact":"0.00"
}
}
Ответ также будет содержать 2 блока, если в параметрах нет отказа от их вывода:
- "speka" - спецификация
- "artikul" - артикул продукта
- "title" - название позиции
- "kol" - количество
- "dop" - доп.множитель, если не используется = 1
- "price" - цена продажи
- "price_in" - закупочная стоимость
- "edizm" единица измерения
- "nds" - НДС в % если есть
- "invoice" - список выставленных счетов (см. также "Добавление счета")
- "id" - идентификатор записи счета (если номер не уникален или не указан)
- "invoice" - номер счета
- "date" - дата счета в формате ГГГГ-ММ-ДД
- "summa" - сумма счета
- "nds" - НДС по счету
- "do" - признак оплаченного счета (оплачен = on)
- "date_do" - дата оплаты в формате ГГГГ-ММ-ДД
- "contract" - номер договора (если есть)
- "rs" - идентификатор расчетного счета в CRM
- "tip" - тип счета (например, Счет-договор)
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
- 403 – Сделка с указанным did не найдена в пределах аккаунта указанного пользователя
- 404 – Не найдено
- 405 – Отсутствуют параметры - did сделки
Запрос “add”
Запрос позволяет добавить новую сделку в базу CRM. При этом ответственным устанавливается сотрудник, логин которого использовался в запросе или указанный отдельно в параметре user
Параметры запроса:
- uid – уникальный идентификатор во внешней ИС
- title – название сделки (обязательное поле)
- clid –идентификатор клиента, к которому будет привязана сделка (обязательное поле)
- payer - идентификатор клиента-плательщика
- datum_plan – плановая дата закрытия сделки
- mcid – идентификатор своей компании (можно получить в отдельном запросе)
- user – login пользователя в SalesMan CRM назначаемого Ответственным за клиента
- прочие поля fields – информация для добавления
- speka - массив данных для добавления продуктов, для каждого добавляемого продукта содержит следующие данные:
- artikul - артикул позиции прайса (уникальный идентификатор товара/услуги)
- title - наименование позиции
- kol - количество
- dop - доп.поле, по умолчанию = 1
- price - розничная цена (не обязателный параметр, при совпадении актикула или названия с позицией в прайсе берется из прайса)
- price_in - закупочная цена (не обязателный параметр, при совпадении актикула или названия с позицией в прайсе берется из прайса)
- edizm - единица измерения (не обязателный параметр, при совпадении актикула или названия с позицией в прайсе берется из прайса)
- nds - НДС, в %
Примечание:
- параметр datum_plan может быть указан в запросе. Если он отсутствует, то будет принято текущая дата + 2 недели
- параметр payer может быть указан в запросе. Если он отсутствует, то будет принято payer = clid
- параметр mcid может отсутствовать в запросе. Если не указано, то принимается значение по умолчанию из справочника
- при пустом поле user Ответственным будет назначен текущий пользователь (из запроса)
- следующие параметры передаются в явном, текстовом виде:
- direction – направление деятельности. Если не указано, то принимается значение по умолчанию из справочника
- tip – тип сделки. Если не указано, то принимается значение по умолчанию из справочника
- step – числовое значение текущего этапа (например: 20)
В случае отсутствия переданных значений в справочниках не будут созданы новые записи
Пример формирования запроса в PHP:
$params['login'] = "vladislav@isaler.ru";
$params['apikey'] = 'aMgiCQyj8bCToNc47BZZYrRICoWSIl';
$params['action'] = 'add';
$params['mcid'] = '2'; //id компании в справочнике "Мои компании"
$params['user'] = '';
$params['clid'] = '1781';
$params['datum_plan'] = '2015-05-30';
$params['payer'] = '';//м.б. пустым, если равен clid
$params['title'] = 'Пробная сделка API №1';
$params['content'] = 'Текст описания.';
$params['step'] = '20';
$params['kol'] = '100000.00';
$params['marga'] = '30000.00';
$params['tip'] = 'Продажа услуг';
$params['direction'] = 'Оборудование';
$urlparams = http_build_query($params);
Ответ:
В поле “data” приходит id записи
{"result":"Успешно","data":764}
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
- 405 – Отсутствуют параметры - clid и payer клиента
- 406 – Отсутствуют параметры - Название сделки
- 407 - Клиент или Плательщик не найден
Запрос “update”
Запрос позволяет обновить данные сделки по её did или uid. При этом нет необходимости передавать все данные – можно передать только изменившиеся данные.
Параметры запроса:
- did – уникальный идентификатор клиента (обязательное поле) или uid – уникальный идентификатор во внешней ИС
- прочие поля fields – информация для обновления
- speka - массив данных для добавления продуктов, для каждого добавляемого продукта содержит следующие данные:
- artikul - артикул позиции прайса (уникальный идентификатор товара/услуги)
- title - наименование позиции
- kol - количество
- dop - доп.поле, по умолчанию = 1
- price - розничная цена (не обязателный параметр, при совпадении актикула или названия с позицией в прайсе берется из прайса)
- price_in - закупочная цена (не обязателный параметр, при совпадении актикула или названия с позицией в прайсе берется из прайса)
- edizm - единица измерения (не обязателный параметр, при совпадении актикула или названия с позицией в прайсе берется из прайса)
- nds - НДС, в %
Важно:
- Если в запросе есть параметр speka (есть спецификация), то предыдущая спецификация будет удалена и добавлена новая
- При наличии спецификации сумма сделки (бюджет) и маржа будут расчитаны на основе спецификации
- Запрос не применим для изменения статуса сделки (смена этапа, закрытие) - для этого используйте отдельные запросы
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=update&did=1820&step=40&kol=120000.00&marga=40000.00&datum_plan=2015-06-10
Ответ:
В поле “data” приходит id записи
{"result":"Успешно","data":764}
Если данные совпадают с имеющимися в базе запрос не будет обработан, но ошибки не вернет:
{"result":"Данные корректны, но идентичны имеющимся","data":764}
Результат обработки спецификации будет добавлен к предыдущему ответу.
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
- 403 – Сделка с указанным did не найдена в пределах аккаунта указанного пользователя
- 405 – Отсутствуют параметры - did сделки
Запрос “changestep”
Запрос позволяет изменить этап сделки по её did с указанием комментария изменения.
Параметры запроса:
- did – уникальный идентификатор клиента (обязательное поле) или uid – уникальный идентификатор во внешней ИС
- step – числовое значение нового этапа (обязательное поле)
- reason – комментарий к изменению этапа
Дополнительно:
- Если в системе активирован модуль «Контрольные точки» и текущий этап связан с какой-либо контрольной точкой, то она будет отмечена выполненной. Ответ о выполнении вернется в поле “message”. Также сообщение будет записано в Историю активности.
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=changestep&did=764&step=40&reason=
Ответ:
- В поле “data” приходит id записи
- В поле “message” приходит дополнительное сообщение
{"result":"Успешно","data":1820,"message":" Поставлена отметка о выполнении Контрольной точки - Согласование спецификаци"}
Если данные совпадают с имеющимися в базе запрос не будет обработан, но ошибки не вернет:
{"result":"Данные корректны, но идентичны имеющимся","data":764}
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
- 403 – Сделка с указанным did не найдена в пределах аккаунта указанного пользователя
- 405 – Отсутствуют параметры - Новый этап
- 406 – Отсутствуют параметры - did сделки
Запрос “close”
Запрос позволяет закрыть сделку по её did.
Параметры запроса:
- did – уникальный идентификатор сделки (обязательное поле) или uid – уникальный идентификатор во внешней ИС
- status_close – статус закрытия сделки (обязательное поле)
- kol_fact – сумма сделки при закрытии
- marga – маржа сделки при закрытии
- des_fact – комментарий при закрытии
Примечание:
- kol_fact и marga не обязательные, при отсутствии будут равны сумме и марже сделки
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=close&did=764&status_close=
Ответ:
В поле “data” приходит id записи
{"result":"Успешно","data":764}
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
- 403 – Сделка с указанным did не найдена в пределах аккаунта указанного пользователя
- 405 – Отсутствуют или не корректны параметры - Статус закрытия сделки
- 406 – Отсутствуют параметры - did сделки
- 407 – Сделка уже закрыта
Запрос “delete”
Запрос позволяет удалить сделку по её did. Метод работает только в случае, если у сделки нет выставленных счетов.
Параметры запроса:
- did – уникальный идентификатор сделки (обязательное поле) или uid – уникальный идентификатор во внешней ИС
Пример запроса:
http(s)://crm_url
/developer
/v1/contract?login=vladislav@isaler.ru&apikey=aMgiCQyj8bCToNc47BZZYrRICoWSIl&action=delete&did=764
Ответ:
В поле “data” приходит id записи
{"result":"Успешно","data":764}
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
- 403 – Сделка с указанным did не найдена в пределах аккаунта указанного пользователя
- 406 – Отсутствуют параметры - did сделки
- 407 – Удаление сделки не возможно - есть Оплаченные/Неоплаченые счета
Запрос “addinvoice”
Запрос позволяет добавить к сделке новый счет
Параметры запроса:
- uid – уникальный идентификатор сделки во внешней системе
- did – уникальный идентификатор сделки в CRM
- date – дата счета
- date_plan – ожидаемая дата оплаты счета
- summa – сумма счета, если не указана - берем сумму Сделки
- invoice - номер счета, если пусто, то будем генерировать очередной из системы
- contract - номер договора, если пусто, то смотрим Договор, прикрепленный к сделке
- do - признак оплаченного счета - yes / no
- date_do - дата оплаты, если пусто - текущая дата
- rs - идентификатор расчетного счета (список можно получить из справочника) - если пусто, то берем первый по списку с признаком "по-умолчанию"
- nds - размер НДС в абсолютных цифрах (не обязательно при наличии спецификации)
- tip - тип счета - Предварительная оплата, Окончательная оплата, По спецификации, По договору, Счет-договор
Важно:
- Допускается указание либо did, либо uid сделки
- Перед выставлением счета (если счет не к договору и не является предоплатным/постоплатным) необходимо добавить спецификацию - позиции с помощью запроса update
Ответ:
В поле “result“ приходит ответ обработчика, в поле “data” приходит:
- id - идентификатор записи счета в CRM
- invoice - номер счета
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
- 403 – Сделка с указанным did не найдена в пределах аккаунта указанного пользователя
Запрос “addpaiment”
Запрос позволяет отметить выставленный счет оплаченным (с внесением суммы на указанный расчетный счет модуля Бюжет)
Параметры запроса:
- invoice - номер счета
- id - идентификатор записи счета (если номер не уникален или не указан)
- date_do - дата оплаты, если пусто - текущая дата
Наличие параметра "invoice" ИЛИ "id" обязательно для поиска счета в базе. Получить список счетов с "id" и "invoice" можно с помощью метода info
Ответ:
В поле “result“ приходит ответ обработчика, в поле “data” приходит расширенный отчет обработки
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
- 403 – Счет по номеру не найден
Запрос “addpaimentpart” Новое
Является расширенным запросом, аналогичным addpaiment. Позволяет отметить выставленный счет оплаченным или частично оплаченным (с внесением суммы на указанный расчетный счет модуля Бюжет). В случае неполной оплаты будет создана дополнительная запись в графике платежей на недостающую сумму.
Параметры запроса:
- invoice - номер счета (обязательный параметр)
- id - идентификатор записи счета (если номер не уникален или не указан)
- date_do - дата оплаты, если пусто - текущая дата
- summa - сумма оплаты, должна быть больше нуля и меньше/равно сумме счета
Ответ:
В поле “result“ приходит ответ обработчика, в поле “data” приходит расширенный отчет обработки
Возможные ответы в случае ошибок:
- 400 – Не верный API key
- 401 – Неизвестный пользователь
- 402 – Неизвестный метод
- 403 – Счет по номеру не найден
- 405 – Сумма превышает сумму счета