Клиенты¶
Карточка клиента¶
URI: /BumsCrmApiV01/Contractor/card.api|xml
Входные параметры¶
| Параметр | Тип | Описание |
|---|---|---|
| Id | integer | Идентификатор клиента |
| RequestedFields | array<string> | Массив полей, которые необходимо вывести. Список допустимых для этого параметра полей можно получить отдельным запросом |
| FormatSettings[phone] | string | Если передать значение «full», номера клиента будут выводиться с комментариями и префиксами. Подробнее о префиксах и их значениях здесь |
Существует возможность с помощью параметра RequestedFields вывести все e-mail`ы клиента:
/BumsCrmApiV01/Contractor/card.api?Id=1030347&RequestedFields[ContactInfo][0]=Type&RequestedFields[ContactInfo][1]=Value&RequestedFields[ContactInfo][2]=IsMain
В ответе на такой запрос в объекте клиента появится поле-массив ContactInfo содержащий поля Type - тип контактной информации(email), Value - сам адрес в виде строки, IsMain - булево значение, является ли email главным(предпочтительным для связи).
Выходные данные¶
Если был передан в запросе параметр RequestedFields, то выводятся только те поля, который были переданы в нём. Иначе:
| Параметр | Тип | Описание |
|---|---|---|
| Id | integer | Идентификатор клиента |
| Type | object(Id,Name) | Тип клиента |
| PersonType | string | Тип организации (company или person) |
| ActivityType | string | Вид деятельности |
| AdvertisingWay | string | Канал привлечения |
| Birthday | date | День рождения/Дата основания |
| Description | string | Описание |
| string | Почта | |
| Icq | string | Номер ICQ |
| string | Адрес в Фейсбуке | |
| Jabber | string | Джаббер |
| Locations | string | Адреса |
| Name | string | Имя или название |
| GUID | string | ИД, созданный при синхронизации с интернет магазином |
| PreferTransport | string | Предпочтительный вид связи |
| Responsibles | [object(Id,Name)] | Ответственные |
| ResponsibleContractors | [object(Id,Name)] | Ответственные клиенты |
| Site | string | Сайт |
| Skype | string | Скайп |
| Status | object(Id,Name) | Статус |
| TimeCreated | date | Дата создания |
| TimeUpdated | date | Дата изменения |
| string | Твиттер | |
| Attaches[0..n][Name] | string | Имя файла вложения |
| Attaches[0..n][Url] | string | Запрос для получения файла вложения по API |
| Attaches[0..n][FileName] | string | Системное имя файла вложения, используется при удалении. |
| Attaches[0..n][TimeCreated] | date | Дата создания файла вложения |
| Attaches[0..n][Size] | integer | Размер файла вложения, кб |
Если клиент является компанией, то дополнительно присутствуют:¶
| Параметр | Тип | Описание |
|---|---|---|
| CompanyName | string | Название компании |
| ChildContacts | array | Массив контактных лиц. (Каждый элемент массива содержит структуру, которая описана в этом разделе) |
Если клиент является контактным лицом, то дополнительно присутствуют:¶
| Параметр | Тип | Описание |
|---|---|---|
| LastName | string | Фамилия |
| FisrtName | string | Имя |
| MiddleName | string | Отчество |
| ParentCompany | object | Компания. Элемент является объектом, структура которого описана в этом разделе |
| Gender | string | Пол |
| Position | string | Должность |
Примечания.¶
Поле присутствует в ответе только в том случае, если оно заполнено для запрошенного клиента.
Пример ответа в JSON-формате¶
{
"status": {
"code": "ok",
"message": null
},
"data": {
"contractor": {
"Id": 1000013,
"Birthday": "2000-01-01",
"ChildContacts": [
{
"Id": 1000014,
"Name": "Ivan Ivanov"
},
{
"Id": 1000014,
"Name": "Sergey Sergeev"
}
],
"Description": "",
"Email": "income@babayka.ltd",
"Phones": [
"ph_m+7-915-1234567\ttest_api",
"ph_m+7-916-1234567\ttest_api"
],
"Icq": "",
"Facebook": "",
"Jabber": "",
"Locations": [
{
"Id": 5,
"Address": "Some_Address"
}
],
"Name": "Babayka ltd",
"GUID": "",
"Payers": [
{
"Id": 1000013,
"Name": "Babayka"
}
],
"PersonType": "company",
"PreferTransport": "",
"PromisingRate": "0",
"Responsibles": [
{
"Id": 1000006,
"Name": "api_test_employee_first_name_uid_1000091 test"
},
{
"Id": 1000007,
"Name": "api_test_employee_first_name_uid_1000093 test"
}
],
"Site": "",
"Skype": "",
"TimeCreated": "2016-12-02 13:17:07",
"TimeUpdated": "2016-12-02 13:17:08",
"Twitter": "",
"Type": {
"Id": 1,
"Name": "Клиент"
},
"CompanyName": "Company_Name",
"ResponsibleContractors": []
}
}
}
Пример ответа в XML-формате¶
<?xml version="1.0" encoding="utf-8"?>
<response>
<status>
<code>ok</code>
<message></message>
</status>
<params>
<id>1</id>
</params>
<data>
<contractor>
</contractor>
</data>
</response>
Редактирование/Создание клиента¶
URI: /BumsCrmApiV01/Contractor/save.api|xml
Входные параметры¶
| Параметр | Тип | Описание |
|---|---|---|
| Id | integer | ID клиента, если не указан то будет создан новый клиент |
| Model[TypePerson] | string | Тип организации, принимает значения: human и company |
| Model[Type] | string | ID типа клиента |
| Model[FirstName] | string | Имя, обязательное если тип human |
| Model[LastName] | string | Фамилия, обязательное если тип human |
| Model[MiddleName] | string | Отчество, обязательное если тип human |
| Model[CompanyName] | string | Наименование компании, обязательное если тип company |
| Model[ParentCompany] | int | Id компании, используется для связи контактного лица с компанией |
| Model[Email] | string | |
| Model[Phones] | array | Массив телефонов* |
| Model[Birthday] | array | День основания компании или день рождения клиента, формат: Y-m-d (Пример: ‘1999-03-27’) |
| Model[Responsibles] | string | Идентификаторы ответственных сотрудников перечисленных через запятую (Пример: ‘1000005,1013202’) |
| Model[ResponsibleContractors] | string | Идентификаторы ответственных клиентов** перечисленных через запятую (Пример: ‘1000005,1013202’) |
| Model[Attaches][Add] | array | Массив приложенных файлов, должен передаваться POST-запросом |
| Model[Attaches][Add][0…n][Content] | string | Данные(контент файла), закодированные с использованием MIME base64 |
| Model[Attaches][Add][0…n][Name] | string | Имя файла |
| Model[Attaches][Delete][0…n] | string | Имя файла, который необходимо удалить*** |
| Model[Locations][location] | array | Массив адресов клиента**** |
| Model[Имя_поля] | string | Значение расширенного поля контрагента с именем “Имя_поля” (список полей можно получить с помощью отдельного запроса |
∗ - строка с номером телефона должна иметь следующий вид: префикс, определяющий тип телефона (например, домашний или мобильный), код страны, код города и сам номер, разделенные дефисом, через симол табуляции можно передать комментарий к телефону (разделение телефона и комментария знаком табуляции - обязательно). Например: ph_m-7-915-1234567 → комментарий. Список возможных префиксов с названиями можно получить в справочнике.
∗∗ - Отвественными клиентами, могут быть только клиенты с гостевым доступом
∗∗∗ - системное имя файла можно получить, выполнив запрос карточки клиента, выходной параметр - Attaches[0..n][FileName]
**** - Чтобы добавить несколько адресов клиенту, нужно использовать в запросе следующую структуру: Model[Locations][location][n1][Address]=address1&Model[Locations][location][n2][Address]=address2
Выходные данные (поля клиента)¶
| Поле | Тип | Описание |
|---|---|---|
| contractor[Id] | integer | ID клиент |
| contractor[PayerId] | integer | ID автоматически созданного плательщика |
Удаление клиента¶
URI: /BumsCrmApiV01/Contractor/delete.api|xml
Входные параметры¶
| Параметр | Тип | Описание |
|---|---|---|
| Id | integer | ID клиента, которого нужно удалить. |
Список полей клиента¶
URI: /BumsCrmApiV01/Contractor/listFields.api|xml
Выходные параметры (массив полей клиента с переводом поля)¶
| Поле | Тип | Описание |
|---|---|---|
| Fields | array<object (Name, Translation, Type)> | Массив объектов, где каждый объект является определением поля, содержащим его имя тип и перевод. |
Список клиентов¶
URI: /BumsCrmApiV01/Contractor/list.api|xml
Входные параметры¶
| Параметр | Тип | Описание |
|---|---|---|
| FilterId | integer | Идентификатор фильтра |
| Limit | integer | Сколько выбрать клиентов (LIMIT) Выборка происходит с начала от меньших ID к большим |
| Offset* | integer | Начиная с какого выбирать клиента (OFFSET) |
| qs | string | Условие поиска |
| Phone | string | Номер телефона в произвольном формате |
| Model | array | Массив в формате имя поля => значение. Используется для фильтрации по конкретным значениям полей. |
| DroppedOnly | bool | Выводить только условно удаленных клиентов. Выходные параметры будут состоять из полей Id и Name. |
- Offset — порядковый номер в получившейся выборке. Например, если у нас 10 клиентов и 5 — с именем Иван, то запрос c
Limit=1, Offset=3 и qs='Иван', вернет третьего по порядку из этих пяти.
Выходные данные¶
| Параметр | Тип | Описание |
|---|---|---|
| Id | integer | Идентификатор клиента |
| Type | string | Тип клиента |
| Name | string | Имя клиента |
| Birthday | datetime | Дата рождения |
| Description | string | Описание клиента |
| string | ||
| string | ||
| Jabber | string | Jabber |
| Payers | object (Id, Name) | Список плательщиков |
| PersonType | string | Тип организации |
| PreferTransport | string | Предпочтительный способ связи |
| PromisingRate | string | Перспективность |
| Responsibles | object (Id, Name) | Ответственные |
| ResponsibleContractors | object (Id, Name) | Ответственные клиенты https://help.megaplan.ru/FAQCrm_071#a1d3708cb40952acfc105fb6a391ae43d |
| Site | string | Сайт |
| TimeCreated | datetime | Время создания |
| TimeUpdated | datetime | Время обновления |
| string |
Пример ответа в JSON-формате¶
{
"status":
{
"code":"ok",
"message":null
},
"params":
{
"FilterId":0,
"Limit":0,
"Offset":0,
"qs":""
},
"data":
{
"clients":[
{
"Id":1022073,
"Name":"Denisov Ivan",
"Birthday":"1980-01-01",
"Description":"",
"Email":"oleg@test.com",
"Facebook":"",
"Jabber":"",
"Payers":[{"Id":1020826,"Name":""}],
"PersonType":"company",
"PreferTransport":"",
"PromisingRate":"0",
"Responsibles":[{"Id":1000000,"Name":"Name"}],
"Site":"",
"TimeCreated":"2012-08-23 12:56:45",
"TimeUpdated":"2012-08-23 13:56:45",
"Twitter":"",
"Type":{"Id":1,"Name":"Клиент"}
}
]
}
}
Пример ответа в XML-формате¶
<?xml version="1.0" encoding="utf-8"?>
<response>
<status>
<code>ok</code>
<message></message>
</status>
<params>
<filter_id>0</filter_id>
<limit>0</limit>
<offset>0</offset>
<qs></qs>
</params>
<data>
<clients>
<item>
<id>1022073</id>
<name>Denisov Ivan</name>
<birthday>1980-01-01</birthday>
<description></description>
<email>oleg@test.com</email>
<facebook></facebook>
<jabber></jabber>
<players>
<id>1020826</id>
<name></name>
</players>
<person_type>company</person_type>
<prefer_transport></prefer_transport>
<promising_rate></promising_rate>
<responsibles>
<id>1020826</id>
<name></name>
</responsibles>
<site></site>
<time_created>2012-08-23 12:56:45</time_created>
<time_updated>2012-08-23 12:56:45</time_updated>
<twitter></twitter>
<type>
<id>1</id>
<name>Клиент</name>
</type>
</item>
</clients>
</data>
</response>