Введение
Спасибо за выбор Salesap API. Данный API позволяет работать со всеми основными объектами и настройками Salesap, благодаря чему вы можете быстро создавать свои собственные приложения.
Получение API токена
Для корректной работы всех последующих примеров вам потребуется ключ для доступа к Salesap API. Чтобы получить данный ключ перейдите в раздел Настройки / Настройки API из своего аккаунта.
Спецификация
Форматы запросов и ответов к API соответствуют спецификации JSON API v1.0.
Общие принципы
Постраничный вывод (пагинация)
Пример ответа, содержащего мета данные о количестве объектов и количество страниц
{
"data" : [....],
"meta": {
"record-count": 13470,
"page-count": 270
}
}
Для перехода на вторую (третью, четвертую и тд) страницу, необходимо в адрес
запроса указывать параметр page[number]
, например, чтобы получить вторую страницу сделок
нужно GET запрос отправлять на адрес https://app.salesap.ru/api/v1/deals?page[number]=2.
Для изменения количества выводимых объектов на страницу нужно использовать параметр page[size]
,
по умолчанию размер страницы составляет 50 объектов, максимально допустимый 100 объектов.
GET запрос на адрес https://app.salesap.ru/api/v1/deals?page[size]=5 вернет 5 сделок.
Оба параметра page[number]
и page[size]
можно вызывать вместе, GET запрос на адрес
https://app.salesap.ru/api/v1/deals?page[number]=2&page[size]=2 вернет две сделки второй страницы.
Каждый ответ содержит не только ключ c данными (data), но и ключ с мета-данными (meta),
в котором хранится информация о общем количестве объектов (record-count
) запрашиваемой
сущности и о общем количестве страниц (page-count
).
Таким образом, на основании мета данных, можно строить логику деления объектов на страницы.
Лимиты
Запросы к списочным методам (GET /api/v1/deals
, GET /api/v1/companies
и тп) имеют ограничение в количестве двух запросов в секунду.
При превышении лимита, клиент получит серверный статус ответа 429 и текст "Too Many Requests".
Авторизация
Для авторизации используйте следующий код:
curl "https://app.salesap.ru/api/v1/deals" \
-H "Authorization: Bearer api_token"
Используйте полученный в настройках API токен вместо
api_token
.
Каждый запрос к API требует авторизации. Для авторизации необходим специальный уникальный токен.
Токен авторизации необходимо передавать в заголовке Authorization
каждого запроса. Пример:
Authorization: Bearer access_api_token
Информация о токене
Возвращает информацию о токене и настройках
curl "https://app.salesap.ru/api/v1/current-token" \
-H "Authorization: Bearer api_token"
Содержит в себе информацию о настройках приложения, что может быть полезно при работе с приложениями из маркетплейса.
JSON API type | oauth-token |
URL | /api/v1/current-token |
Чтение | GET /api/v1/current-token |
Редактирование | PATCH /api/v1/current-token |
Пример токена с настройками
{
"data":{
"id":"29",
"type":"oauth-token",
"links":{
"self":"https://app.salesap.ru/api/v1/oauth-token/29"
},
"attributes":{
"created-at":"2020-02-20T17:11:16.129+03:00",
"updated-at":"2020-02-20T17:11:16.129+03:00",
"options":{
"delivery_date":"custom-5612",
"amount":"amount",
"aws_s3_secret":"topsecret"
},
"token":"1234567890abcdefapi_token",
"scopes":[
"profile_read",
"user_read",
"deal_write",
"order_write",
"dictionary_read"
],
"user-id":105
}
}
}
В данном примере каждый ключ в
options
идентичен названию ключа в настройках приложения. Подробнее о настройках можно почитать в Кабинете разработчика
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
token | string |
fbc123de1123f |
нет | API Access Token |
scopes | array |
["profile_read"] |
нет | Разрешения |
options | json |
{"key":"value"} |
да | Настройки приложения |
user-id | integer |
105 | нет | ID пользователя владельца токена |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
Контакты
Создание контакта с предустановленным источником и ответственным
curl "https://app.salesap.ru/api/v1/contacts" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"contacts",
"attributes":{
"first-name":"Иван",
"last-name":"Петров"
},
"relationships":{
"source":{
"data":{
"type":"sources",
"id":"1"
}
},
"responsible":{
"data":{
"type":"users",
"id":"1"
}
}
}
}
}
EOF
JSON API type | contacts |
URL | /api/v1/contacts |
Список | GET /api/v1/contacts |
Чтение | GET /api/v1/contacts/{id} |
Создание | POST /api/v1/contacts |
Редактирование | PATCH /api/v1/contacts/{id} |
Удаление | DELETE /api/v1/contacts/{id} |
Атрибуты
Ниже приведен пример формата данных, в реальном ответе будут присутствовать все перечисленные атрибуты
{
"data": {
"type":"contacts",
"id":"1",
"attributes":{
"first-name":"Иван",
"last-name":"Петров",
"middle-name": "Иванович",
"work-phone":"+79001234567",
"customs":{
"custom-1":"5 собак",
"custom-943":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"archived-at": "2016-11-26T12:07:51.572+03:00",
"cached-at": "2016-11-26T12:07:51.572+03:00",
"position": "Руководитель отдела",
"birthdate": null,
"mobile-phone": "+79969930000",
"general-phone": "+79969930000",
"other-phone": "+79969930000",
"email": "support@salesap.ru",
"other-email": "support@salesap.ru",
"fax": "+79001234567",
"website": "salesap.ru",
"work-country": "Россия",
"work-region": "Московская обл.",
"work-city": "Челябинск",
"work-zipcode": "100000",
"work-street": "ул. Печатников",
"work-building": "12а",
"work-housing": "3",
"work-apartment": "123",
"home-country": "Росссия",
"home-region": "Московская обл.",
"home-city": "Челябинск",
"home-zipcode": "100000",
"home-street": "ул. Печатников",
"home-building": "12а",
"home-housing": "3",
"home-apartment": "123",
"vkontakte": "vk.com/durov",
"facebook": "facebook.com",
"linkedin": "ru.linkedin.com",
"odnoklassniki": "",
"instagram": "instagram.com",
"twitter": "twitter.com",
"whatsapp": null,
"viber": null,
"telegram": null,
"skype": null,
"description": "Описание",
"note": null,
"initial-balance": null,
"discarded-at": null,
"previous-responsible-id": null,
"utm-source": null,
"utm-medium": null,
"utm-campaign": null,
"utm-term": null,
"utm-content": null,
"utm-landing-page": null,
"utm-city": null,
"utm-search-query": null,
"as-string": "Иван Петров Иванович"
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
first-name* | string |
Иван | да | Имя |
last-name* | string |
Иванов | да | Фамилия |
as-string | string |
Иванов Иван Иванович | нет | Строковое представление объекта |
middle-name | string |
Иванович | да | Отчество |
birthdate | date |
1980-12-30 |
да | Дата рождения |
description | string |
Описание | да | Описание |
general-phone | string |
+79001234567 |
да | Телефон (основной) |
mobile-phone | string |
+79001234567 |
да | Телефон (мобильный) |
work-phone | string |
+79001234567 |
да | Телефон (рабочий) |
work-phone-postfix | string |
200 |
да | Добавочный (рабочий) |
other-phone | string |
+79001234567 |
да | Телефон (дополнительный) |
other-phone-postfix | string |
200 |
да | Добавочный (дополнительный) |
fax | string |
+79001234567 |
да | Факс |
string |
help@salesap.ru | да | E-mail адрес | |
other-email | string |
help@salesap.ru | да | E-mail адрес (дополнительный) |
website | string |
salesap.ru | да | Сайт |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата архивации |
discarded-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата перемещения в корзину |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
* Обязательные поля
Рабочий адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
work-country | string |
Свазиленд | да | Страна |
work-region | string |
Московская обл. | да | Область, регион, край |
work-city | string |
Челябинск | да | Город, населенный пункт |
work-zipcode | string |
100000 |
да | Индекс |
work-street | string |
ул. Печатников | да | Улица, проспект |
work-building | string |
12а |
да | Номер дома |
work-housing | string |
3 |
да | Корпус |
work-apartment | string |
123 |
да | Номер офиса или квартиры |
Домашний адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
home-country | string |
Свазиленд | да | Страна |
home-region | string |
Московская обл. | да | Область, регион, край |
home-city | string |
Челябинск | да | Город, населенный пункт |
home-zipcode | string |
100000 |
да | Индекс |
home-street | string |
ул. Печатников | да | Улица, проспект |
home-building | string |
12а |
да | Номер дома |
home-housing | string |
3 |
да | Корпус |
home-apartment | string |
123 |
да | Номер офиса или квартиры |
Соц. сети и мессенджеры
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
vkontakte | string |
vk.com/durov | да | ВКонтакте |
string |
facebook.com | да | ||
string |
ru.linkedin.com | да | Linked-in | |
odnoklassniki | string |
да | Одноклассники | |
string |
instagram.com | да | ||
string |
twitter.com | да | ||
string |
да | |||
viber | string |
да | Viber | |
telegram | string |
да | Telegram | |
skype | string |
да | Skype |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"contacts",
"id":"1",
"relationships":{
"responsible":{
"links":{
"self":"/api/v1/contacts/1/relationships/responsible",
"related":"/api/v1/contacts/1/responsible"
}
},
"contact-type":{
"links":{
"self":"/api/v1/contacts/1/relationships/contact-type",
"related":"/api/v1/contacts/1/contact-type"
}
}
}
}
}
Пример запроса с загруженными отвественными и типом контакта
curl "https://app.salesap.ru/api/v1/contacts?include=responsible,contact-type" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Источник | source | sources |
Компании | companies | companies |
Статус | status | contact-statuses |
Тип | contact-type | contact-types |
Сделки | deals | deals |
Заявки | orders | orders |
Продукты | products | products |
Вложенные продукты | entities-products | entity-products |
Задачи | tasks | diary-tasks |
События | events | diary-events |
Соисполнители | performers | users |
Счета | invoices | invoices |
Договоры | contracts | contracts |
Сегменты | segments | segments |
Контакты | contacts | contacts |
Фильтры
Получить список контактов с определённым рабочим номером
curl -G "https://app.salesap.ru/api/v1/contacts" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[work_phone]=+79969930000"
Фильтр | Описание | Пример |
---|---|---|
last-name | Вывести объекты по определенному last-name |
filter[last-name]=Ivanov |
middle-name | Вывести объекты по определенному middle-name |
filter[middle-name]=Ivanovich |
first-name | Вывести объекты по определенному first-name |
filter[first-name]=Ivan |
work-phone | Вывести объекты по определенному work-phone |
filter[work-phone]=+79969930000 |
mobile-phone | Вывести объекты по определенному mobile-phone |
filter[mobile-phone]=+79969930000 |
other-phone | Вывести объекты по определенному other-phone |
filter[other-phone]=+79969930000 |
any-phone | Вывести объекты в которых из одном из телефонных полей хранится значение any-phone |
filter[any_phone]=+79969930000 |
Вывести объекты по определенному email |
filter[email]=support@salesap.ru |
|
other-email | Вывести объекты по определенному other-email |
filter[other-email]=support@salesap.ru |
responsible-id | Вывести объекты по определенному ответственному | filter[responsible-id]=14 |
segment-ids | Вывести объекты по определенным сегментам | filter[segment-ids]=1 |
segment-process-status-ids | Вывести объекты по статусам в сегменте | filter[segment-process-status-ids]=1 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
birthdate-gte | Вывести объекты с датой рождения после указанной даты | filter[birthdate-gte]=1980.12.30 |
birthdate-lte | Вывести объекты с датой рождения до указанной даты | filter[birthdate-lte]=1980.12.30 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
birthdate-null | Вывести объекты без дня рождения | filter[birthdate-null]=true |
Статусы
Создание статуса контакта
curl "https://app.salesap.ru/api/v1/contact-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"contact-statuses",
"attributes":{
"name":"Статус контакта в API",
"color":"#000000"
}
}
}
EOF
JSON API type | contact-statuses |
URL | /api/v1/contact-statuses |
Список | GET /api/v1/contact-statuses |
Чтение | GET /api/v1/contact-statuses/{id} |
Создание | POST /api/v1/contact-statuses |
Редактирование | PATCH /api/v1/contact-statuses/{id} |
Удаление | DELETE /api/v1/contact-statuses/{id} |
Атрибуты
{
"data": {
"type":"contact-statuses",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Имя статуса контакта |
color | string |
#1f2f3f | да | Цвет статуса контакта |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов контактов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/contact-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Типы
Создание типа контакта
curl "https://app.salesap.ru/api/v1/contact-types" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"contact-types",
"attributes":{
"name":"Тип контакта в API"
}
}
}
EOF
JSON API type | contact-types |
URL | /api/v1/contact-types |
Список | GET /api/v1/contact-types |
Чтение | GET /api/v1/contact-types/{id} |
Создание | POST /api/v1/contact-types |
Редактирование | PATCH /api/v1/contact-types/{id} |
Удаление | DELETE /api/v1/contact-types/{id} |
Атрибуты
{
"data": {
"type":"contact-types",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой тип контакта | да | Имя типа контакта |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список типов контактов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/contact-types" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Компании
Создание компании с предустановленным источником и ответственным
curl "https://app.salesap.ru/api/v1/companies" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"companies",
"attributes":{
"name":"ООО Радужные единороги",
"description":"Коллекторское агенство"
},
"relationships":{
"source":{
"data":{
"type":"sources",
"id":"1"
}
},
"responsible":{
"data":{
"type":"users",
"id":"1"
}
}
}
}
}
EOF
JSON API type | companies |
URL | /api/v1/companies |
Список | GET /api/v1/companies |
Чтение | GET /api/v1/companies/{id} |
Создание | POST /api/v1/companies |
Редактирование | PATCH /api/v1/companies/{id} |
Удаление | DELETE /api/v1/companies/{id} |
Атрибуты
{
"data": {
"type":"companies",
"id":"1",
"attributes":{
"created-at": "2015-12-21T23:25:30.691+03:00",
"updated-at": "2016-02-25T20:19:21.080+03:00",
"as-string": "ООО Рога",
"name": "ООО Рога",
"general-phone": null,
"work-phone": "7848200000",
"mobile-phone": null,
"other-phone": "78482000000",
"fax": null,
"country": "Россия",
"city": "Новосибирск",
"region": "Новосибирская область",
"address": "Ворошилова, 1, корп. 1",
"zip-code": null,
"email": "email@mail.ru",
"other-email": "mail@gmail.com",
"website": "www.site.com",
"juristic-country": "Россия",
"juristic-region": "Новосибирская область",
"juristic-city": "Новосибирск",
"juristic-zip-code": "153512",
"juristic-street": "Ворошилова",
"juristic-house": "1",
"juristic-build": "1",
"juristic-office": "1",
"actual-country": null,
"actual-region": null,
"actual-city": null,
"actual-zip-code": null,
"actual-street": null,
"actual-house": null,
"actual-build": null,
"actual-office": null,
"mailing-country": "Россия",
"mailing-region": "Новосибирская область",
"mailing-city": "Новосибирск",
"mailing-zip-code": "382662",
"mailing-street": "Ворошилова",
"mailing-house": "1",
"mailing-build": "1",
"mailing-office": "1",
"inn": null,
"description": null,
"full-name": null,
"short-name": null,
"ogrn": null,
"kpp": null,
"okved": null,
"okpo": null,
"manager-name": null,
"manager-position": null,
"lawfulness-base": null,
"accountant": null,
"customs": {
"custom-98": "",
"custom-9": ""
},
"discarded-at": null,
"utm-source": null,
"utm-medium": null,
"utm-campaign": null,
"utm-term": null,
"utm-content": null,
"utm-landing-page": null,
"utm-city": null,
"utm-search-query": null,
"archived-at": null
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Иван | да | Название |
as-string | string |
Реквизиты | нет | Строковое представление объекта |
description | string |
Описание | да | Описание |
general-phone | string |
+79001234567 |
да | Телефон (основной) |
mobile-phone | string |
+79001234567 |
да | Телефон (мобильный) |
work-phone | string |
+79001234567 |
да | Телефон (рабочий) |
work-phone-postfix | string |
200 |
да | Добавочный (рабочий) |
other-phone | string |
+79001234567 |
да | Телефон (дополнительный) |
other-phone-postfix | string |
200 |
да | Добавочный (дополнительный) |
fax | string |
+79001234567 |
да | Факс |
string |
help@salesap.ru | да | E-mail адрес | |
other-email | string |
help@salesap.ru | да | E-mail адрес (дополнительный) |
website | string |
salesap.ru | да | Сайт |
country | string |
РФ | да | Страна |
region | string |
Крымская обл. | да | Регион |
city | string |
Тамбов | да | Город |
address | string |
Молдавских партизан 13 | да | Адрес |
zip-code | string |
190001 | да | Индекс |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата архивации |
discarded-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата перемещения в корзину |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
* Обязательные поля
Фактический адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
actual-country | string |
Свазиленд | да | Страна |
actual-region | string |
Московская обл. | да | Область, регион, край |
actual-city | string |
Челябинск | да | Город, населенный пункт |
actual-zip-code | string |
100000 |
да | Индекс |
actual-street | string |
ул. Печатников | да | Улица, проспект |
actual-house | string |
12а |
да | Номер дома |
actual-build | string |
3 |
да | Корпус |
actual-office | string |
123 |
да | Номер офиса |
Юридический адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
juristic-country | string |
Свазиленд | да | Страна |
juristic-region | string |
Московская обл. | да | Область, регион, край |
juristic-city | string |
Челябинск | да | Город, населенный пункт |
juristic-zip-code | string |
100000 |
да | Индекс |
juristic-street | string |
ул. Печатников | да | Улица, проспект |
juristic-house | string |
12а |
да | Номер дома |
juristic-build | string |
3 |
да | Корпус |
juristic-office | string |
123 |
да | Номер офиса |
Почтовый адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
mailing-country | string |
Свазиленд | да | Страна |
mailing-region | string |
Московская обл. | да | Область, регион, край |
mailing-city | string |
Челябинск | да | Город, населенный пункт |
mailing-zip-code | string |
100000 |
да | Индекс |
mailing-street | string |
ул. Печатников | да | Улица, проспект |
mailing-house | string |
12а |
да | Номер дома |
mailing-build | string |
3 |
да | Корпус |
mailing-office | string |
123 |
да | Номер офиса |
Реквизиты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
full-name | string |
Общество с ограниченной ответственностью | да | Полное наименование |
short-name | string |
ООО "Рога" | да | Короткое наименование |
inn | string |
62010101010101 |
да | ИНН |
ogrn | string |
521300000000000 |
да | ОГРН |
kpp | string |
62010101010101 |
да | КПП |
okved | string |
234-456 |
да | ОКВЭД |
okpo | string |
39954980 |
да | ОКПО |
director | string |
Иванков И.И. | да | Директор |
accountant | string |
Иванков И.И. | да | Бухгалтер |
lawfulness-base | string |
да | Правомочность | |
manager-name | string |
Крабов В.В. | да | ФИО руководителя |
manager-position | string |
Официант | да | Должность руководителя |
UTM метки
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
utm-source | string |
yandex-direct | да | Рекламная система |
utm-medium | string |
cpc | да | Тип трафика |
utm-campaign | string |
cosmetic | да | Название рекламной кампании |
utm-term | string |
shampoo | да | Ключевое слово, которое инициировало показ объявления |
utm-content | string |
some text | да | Информация, которая помогает различать объявления, если совпадают другие параметры |
utm-landing-page | string |
somesite.ru/path | да | Адрес посадочной страницы |
utm-city | string |
Москва | да | Город |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"companies",
"id":"1",
"relationships":{
"responsible":{
"links":{
"self":"/api/v1/contacts/1/relationships/responsible",
"related":"/api/v1/contacts/1/responsible"
}
},
"company-type":{
"links":{
"self":"/api/v1/contacts/1/relationships/company-type",
"related":"/api/v1/contacts/1/company-type"
}
}
}
}
}
Пример запроса с загруженными отвественными и типом компании
curl "https://app.salesap.ru/api/v1/companies?include=responsible,company-type" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Источник | source | sources |
Контакты | contacts | contacts |
Статус | status | company-statuses |
Тип | company-type | company-types |
Сделки | deals | deals |
Заявки | orders | orders |
Продукты | products | products |
Вложенные продукты | entities-products | entity-products |
Задачи | tasks | diary-tasks |
События | events | diary-events |
Банк. реквизиты | bank-details | company-bank-details |
Соисполнители | performers | users |
Счета | invoices | invoices |
Договоры | contracts | contracts |
Осмотры | checkups | checkups |
Сегменты | segments | segments |
Фильтры
Получить список компаний с определённым рабочим номером
curl -G "https://app.salesap.ru/api/v1/companies" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[general_phone]=+79969930000"
Фильтр | Описание | Пример |
---|---|---|
inn | Вывести объекты по определенному номеру ИНН | filter[inn]=123456789 |
kpp | Вывести объекты по определенному номеру КПП | filter[kpp]=123456789 |
work-phone | Вывести объекты по определенному work-phone |
filter[work-phone]=+79969930000 |
general-phone | Вывести объекты по определенному general-phone |
filter[general-phone]=+79969930000 |
other-phone | Вывести объекты по определенному other-phone |
filter[other-phone]=+79969930000 |
any-phone | Вывести объекты в которых из одном из телефонных полей хранится значение any-phone |
filter[any_phone]=+79969930000 |
Вывести объекты по определенному email |
filter[email]=support@salesap.ru |
|
other-email | Вывести объекты по определенному other-email |
filter[other-email]=support@salesap.ru |
responsible-id | Вывести объекты по определенному ответственному | filter[responsible-id]=14 |
segment-ids | Вывести объекты по определенным сегментам | filter[segment-ids]=1 |
segment-process-status-ids | Вывести объекты по статусам в сегменте | filter[segment-process-status-ids]=1 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
Банковские реквизиты
Создание банковских реквизитов для компании
curl "https://app.salesap.ru/api/v1/company-bank-details" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"company-bank-details",
"attributes":{
"name":"test"
},
"relationships":{
"company":{
"data":{
"type":"companies",
"id":510571
}
}
}
}
}
EOF
JSON API type | company-bank-details |
URL | /api/v1/company-bank-details |
Список | GET /api/v1/company-bank-details |
Чтение | GET /api/v1/company-bank-details/{id} |
Создание | POST /api/v1/company-bank-details |
Редактирование | PATCH /api/v1/company-bank-details/{id} |
Удаление | DELETE /api/v1/company-bank-details/{id} |
Атрибуты
{
"data":{
"id": "1",
"type": "company-bank-details",
"attributes":{
"created-at": "2017-09-04T12:48:33.114+03:00",
"updated-at": "2017-09-04T12:48:33.114+03:00",
"as-string": "КАЛУЖСКОЕ ОТДЕЛЕНИЕ N8608 ПАО СБЕРБАНК",
"name": "КАЛУЖСКОЕ ОТДЕЛЕНИЕ N8608 ПАО СБЕРБАНК",
"bank-name": "СБЕРБАНК РОССИИ КАЛУЖСКОЕ ОТДЕЛЕНИЕ № 8608",
"bik": "042908612",
"corr-number": "12345678900000000000",
"number": "12345678900000000000",
"is-default": true,
"active": true
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Название набора реквизитов |
as-string | string |
Реквизиты | нет | Строковое представление объекта |
bank-name | string |
Sberbank | да | Имя банка |
bik | string |
11239393 | да | БИК банка |
corr-number | string |
1234566788888 | да | Корр. счет |
number | string |
1234567890987 | да | Номер счета |
is-default | boolean |
true |
да | Основные реквизиты? |
active | boolean |
true |
да | Активность счета |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры банковских реквизитов
Получить список банковских реквизитов, созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/company-bank-details" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести банковские реквизиты созданные в системе после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести банковские реквизиты созданные в системе до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести банковские реквизиты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести банковские реквизиты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
bik | Вывести банковские реквизиты по БИК банка | filter[bik]=042908612 |
number | Вывести банковские реквизиты по номеру счета | filter[number]=12345678900000000000 |
Связи
Загрузка банковских реквизитов по определенной компании (id = 100)
curl "https://app.salesap.ru/api/v1/companies/100/relationships/bank-details" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Название | Связь | JSON API type |
---|---|---|
Компания | company | companies |
Статусы
Создание статуса компании
curl "https://app.salesap.ru/api/v1/company-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"company-statuses",
"attributes":{
"name":"Статус компании в API",
"color":"#000000"
}
}
}
EOF
JSON API type | company-statuses |
URL | /api/v1/company-statuses |
Список | GET /api/v1/company-statuses |
Чтение | GET /api/v1/company-statuses/{id} |
Создание | POST /api/v1/company-statuses |
Редактирование | PATCH /api/v1/company-statuses/{id} |
Удаление | DELETE /api/v1/company-statuses/{id} |
Атрибуты
{
"data": {
"type":"company-statuses",
"id":"1",
"attributes":{
"created-at": "2016-11-26T12:07:51.572+03:00",
"updated-at": "2017-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Имя статуса компании |
color | string |
#1f2f3f | да | Цвет статуса компании |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов компаний созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/company-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Типы
Создание типа компании
curl "https://app.salesap.ru/api/v1/company-types" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"company-types",
"attributes":{
"name":"Тип компании в API"
}
}
}
EOF
JSON API type | company-types |
URL | /api/v1/company-types |
Список | GET /api/v1/company-types |
Чтение | GET /api/v1/company-types/{id} |
Создание | POST /api/v1/company-types |
Редактирование | PATCH /api/v1/company-types/{id} |
Удаление | DELETE /api/v1/company-types/{id} |
Атрибуты
{
"data": {
"type":"company-types",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой тип компании | да | Имя типа компании |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список типов компаний созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/company-types" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Сделки
Создание сделки с предустановленным источником
curl "https://app.salesap.ru/api/v1/deals" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deals",
"attributes":{
"name":"Сделка из API",
"planned-at":"2016-12-31"
},
"relationships":{
"source":{
"data":{
"type":"sources",
"id":"1"
}
}
}
}
}
EOF
Создание сделки с привязанной заявкой
curl "https://app.salesap.ru/api/v1/deals" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deals",
"attributes":{
"name":"Сделка из API с привязанной заявкой"
},
"relationships":{
"orders": {
"data" : [{
"type": "orders",
"id": 35634
}]
}
}
}
}
EOF
Создание сделки с привязанными продуктами
curl "https://app.salesap.ru/api/v1/deals" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deals",
"attributes":{
"name":"Сделка из API с привязанными продуктами"
},
"relationships":{
"products": {
"data" : [{
"type": "products",
"id": 8187
}, {
"type": "products",
"id": 9018
}]
}
}
}
}
EOF
JSON API type | deals |
URL | /api/v1/deals |
Список | GET /api/v1/deals |
Чтение | GET /api/v1/deals/{id} |
Создание | POST /api/v1/deals |
Редактирование | PATCH /api/v1/deals/{id} |
Удаление | DELETE /api/v1/deals/{id} |
Атрибуты
{
"data": {
"type":"deals",
"id":"1",
"attributes":{
"name":"Квартира на Ленинском",
"description":"двушка в 15м доме",
"amount":4700000.0,
"number":16,
"planned-at":null,
"finished-at":"2016-11-26",
"customs":{
"custom-1":"5 собак",
"custom-943":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"archived-at":null,
"utm-source": null,
"utm-medium": null,
"utm-campaign": null,
"utm-term": null,
"utm-content": null,
"utm-landing-page": null,
"utm-city": null,
"utm-search-query": null
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string |
Моя сделка | да | Имя сделки |
description | string |
Описание сделки | да | Подробное описание сделки |
loss-comment | string |
Причина поражения | да | Причина поражения в свободной форме |
amount | decimal |
123.0 | да | Сумма сделки |
cost | decimal |
123.0 | да | Себестомость сделки |
profit | decimal |
123.0 | нет | Прибыль сделки |
number | integer |
16 | да | Номер сделки |
planned-at | date |
2016-01-29 |
да | Планируемая дата закрытия |
finished-at | date |
2016-01-30 |
да | Фактическая дата закрытия |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата архивации |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
UTM метки
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
utm-source | string |
yandex-direct | да | Рекламная система |
utm-medium | string |
cpc | да | Тип трафика |
utm-campaign | string |
cosmetic | да | Название рекламной кампании |
utm-term | string |
shampoo | да | Ключевое слово, которое инициировало показ объявления |
utm-content | string |
some text | да | Информация, которая помогает различать объявления, если совпадают другие параметры |
utm-landing-page | string |
somesite.ru/path | да | Адрес посадочной страницы |
utm-city | string |
Москва | да | Город |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"deals",
"id":"1",
"relationships":{
"responsible":{
"links":{
"self":"/api/v1/deals/1/relationships/responsible",
"related":"/api/v1/deals/1/responsible"
}
},
"stage-category":{
"links":{
"self":"/api/v1/deals/1/relationships/stage-category",
"related":"/api/v1/deals/1/stage-category"
}
}
}
}
}
Пример запроса с загруженными источниками и отвественными
curl "https://app.salesap.ru/api/v1/deals?include=source,responsible" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Компания | company | companies |
Контакт | contact | contacts |
Этап | stage | deal-stages |
Воронка | stage-category | deal-stage-categories |
Источник | source | sources |
Статус | status | deal-statuses |
Причина поражения | loss-reason | deal-loss-reasons |
Конкурент поражения | loss-competitor | competitors |
Территория | area | areas |
Продукты | products | products |
Сделки | deals | deals |
Заявки | orders | orders |
Вложенные продукты | entities-products | entity-products |
Соисполнители | performers | users |
Задачи | tasks | diary-tasks |
Файлы | documents | documents |
Счета | invoices | invoices |
Договоры | contracts | contracts |
Сегменты | segments | segments |
Фильтры
Получить список сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deals" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
responsible-id | Вывести объекты по определенному ответственному | filter[responsible-id]=14 |
deal-status-id | Вывести объекты по статусу сделки | filter[deal-status-id]=14 |
deal-stage-id | Вывести объекты по этапу сделки | filter[deal-stage-id]=14 |
deal-stage-category-id | Вывести объекты по воронке | filter[deal-stage-category-id]=14 |
related-contacts-ids | Вывести объекты по определенным контактам | filter[related-contacts-ids]=1 |
related-companies-ids | Вывести объекты по определенным компаниям | filter[related-companies-ids]=1 |
segment-ids | Вывести объекты по определенным сегментам | filter[segment-ids]=1 |
segment-process-status-ids | Вывести объекты по статусам в сегменте | filter[segment-process-status-ids]=1 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
Причины поражения
Создание причины поражения сделок
curl "https://app.salesap.ru/api/v1/deal-loss-reasons" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deal-loss-reasons",
"attributes":{
"name":"Ушел к конкуренту"
}
}
}
EOF
JSON API type | deal-loss-reasons |
URL | /api/v1/deal-loss-reasons |
Список | GET /api/v1/deal-loss-reasons |
Чтение | GET /api/v1/deal-loss-reasons/{id} |
Создание | POST /api/v1/deal-loss-reasons |
Редактирование | PATCH /api/v1/deal-loss-reasons/{id} |
Удаление | DELETE /api/v1/deal-loss-reasons/{id} |
Атрибуты
{
"data": {
"type":"deal-loss-reasons",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Ушёл к конкуренту"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Отказался от услуг | да | Название причины поражения сделки |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список причин поражений сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deal-loss-reasons" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Воронки
Создание новой категории этапов сделки
curl "https://app.salesap.ru/api/v1/deal-stage-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deal-stage-categories",
"attributes":{
"name":"Воронка из API"
}
}
}
EOF
JSON API type | deal-stage-categories |
URL | /api/v1/deal-stage-categories |
Список | GET /api/v1/deal-stage-categories |
Чтение | GET /api/v1/deal-stage-categories/{id} |
Создание | POST /api/v1/deal-stage-categories |
Редактирование | PATCH /api/v1/deal-stage-categories/{id} |
Удаление | DELETE /api/v1/deal-stage-categories/{id} |
Атрибуты
{
"data": {
"type":"deal-stage-categories",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Воронка",
"calculation-method": "by_billings",
"is-default": true,
"win-by-diaries": false
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
на Мира | да | Название воронки |
amount-calc-method* | string |
invoices | да | Способ расчета суммы сделки |
cost-calc-method* | string |
payments | да | Способ расчета себестоимости сделки |
amount-calc-field | string |
custom_1 | да | Поле формулы при расчете суммы сделки по формуле |
cost-calc-field | string |
custom_2 | да | Поле формулы при расчете себестоимости сделки по формуле |
is-default | boolean |
true | да | По-умолчанию |
win-by-diaries | boolean |
false | да | Cчитать сделку выиграной, eсли все задачи выполнены |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Ограничения по значениям
Аттрибут | Варианты |
---|---|
amount-calc-method | manually , invoices , products , payments , formula |
cost-calc-method | manually , products , payments , formula |
Фильтры
Получить список категорий этапов сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deal-stage-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Этапы
Создание нового этапа сделки
curl "https://app.salesap.ru/api/v1/deal-stages" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deal-stages",
"attributes":{
"name":"Этап из API"
},
"relationships":{
"deal-stage-category": {
"data": {
"type": "deal-stage-categories",
"id": 1
}
}
}
}
}
EOF
JSON API type | deal-stages |
URL | /api/v1/deal-stages |
Список | GET /api/v1/deal-stages |
Чтение | GET /api/v1/deal-stages/{id} |
Создание | POST /api/v1/deal-stages |
Редактирование | PATCH /api/v1/deal-stages/{id} |
Удаление | DELETE /api/v1/deal-stages/{id} |
Атрибуты
{
"data": {
"type":"deal-stages",
"id":"1",
"attributes":{
"created-at": "2017-07-31T14:23:02.458+03:00",
"updated-at": "2017-07-31T14:23:02.458+03:00",
"name": "Открыта",
"description": null,
"duration": null,
"kind": null,
"color": "#e0e0e0",
"next-if-items-done": false
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
на Мира | да | Название воронки |
duration | integer |
10000 | да | Длительность этапа |
next-if-items-done | boolean |
false | да | Переходить на следующий этап, если все задачи выполнены |
description | boolean |
true | да | Описание |
color | string |
#ee66aa | да | Цвет этапа |
kind | string |
opened, won, lost, null | нет | Вид этапа |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список этапов сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deal-stages" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Статусы
Создание статуса сделки
curl "https://app.salesap.ru/api/v1/deal-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deal-statuses",
"attributes":{
"name":"Статус сделки в API",
"color":"#000000"
}
}
}
EOF
JSON API type | deal-statuses |
URL | /api/v1/deal-statuses |
Список | GET /api/v1/deal-statuses |
Чтение | GET /api/v1/deal-statuses/{id} |
Создание | POST /api/v1/deal-statuses |
Редактирование | PATCH /api/v1/deal-statuses/{id} |
Удаление | DELETE /api/v1/deal-statuses/{id} |
Атрибуты
{
"data": {
"type":"deal-statuses",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Имя статуса сделки |
color | string |
#1f2f3f | да | Цвет статуса сделки |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deal-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Заявки
Создание заявки с предустановленным источником
curl "https://app.salesap.ru/api/v1/orders" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"orders",
"attributes":{
"name":"Заявка из API",
"archived-at":"2016-12-31"
},
"relationships":{
"source":{
"data":{
"type":"sources",
"id":"1"
}
}
}
}
}
EOF
Создание заявки с предустановленной сделкой
curl "https://app.salesap.ru/api/v1/orders" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"orders",
"attributes":{
"name":"Заявка из API с предустановленной сделкой",
"archived-at":"2016-12-31"
},
"relationships":{
"deals": {
"data" : [{
"type": "deals",
"id": 33435
}]
}
}
}
}
EOF
JSON API type | orders |
URL | /api/v1/orders |
Список | GET /api/v1/orders |
Чтение | GET /api/v1/orders/{id} |
Создание | POST /api/v1/orders |
Редактирование | PATCH /api/v1/orders/{id} |
Удаление | DELETE /api/v1/orders/{id} |
Атрибуты
{
"data": {
"type":"orders",
"id":"1",
"attributes":{
"name":"Уборка квартиры",
"description":"на Ленинском в 15м доме",
"amount":"5000.0",
"number":21,
"archived-at":"2016-11-26",
"customs":{
"custom-11":"5 собак",
"custom-43":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"utm-source": null,
"utm-medium": null,
"utm-campaign": null,
"utm-term": null,
"utm-content": null,
"utm-landing-page": null,
"utm-city": null,
"utm-search-query": null
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string |
Моя сделка | да | Имя заявки |
description | string |
Описание сделки | да | Подробное описание заявки |
loss-comment | string |
Причина поражения | да | Причина поражения в свободной форме |
amount | decimal |
123.0 | да | Сумма заявки |
number | integer |
16 | да | Номер заявки |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата архивации |
discarded-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата перемещения в корзину |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
UTM метки
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
utm-source | string |
yandex-direct | да | Рекламная система |
utm-medium | string |
cpc | да | Тип трафика |
utm-campaign | string |
cosmetic | да | Название рекламной кампании |
utm-term | string |
shampoo | да | Ключевое слово, которое инициировало показ объявления |
utm-content | string |
some text | да | Информация, которая помогает различать объявления, если совпадают другие параметры |
utm-landing-page | string |
somesite.ru/path | да | Адрес посадочной страницы |
utm-city | string |
Москва | да | Город |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"orders",
"id":"1",
"relationships":{
"responsible":{
"links":{
"self":"/api/v1/orders/1/relationships/responsible",
"related":"/api/v1/orders/1/responsible"
}
},
"stage":{
"links":{
"self":"/api/v1/orders/1/relationships/stage",
"related":"/api/v1/orders/1/stage"
}
}
}
}
}
Пример запроса с загруженными источниками и отвественными
curl "https://app.salesap.ru/api/v1/orders?include=source,responsible" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Компания | company | companies |
Контакт | contact | contacts |
Этап | stage | order-stages |
Источник | source | sources |
Статус | status | order-statuses |
Причина поражения | loss-reason | order-loss-reasons |
Конкурент поражения | loss-competitor | competitors |
Продукты | products | products |
Сделки | deals | deals |
Вложенные продукты | entities-products | entity-products |
Соисполнители | performers | users |
Задачи | tasks | diary-tasks |
Файлы | documents | documents |
Счета | invoices | invoices |
Договоры | contracts | contracts |
Фильтры
Получить список заявок до определённой даты
curl -G "https://app.salesap.ru/api/v1/orders" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
order-stage-id | Вывести объекты по этапу заявки | filter[order-stage-id]=14 |
responsible-id | Вывести объекты по определенному ответственному | filter[responsible-id]=14 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
Причины поражения
Создание причины поражения заявки
curl "https://app.salesap.ru/api/v1/order-loss-reasons" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"order-loss-reasons",
"attributes":{
"name":"Отказ без причин"
}
}
}
EOF
JSON API type | order-loss-reasons |
URL | /api/v1/order-loss-reasons |
Список | GET /api/v1/order-loss-reasons |
Чтение | GET /api/v1/order-loss-reasons/{id} |
Создание | POST /api/v1/order-loss-reasons |
Редактирование | PATCH /api/v1/order-loss-reasons/{id} |
Удаление | DELETE /api/v1/order-loss-reasons/{id} |
Атрибуты
{
"data": {
"type":"order-loss-reasons",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Отказ без причин"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Высокая цена | да | Название причины поражения заявки |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список причин поражений заявок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/order-loss-reasons" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Этапы
Создание нового этапа заявки
curl "https://app.salesap.ru/api/v1/order-stages" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deal-stages",
"attributes":{
"name":"Этап из API"
},
"relation
}
}
EOF
JSON API type | order-stages |
URL | /api/v1/order-stages |
Список | GET /api/v1/order-stages |
Чтение | GET /api/v1/order-stages/{id} |
Создание | POST /api/v1/order-stages |
Редактирование | PATCH /api/v1/order-stages/{id} |
Удаление | DELETE /api/v1/order-stages/{id} |
Атрибуты
{
"data": {
"type":"order-stages",
"id":"1",
"attributes":{
"created-at": "2017-07-31T14:23:02.458+03:00",
"updated-at": "2017-07-31T14:23:02.458+03:00",
"name": "Не обработана",
"description": null,
"color": "#e0e0e0",
"duration": null,
"next-if-items-done": false
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
на Мира | да | Название воронки |
duration | integer |
10000 | да | Длительность этапа |
next-if-items-done | boolean |
false | да | Переходить на следующий этап, если все задачи выполнены |
description | boolean |
true | да | Описание |
color | string |
#ee66aa | да | Цвет этапа |
kind | string |
opened, won, lost, null | нет | Вид этапа |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список этапов заявок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deal-stages" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Статусы
Создание статуса заявки
curl "https://app.salesap.ru/api/v1/order-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"order-statuses",
"attributes":{
"name":"Статус заявки в API",
"color":"#000000"
}
}
}
EOF
JSON API type | order-statuses |
URL | /api/v1/order-statuses |
Список | GET /api/v1/order-statuses |
Чтение | GET /api/v1/order-statuses/{id} |
Создание | POST /api/v1/order-statuses |
Редактирование | PATCH /api/v1/order-statuses/{id} |
Удаление | DELETE /api/v1/order-statuses/{id} |
Атрибуты
{
"data": {
"type":"order-statuses",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Имя статуса заявки |
color | string |
#1f2f3f | да | Цвет статуса заявки |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов заявок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/order-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
События
Создание события с предустановленным исполнителем и компанией
curl "https://app.salesap.ru/api/v1/diary-events" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"diary-events",
"attributes":{
"name":"Задача из API",
"description":"Данная задача было создана при помощи API",
"start-time":"2016-06-15 12:00 +0300"
},
"relationships":{
"responsible": {
"data":{
"type":"users",
"id":"5"
}
},
"company":{
"data":{
"type":"companies",
"id":"51"
}
}
}
}
}
EOF
JSON API type | diary-events |
URL | /api/v1/diary-events |
Список | GET /api/v1/diary-events |
Чтение | GET /api/v1/diary-events/{id} |
Создание | POST /api/v1/diary-events |
Редактирование | PATCH /api/v1/diary-events/{id} |
Удаление | DELETE /api/v1/diary-events/{id} |
Атрибуты
{
"data": {
"type":"diary-events",
"id":"1",
"attributes":{
"name":"Копия договора",
"description":"Отправить копию договора в ООО \"Рога\"",
"start-time":"2016-11-26T12:07:51.572+03:00",
"end-time":"2016-11-26T15:31:11.232+03:00",
"color":"#fff",
"status":"completed",
"due-date":"2016-11-28T12:00:00.000+03:00",
"duration":null,
"customs":{
"custom-1":"Важный клиент",
"custom-943":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"completed-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"archived-at":null
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Переговоры с ООО "Рога" | да | Название события |
description | string |
Переговоры для дальнейшей координации сотрудничества | да | Подробное описание события |
start-time | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Время начала |
end-time | datetime |
2016-11-26T15:31:11.232+03:00 |
да | Время окончания |
due-date | datetime |
2016-11-28T12:00:00.000+03:00 |
да | Дедлайн |
color | string |
#fff | да | Цвет |
status | string |
completed, overdue, opened | нет | Статус |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
completed-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата завершения |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата архивации |
discarded-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата перемещения в корзину |
completed-result | string |
2016-11-26T12:07:51.572+03:00 |
да | Результат завершения |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
* Обязательные поля
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"diary-events",
"id":"1",
"relationships":{
"responsible":{
"links":{
"self":"/api/v1/diary-events/1/relationships/responsible",
"related":"/api/v1/diary-events/1/responsible"
}
},
"diary-type":{
"links":{
"self":"/api/v1/diary-events/1/relationships/diary-type",
"related":"/api/v1/diary-events/1/diary-type"
}
}
}
}
}
Пример запроса с загруженными типами задачи и отвественными
curl "https://app.salesap.ru/api/v1/diary-events?include=diary-type,responsible" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Компания (объект) | company | companies |
Контакт (объект) | contact | contacts |
Контакт | responsible_contact | contacts |
Сделка | deal | deals |
Заявка | order | orders |
Тип задачи | diary-type | diary-types |
Соисполнители | performers | users |
Компании | companies | companies |
Контакты | contacts | contacts |
Постановщик | initiator | users |
Метки | labels | labels |
Подзадачи | diaries | diaries |
Фильтры
Получить список событий созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/diary-events" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
completed-at-gte | Вывести объекты завершенные после указанного времени | filter[completed-at-gte]=2017.08.01 12:00 |
completed-at-lte | Вывести объекты завершенные до указанного времени | filter[completed-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
started-gte | Вывести объекты имеющие даты начала позднее указанного времени | filter[started-gte]=2017.08.01 12:00 |
started-lte | Вывести объекты имеющие даты начала раннего до указанного времени | filter[started-lte]=2017.08.01 12:00 |
expired-gte | Вывести объекты истекающие после указанного времени | filter[expired-gte]=2017.08.01 12:00 |
expired-lte | Вывести объекты истекающие до указанного времени | filter[expired-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
diary-type-id | Вывести объекты по типу задачи | filter[diary-type-id]=1 |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
expired-null | Вывести объекты без даты окончания | filter[expired-null]=true |
completed-at-null | Вывести незавершенные объекты | filter[completed-at-null]=true |
Задачи
Создание задачи с предустановленным исполнителем и контактом
curl "https://app.salesap.ru/api/v1/diary-tasks" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"diary-tasks",
"attributes":{
"name":"Задача из API",
"description":"Данная задача было создана при помощи API",
"due-date":"2016-12-31 12:00 +0300",
"start-time":"2016-06-15 12:00 +0300"
},
"relationships":{
"responsible": {
"data":{
"type":"users",
"id":"3"
}
},
"contact":{
"data":{
"type":"contacts",
"id":"12"
}
}
}
}
}
EOF
JSON API type | diary-tasks |
URL | /api/v1/diary-tasks |
Список | GET /api/v1/diary-tasks |
Чтение | GET /api/v1/diary-tasks/{id} |
Создание | POST /api/v1/diary-tasks |
Редактирование | PATCH /api/v1/diary-tasks/{id} |
Удаление | DELETE /api/v1/diary-tasks/{id} |
Атрибуты
{
"data": {
"type":"diary-tasks",
"id":"1",
"attributes":{
"name":"Копия договора",
"description":"Отправить копию договора в ООО \"Рога\"",
"start-time":"2016-11-26T12:07:51.572+03:00",
"end-time":"2016-11-26T15:31:11.232+03:00",
"color":"#fff",
"status":"completed",
"due-date":"2016-11-28T12:00:00.000+03:00",
"duration":null,
"progress": 0.0,
"customs":{
"custom-1":"Важный клиент",
"custom-943":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"completed-at":"2016-11-26T12:07:51.572+03:00",
"archived-at":null
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Копия договора | да | Имя задачи |
description | string |
Отправить копию договора в ООО "Рога" | да | Подробное описание задачи |
start-time | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Время начала |
end-time | datetime |
2016-11-26T15:31:11.232+03:00 |
да | Время окончания |
due-date | datetime |
2016-11-28T12:00:00.000+03:00 |
да | Дедлайн |
color | string |
#fff | да | Цвет |
status | string |
completed, overdue, opened | нет | Статус |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
completed-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата завершения |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата архивации |
discarded-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата перемещения в корзину |
completed-result | string |
2016-11-26T12:07:51.572+03:00 |
да | Результат завершения |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
progress | float |
100.0 |
да | Процент завершения задачи |
* Обязательные поля
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"diary-tasks",
"id":"1",
"relationships":{
"responsible":{
"links":{
"self":"/api/v1/diary-tasks/1/relationships/responsible",
"related":"/api/v1/diary-tasks/1/responsible"
}
},
"company":{
"links":{
"self":"/api/v1/diary-tasks/1/relationships/company",
"related":"/api/v1/diary-tasks/1/company"
}
}
}
}
}
Пример запроса с загруженными сделками и контактами
curl "https://app.salesap.ru/api/v1/diary-tasks?include=deal,contact" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Компания (объект) | company | companies |
Контакт (объект) | contact | contacts |
Контакт | responsible_contact | contacts |
Сделка (объект) | deal | deals |
Заявка (объект) | order | orders |
Тип задачи | diary-type | diary-types |
Группа задач | project-task-categories | project-task-categories |
Приоритет | diary-priority | diary-priorities |
Соисполнители | performers | users |
Компании | companies | companies |
Контакты | contacts | contacts |
Сделки | deals | deals |
Заявки | orders | orders |
Постановщик | initiator | users |
Метки | labels | labels |
Подзадачи | diaries | diaries |
Сегменты | segments | segments |
Фильтры
Получить список задач созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/diary-tasks" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
responsible-id | Вывести объекты по определенному ответственному | filter[responsible-id]=14 |
user-id | Вывести объекты по определенному создателю | filter[user-id]=14 |
initiator-id | Вывести объекты по определенному постановщику | filter[initiator-id]=14 |
diary-priority-id | Вывести объекты по определенному приоритету | filter[diary-priority-id]=14 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
completed-at-gte | Вывести объекты завершенные после указанного времени | filter[completed-at-gte]=2017.08.01 12:00 |
completed-at-lte | Вывести объекты завершенные до указанного времени | filter[completed-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
due-date-gte | Вывести объекты с дедлайном после указанного времени | filter[due-date-gte]=2017.08.01 12:00 |
due-date-lte | Вывести объекты с дедлайном до указанного времени | filter[due-date-lte]=2017.08.01 12:00 |
started-gte | Вывести объекты имеющие даты начала позднее указанного времени | filter[started-gte]=2017.08.01 12:00 |
started-lte | Вывести объекты имеющие даты начала раннего до указанного времени | filter[started-lte]=2017.08.01 12:00 |
expired-gte | Вывести объекты истекающие после указанного времени | filter[expired-gte]=2017.08.01 12:00 |
expired-lte | Вывести объекты истекающие до указанного времени | filter[expired-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
diary-type-id | Вывести объекты по типу задачи | filter[diary-type-id]=1 |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
completed-at-null | Вывести незавершенные объекты | filter[completed-at-null]=true |
due-date-null | Вывести объекты без дедлайна | filter[due-date-null]=true |
Типы задач
Получение списка типов задач
curl "https://app.salesap.ru/api/v1/diary-types" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
{
"data": [
{
"id": "1",
"type": "diary-types",
"links": {
"self": "https://salesap.ru/api/v1/diary-types/1"
},
"attributes": {
"created-at": "2021-12-10T12:30:50.238+03:00",
"updated-at": "2021-12-10T12:30:50.238+03:00",
"cached-at": "2021-12-10T12:30:50.238+03:00",
"name": "Тип задачи",
"is-call": null,
"regulations": "Текст регламента",
"color": "#b43f18"
},
"relationships": {
"tasks": {
"links": {
"self": "https://salesap.ru/api/v1/diary-types/1/relationships/tasks",
"related": "https://salesap.ru/api/v1/diary-types/1/tasks"
}
}
}
}
]
}
Создание нового типа задач
curl "https://app.salesap.ru/api/v1/diary-types" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"diary-types",
"attributes":{
"name": "Тип задачи",
"color": "#b43f18",
"regulations": "Текст регламента"
}
}
}
EOF
JSON API type | diary-types |
URL | /api/v1/diary-types |
Список | GET /api/v1/diary-types |
Чтение | GET /api/v1/diary-types/{id} |
Создание | POST /api/v1/diary-types |
Редактирование | PATCH /api/v1/diary-types/{id} |
Удаление | DELETE /api/v1/diary-types/{id} |
Атрибуты
{
"data": {
"id": "1",
"type": "diary-types",
"links": {
"self": "https://salesap.ru/api/v1/diary-types/1"
},
"attributes": {
"created-at": "2021-12-10T12:30:50.238+03:00",
"updated-at": "2021-12-10T12:30:50.238+03:00",
"cached-at": "2021-12-10T12:30:50.238+03:00",
"name": "Тип задачи",
"is-call": null,
"regulations": "Текст регламента",
"color": "#b43f18"
},
"relationships": {
"tasks": {
"links": {
"self": "https://salesap.ru/api/v1/diary-types/1/relationships/tasks",
"related": "https://salesap.ru/api/v1/diary-types/1/tasks"
}
}
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Пример типа задачи | да | Имя типа задачи |
color | string |
#b43f18 | да | Цвет |
regulations | string |
Текст регламента | да | Текст регламента |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
cached-at | datetime |
2021-12-10T12:30:50.238+03:00 |
нет | Дата кеширования |
* Обязательные поля
Приоритеты
Создание приоритета задачи
curl "https://app.salesap.ru/api/v1/diary-priorities" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"diary-priorities",
"attributes":{
"name":"Приоритет задачи в API",
"color":"#000000"
}
}
}
EOF
JSON API type | diary-priorities |
URL | /api/v1/diary-priorities |
Список | GET /api/v1/diary-priorities |
Чтение | GET /api/v1/diary-priorities/{id} |
Создание | POST /api/v1/diary-priorities |
Редактирование | PATCH /api/v1/diary-priorities/{id} |
Удаление | DELETE /api/v1/diary-priorities/{id} |
Атрибуты
{
"data": {
"type":"diary-priorities",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Название приоритета |
color | string |
#1f2f3f | да | Цвет приоритета |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Вложенные объекты задачи
Добавление подзадачи в задачу
curl "https://app.salesap.ru/api/v1/diary-entities" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"diary-entities",
"relationships":{
"diary":{
"data":{
"type":"diaries",
"id": 11
}
},
"entity":{
"data":{
"type":"deals",
"id": 42
}
}
}
}
}
EOF
JSON API type | diary-entities |
URL | /api/v1/diary-entities |
Список | GET /api/v1/diary-entities |
Чтение | GET /api/v1/diary-entities/{id} |
Создание | POST /api/v1/diary-entities |
Редактирование | PATCH /api/v1/diary-entities/{id} |
Удаление | DELETE /api/v1/diary-entities/{id} |
Связи
Пример данных
{
"data": {
"type":"products",
"id":"1",
"relationships":{
"diary":{
"links":{
"self":"/api/v1/diary-entities/1/relationships/diary",
"related":"/api/v1/diary-entities/1/diary"
}
},
"entity":{
"links":{
"self":"/api/v1/diary-entities/1/relationships/entity",
"related":"/api/v1/diary-entities/1/entity"
}
}
}
}
}
Пример запроса с загруженным объектом
curl "https://app.salesap.ru/api/v1/diary-entities??filter[entity-id]=11&filter[entity-type]=deals&include=entity" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Задача | diary | diaries |
Объект | entity | deals , orders , contacts , companies , estate-properties , contact-groups , contracts , document-template-renders , products , diaries , invoices , checkups |
Атрибуты
Атрибуты вложенных в задачу объектов
{
"data": {
"type":"diary-entities",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
Фильтры
Получить список вложенных в задачу объектов по определённой сделке
curl -G "https://app.salesap.ru/api/v1/diary-entities/?filter[entity-id]=11&filter[entity-type]=deals" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Фильтр | Описание | Пример |
---|---|---|
entity-id | Вывести объекты по определенному entity-id |
filter[entity-id]=1 |
entity-type | Вывести объекты по определенному entity-type . Допустимые значения: contacts , deals , orders , companies |
filter[entity-type]=contacts |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Записи
Создание записи
curl "https://app.salesap.ru/api/v1/entries" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"entries",
"attributes":{
"start-time":"2021-06-15 09:00 +0300",
"duration":"01:00"
},
"relationships":{
"calendar": {
"data": {
"type": "calendars",
"id": 1
}
},
"resource": {
"data": {
"type": "calendar-resources",
"id": 100
}
},
"responsible": {
"data": {
"type": "users",
"id": 100
}
}
}
}
}
EOF
JSON API type | entries |
URL | /api/v1/entries |
Список | GET /api/v1/entries |
Чтение | GET /api/v1/entries/{id} |
Создание | POST /api/v1/entries |
Редактирование | PATCH /api/v1/entries/{id} |
Удаление | DELETE /api/v1/entries/{id} |
Атрибуты
{
"data": {
"type":"entries",
"id": 1,
"attributes":{
"start-time":"2021-06-15 09:00 +0300",
"duration":"00:30",
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string |
Наименование | да | Название |
start-time* | datetime |
2021-06-15 09:00 +0300 |
да | Время начала |
duration* | string |
00:30 |
да | Длительность |
comment | string |
Примечание | да | Примечание |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"entries",
"id":"1",
"relationships":{
"calendar": {
"data": {
"type": "calendars",
"id": 1
}
},
"resource": {
"data": {
"type": "calendar-resources",
"id": 100
}
},
"responsible": {
"data": {
"type": "users",
"id": 100
}
}
}
}
}
Название | Связь | JSON API type |
---|---|---|
Создатель | creator | users |
Ответственный | responsible | users |
Ресурс | resource | calendar-resources |
Календарь | calendar | calendars |
Статус | status | entry-statuses |
Вид услуги | service | service-kinds |
Источник | source | sources |
Компании | companies | companies |
Контакты | contacts | contacts |
Сделки | deals | deals |
Заявки | orders | orders |
Осмотры | checkups | orders |
Вложенные продукты | entities-products | entity-products |
Документы | document-template-renders | document-template-renders |
Фильтры
Получить список осмотров по запросу
curl -G "https://app.salesap.ru/api/v1/entries/?filter[q]=Осмотр" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
discarded-at-gte | Вывести объекты в корзине после указанного времени | filter[discarded-at-gte]=2017.08.01 12:00 |
discarded-at-lte | Вывести объекты в корзине до указанного времени | filter[discarded-at-lte]=2017.08.01 12:00 |
responsible-id | Вывести объекты по определенному ответственному | filter[responsible-id]=1 |
user-id | Вывести объекты по определенному создателю | filter[user-id]=1 |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
Календари
Создание календаря
curl "https://app.salesap.ru/api/v1/calendars" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"calendars",
"attributes":{
"name":"Стоматологи"
}
},
"relationships":{
"calendar-category":{
"data":{
"type":"calendar-categories",
"id":1
}
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "calendars",
"links": {
"self": "https://app.salesap.ru/api/v1/calendars/37"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name": "Стоматологи",
"start-time":"2021-06-01 09:00 +0300",
"end-time":"2021-06-30 18:00 +0300",
"address": "Ворошилова, 1, корп. 1",
"resource-alias-plural": "Кабинеты",
"resource-alias-singular": "Кабинет",
"entry-background": "service",
"entry-step": 15,
"phone": "+7999999999",
"view-type": "timelineMonth",
"notify_schedule_change": true
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Стоматологи | да | Название |
start-time | datetime |
2021-06-01 09:00 +0300 |
да | Время начала |
end-time | datetime |
2021-06-30 18:00 +0300 |
да | Время окончания |
address | string |
Ворошилова, 1, корп. 1 | да | Адрес |
resource-alias-plural | string |
Кабинеты | да | Имя ресурса, множ. число |
resource-alias-singular | string |
Кабинет | да | Имя ресурса, ед. число |
entry-background | string |
service , status , responsible |
да | Цвет фона карточки записи (статуса, услуги или сотрудника) |
entry-step | integer |
15 | да | Шаг записи (минут) |
phone | string |
+7999999999 | да | Телефон |
view-type | string |
timelineMonth |
да | Вид календаря (timeGrid - вертикальный, timelineDay - горизонтальный на день, timelineMonth - горизонтальный на месяц) |
notify-schedule-change | boolean |
true | да | Уведомлять об изменении режима работы сотрудника в календаре |
* Обязательные поля
Фильтры
Получить список категорий ресурсов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/calendars" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Категории календарей
Создание категории календарей
curl "https://app.salesap.ru/api/v1/calendar-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"calendar-categories",
"attributes":{
"name":"Календари отдела продаж"
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "calendar-categories",
"links": {
"self": "https://app.salesap.ru/api/v1/calendar-categories/37"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name": "Календари отдела продаж",
"position": 1
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Календари отдела продаж | да | Название |
position | integer |
1 | да | Позиция в списке |
* Обязательные поля
Фильтры
Получить список категорий календарей созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/calendar-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Ресурс календаря
Создание ресурса в календаре
curl "https://app.salesap.ru/api/v1/calendar-resources" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"calendar-resources",
"attributes":{
"name":"Кабинет 1",
"short-name": "К1"
},
"relationships":{
"calendar-resource-category":{
"data":{
"type":"calendar-resource-categories",
"id":1
}
},
"calendar":{
"data":{
"type":"calendars",
"id":100
}
}
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "calendar-resources",
"links": {
"self": "https://app.salesap.ru/api/v1/calendar-resources/37"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name": "Кабинет 1",
"short-name": "К1",
"color": "#c6c6c6",
"visit-duration": "00:30",
"position": 1
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Кабинет 1 | да | Название |
short-name* | string |
К1 | да | Сокращенное название |
color | string |
#c6c6c6 | да | Цвет |
visit-duration | string |
00:30 | да | Длительность визита |
position | integer |
1 | да | Позиция в списке |
* Обязательные поля
Фильтры
Получить список категорий ресурсов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/calendar-resources" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Категории ресурсов в календаре
Создание категории ресурсов для календаря
curl "https://app.salesap.ru/api/v1/calendar-resource-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"calendar-resource-categories",
"attributes":{
"name":"Стоматологи"
},
"relationships":{
"calendar":{
"data":{
"type":"calendars",
"id":100
}
}
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "calendar-resource-categories",
"links": {
"self": "https://app.salesap.ru/api/v1/calendar-resource-categories/37"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name": "Стоматологи",
"position": 1
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Стоматологи | да | Название |
position | integer |
1 | да | Позиция в списке |
* Обязательные поля
Фильтры
Получить список категорий ресурсов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/calendar-resource-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Связи
Загрузка категорий ресурсов по календарю (id = 100)
curl "https://app.salesap.ru/api/v1/calendars/100/relationships/calendar-resource-categories" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Название | Связь | JSON API type |
---|---|---|
Календарь | calendar | calendars |
Режим работы сотрудника в календаре
Создание режима работы сотрудника в календаре
curl "https://app.salesap.ru/api/v1/calendar-schedules" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"calendar-schedules",
"attributes":{
"start-time":"2021-06-15 09:00 +0300",
"end-time":"2021-06-15 18:00 +0300"
},
"relationships":{
"calendar":{
"data":{
"type":"calendars",
"id":100
}
},
"user":{
"data":{
"type":"users",
"id":100
}
}
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "calendar-schedules",
"links": {
"self": "https://app.salesap.ru/api/v1/calendar-schedules/37"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"start-time":"2021-06-15 09:00 +0300",
"end-time":"2021-06-15 18:00 +0300"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
start-time* | datetime |
2021-06-15 09:00 +0300 |
да | Время начала работы |
end-time* | datetime |
2021-06-15 18:00 +0300 |
да | Время окончания работы |
* Обязательные поля
Фильтры
Получить список режимов работы, созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/calendar-schedules" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Связи
Загрузка режима работы сотрудника по календарю (id = 100)
curl "https://app.salesap.ru/api/v1/calendars/100/relationships/calendar-schedules" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Название | Связь | JSON API type |
---|---|---|
Календарь* | calendar | calendars |
Сотрудник* | user | users |
Ресурс | resource | calendar-resources |
* Обязательные связи
Виды услуг
Создание вида услуг
curl "https://app.salesap.ru/api/v1/service-kinds" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"service-kinds",
"attributes":{
"name":"Консультация"
},
"relationships":{
"service-kind-category":{
"data":{
"type":"service-kind-categories",
"id":1
}
}
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "service-kinds",
"links": {
"self": "https://app.salesap.ru/api/v1/service-kinds/37"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name":"Консультация",
"color": "#c6c6c6",
"limit-participants": 2,
"position": 1
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Кабинет 1 | да | Название |
color | string |
#c6c6c6 | да | Цвет |
limit-participants | integer |
10 | да | Лимит участников |
position | integer |
1 | да | Позиция в списке |
* Обязательные поля
Фильтры
Получить список видов услуг, созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/service-kinds" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Категории видов услуг
Создание категории видов услуг
curl "https://app.salesap.ru/api/v1/service-kind-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"service-kind-categories",
"attributes":{
"name":"Основные"
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "service-kind-categories",
"links": {
"self": "https://app.salesap.ru/api/v1/service-kind-categories/37"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name": "Основные",
"position": 1
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Основные | да | Название |
position | integer |
1 | да | Позиция в списке |
* Обязательные поля
Фильтры
Получить список категорий ресурсов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/service-kind-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Статусы записи
Создание статуса записи
curl "https://app.salesap.ru/api/v1/entry-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"entry-statuses",
"attributes":{
"name":"Статус записи в API",
"color":"#000000"
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "entry-statuses",
"links": {
"self": "https://app.salesap.ru/api/v1/entry-statuses/37"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name":"Статус записи в API",
"color":"#000000",
"position": 1
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Кабинет 1 | да | Название |
color | string |
#c6c6c6 | да | Цвет |
position | integer |
1 | да | Позиция в списке |
* Обязательные поля
Фильтры
Получить список категорий ресурсов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/entry-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Телефония
Создание телефонии
curl "https://app.salesap.ru/api/v1/telephonies" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"telephonies",
"attributes":{
"provider":"mango",
"mango-code":"1122",
"mango-sign-key":"signkey"
}
}
}
EOF
JSON API type | telephonies |
URL | /api/v1/telephonies |
Список | GET /api/v1/telephonies |
Чтение | GET /api/v1/telephonies/{id} |
Создание | POST /api/v1/telephonies |
Редактирование | PATCH /api/v1/telephonies/{id} |
Удаление | DELETE /api/v1/telephonies/{id} |
Атрибуты
{
"data": {
"type":"telephonies",
"id":"1",
"attributes":{
"provider":"mango",
"sipuni-integration-key": null,
"sipuni-system-number": null,
"mango-code":"1122",
"mango-sign-key":"signkey",
"oktell-order-call-url": null,
"dialog-order-call-url": null,
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
provider* | string |
mango |
да | Провайдер телефонии |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата архивации |
* Обязательные поля
Ограничения по значениям
Аттрибут | Варианты |
---|---|
provider | API ,sipuni ,mango ,bmi_telecom ,oktell ,dialog |
Некоторые атрибуты зависят от провайдера телефонии.
Атрибуты Sipuni
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
sipuni-integration-key | string |
110012 | да | Ключ интеграции Sipuni |
sipuni-system-number | string |
SomeKey |
да | Системный номер в Sipuni |
Атрибуты Mango
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
mango-code | string |
SomeKey | да | Код интеграции Mango |
mango-sign-key | string |
10201110 | да | Ключ интеграции Mango |
Атрибуты Oktell
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
oktell-order-call-url | string |
http://example.com/ | да | URL для запроса звонка в Oktell |
Атрибуты Dialog
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
dialog-order-call-url | string |
http://example.com/ | да | URL для запроса звонка в Dialog |
Фильтры
Получить список телефоний созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/telephonies" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
Номера
Создание номера
curl "https://app.salesap.ru/api/v1/telephony-phones" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"telephony-phones",
"attributes":{
"number":"100112"
},
"relationships":{
"telephony":{
"data":{
"type":"telephonies",
"id":"1"
}
},
"user":{
"data":{
"type":"users",
"id":"3"
}
}
}
}
}
EOF
JSON API type | telephony-phones |
URL | /api/v1/telephony-phones |
Список | GET /api/v1/telephony-phones |
Чтение | GET /api/v1/telephony-phones/{id} |
Создание | POST /api/v1/telephony-phones |
Редактирование | PATCH /api/v1/telephony-phones/{id} |
Удаление | DELETE /api/v1/telephony-phones/{id} |
Атрибуты номеров
{
"data": {
"type":"telephony-phones",
"id":"1",
"attributes":{
"number":"112",
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
number* | string |
3301 |
да | Номер телефона |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Связи номеров
Пример данных
{
"data": {
"type":"telephonies-phones",
"id":"1",
"relationships":{
"telephony":{
"links":{
"self":"/api/v1/telephonies-phone/1/relationships/telephony",
"related":"/api/v1/telephonies-phone/1/telephony"
}
},
"user":{
"links":{
"self":"/api/v1/telephonies-phone/1/relationships/user",
"related":"/api/v1/telephonies-phone/1/user"
}
}
}
}
}
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Для создания номера телефона, в связях обязательно должны указываться сотрудник, которому присваивается номер,
и телефония, в которой этот номер будет функционировать.
Название | Связь | JSON API type |
---|---|---|
Телефония | telephony | telephonies |
Сотрудник | user | users |
Фильтры
Получить список номеров телефонов по определённому пользователю
curl -G "https://app.salesap.ru/api/v1/telephony-phones" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[user]=11"
Фильтр | Описание | Пример |
---|---|---|
user | Вывести объекты по определенному user |
filter[user]=10 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Звонки
Создание звонка
curl "https://app.salesap.ru/api/v1/telephony-calls" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"telephony-calls",
"attributes":{
"direction":"planned",
"src-phone-number":"+73221223442",
"planned-at":"2017-02-02 17:04:41 +0300"
},
"relationships":{
"telephony":{
"data":{
"type":"telephonies",
"id":"3"
}
},
"dst-phone":{
"data":{
"type":"telephony-phones",
"id":"2"
}
}
}
}
}
EOF
JSON API type | telephony-calls |
URL | /api/v1/telephony-calls |
Список | GET /api/v1/telephony-calls |
Чтение | GET /api/v1/telephony-calls/{id} |
Создание | POST /api/v1/telephony-calls |
Редактирование | PATCH /api/v1/telephony-calls/{id} |
Удаление | DELETE /api/v1/telephony-calls/{id} |
Атрибуты звонков
{
"data": {
"type":"telephony-calls",
"id":"1",
"attributes":{
"call-id": "61bbb785-4a8c-4188-97f0-1cc7400e587f",
"direction":"outgoing",
"dst-phone-number": "+79990306111",
"src-phone-number":"112",
"duration": 10000.0,
"recording": "b1a13646",
"created-at":"2016-11-26T12:07:51.572+03:00",
"completed-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"planned-at": null,
"answered-at": "2016-11-26T12:07:51.572+03:00",
"started-at": "2016-11-26T12:07:51.572+03:00",
"entity-id": "123123",
"entity-type": "Company",
"entity-name": "ООО Компания"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
dst-phone-number* | string |
+7223311 |
да | Номер входящего телефона |
src-phone-number* | string |
3301 |
да | Номер исходящего телефона |
direction* | string |
incoming |
да | Тип звонка |
call-id | string |
61bbb785-4a8c-4188-97f0-1cc7400e587f |
да | Идентификатор звонка в АТС |
duration | double |
6000.0 | да | Длительность звонка |
recording | string |
b1a13646 |
да | Идентификатор записи или ссылка на неё |
answered-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата ответа на звонок |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
started-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата начала звонка |
completed-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата окончания звонка |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
planned-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Плановая дата звонка |
entity-id | integer |
1 | нет | ID привязанного контакта/компании |
entity-type | string |
Company |
нет | Тип привязанного объекта |
entity-name | string |
ООО "Рога и копыта" |
нет | Наименование привязанного объекта |
* Обязательные поля
Связи звонков
Пример данных (перечислены не все связи)
{
"data": {
"type":"telephonies-calls",
"id":"1",
"relationships":{
"src-phone":{
"links":{
"self":"/api/v1/telephonies-phone/1/relationships/src-phone",
"related":"/api/v1/telephonies-phone/1/src-phone"
}
},
"dst-phone":{
"links":{
"self":"/api/v1/telephonies-phone/1/relationships/dst-phone",
"related":"/api/v1/telephonies-phone/1/dst-phone"
}
}
}
}
}
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Для создания номера телефона, в связях обязательно должен указываться номер в телефонии. В зависимости от типа звонка,
указанного в поле direction
, привязываться он дожен к разным связям.
Название | Связь | JSON API type |
---|---|---|
Телефония* | telephony | telephonies |
Звонящий номер | src-phone | telephony-phones |
Целевой номер | dst-phone | telephony-phones |
Статус | status | telephony-statuses |
* Обязательная связь
Обязательные связи в зависимости от ключа
Ключ | Обязательные связи | Описание |
---|---|---|
outgoing | src-phone |
Исходящий звонок |
incoming | dst-phone |
Входящий звонок |
internal | src-phone и dst-phone |
Внутренний звонок |
planned | dst-phone |
Плановый звонок |
error | src-phone или dst-phone |
Ошибка |
Фильтры
Получить список звонков созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/telephony-calls" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Аудиозаписи
Получение аудиозаписей звонка
curl "https://app.salesap.ru/api/v1/telephony-calls/1/recordings" \
-X GET \
-H "Authorization: Bearer api_token"
JSON API type | telephony-calls |
Аудиозаписи | GET /api/v1/telephony-calls/{id}/recordings |
Атрибуты аудиозаписей звонков
Пример готовых данных
{
"data": {
"type":"telephony-calls",
"id":"1",
"attributes": {
"recordings": [
"https://example.com/path/to/audio.mp3"
],
"recordings_expires_at":"2021-12-28T15:58:47.664+03:00"
}
}
}
Имя | Тип | Пример | Описание |
---|---|---|---|
recordings | array |
["https://example.com/path/to/audio.mp3"] | Аудиозаписи звонка |
recordings_expires_at | datetime |
2021-12-28T15:58:47.664+03:00 |
Время удаления загруженной аудиозаписи |
Прежде чем получить аудиозаписи звонка, система загружает их, указывая время
удаления прокэшированных копий в recordings_expires_at
. Поэтому, при обращении
к данному методу в тот момент, когда срок хранения записи уже истек, вы получите
сообщение о подготовке данных. В этом случае, для получения аудиозаписей,
повторите запрос через 10 секунд.
Пример подготавливаемых данных
{
"data": {
"type":"telephony-calls",
"id":"1",
"attributes": {
"status":"Идет загрузка записи звонка, повторите запрос через 10 секунд"
}
}
}
Статусы
Создание статуса
curl "https://app.salesap.ru/api/v1/telephony-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"telephony-statuses",
"attributes":{
"name":"Статус заявки в API",
"color":"#000000"
}
}
}
EOF
JSON API type | telephony-statuses |
URL | /api/v1/telephony-statuses |
Список | GET /api/v1/telephony-statuses |
Чтение | GET /api/v1/telephony-statuses/{id} |
Создание | POST /api/v1/telephony-statuses |
Редактирование | PATCH /api/v1/telephony-statuses/{id} |
Удаление | DELETE /api/v1/telephony-statuses/{id} |
Атрибуты
{
"data": {
"type":"telephony-statuses",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Имя статуса телефонии |
color | string |
#1f2f3f | да | Цвет статуса телефонии |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов звонков созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/telephony-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Продукты
Создание продукта с предустановленными типом и статусом
curl "https://app.salesap.ru/api/v1/products" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"products",
"attributes":{
"name":"Продукт из API",
"description":"Продукт созданный при помощи API",
"purchase-price":10000.0
},
"relationships":{
"product-type":{
"data":{
"type":"product-types",
"id":"11"
}
},
"status":{
"data":{
"type":"product-statuses",
"id":"2"
}
}
}
}
}
EOF
Пример установки обложки.
curl "https://app.salesap.ru/api/v1/products/10" \
-X PATCH \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"products",
"id":"10",
"relationships":{
"cover":{
"data":{
"type":"documents",
"id":"103"
}
}
}
}
}
EOF
JSON API type | products |
URL | /api/v1/products |
Список | GET /api/v1/products |
Чтение | GET /api/v1/products/{id} |
Создание | POST /api/v1/products |
Редактирование | PATCH /api/v1/products/{id} |
Удаление | DELETE /api/v1/products/{id} |
Атрибуты
{
"data": {
"type":"products",
"id": 1,
"attributes":{
"name": "Квартира на Ленинском",
"description": "двушка в 15м доме",
"cost-price": 100.0,
"selling-price": 100.0,
"purchase-price": 50.0,
"code": "10110",
"number": 8,
"vendor-code": "1BM40",
"is-service": false,
"cover-image": "https://example.com/path/to/file.jpg",
"customs":{
"custom-943":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Квартира на Ленинском | да | Название товара |
description | string |
двушка в 15м доме | да | Описание товара |
code | string |
11030 | да | Код |
vendor-code | string |
1BM40 | да | Артикул |
is-service | boolean |
true |
да | Услуга |
purchase-price | decimal |
150.0 | да | Цена закупки |
cost-price | decimal |
100.0 | нет | Себестоимость |
selling-price | decimal |
100.0 | да | Цена продажи |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата архивации |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
discarded-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата перемещения в корзину |
cover-image | string |
https://example.com/path/to/file.jpg |
нет | Обложка.** |
volume | decimal |
15.0 | да | Объём |
weight | decimal |
20.0 | да | Вес, кг |
ccd | string |
11111111 / 111111 / 1111111 |
да | ГТД |
country | string |
Россия | да | Страна |
vat | decimal |
18.0 | да | НДС |
number | bigint |
8 | да | Номер продукта |
* Обязательные поля ** Обложка может быть установлена только из тех документов, которые уже связаны с продуктом и являются изображением.
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"products",
"id":"1",
"relationships":{
"status":{
"links":{
"self":"/api/v1/products/1/relationships/status",
"related":"/api/v1/products/1/status"
}
},
"category":{
"links":{
"self":"/api/v1/products/1/relationships/category",
"related":"/api/v1/products/1/category"
}
}
}
}
}
Пример запроса с загруженными статусами и категориями продуктов
curl "https://app.salesap.ru/api/v1/products?include=status,category" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Категория | category | product-categories |
Статус | status | product-statuses |
Скидка | discount | product-discounts |
Единица измерения | unit | product-units |
Склад | store | stores |
Задачи | diaries | diaries |
Заявки | orders | orders |
Сделки | deals | deals |
Изображения | images | documents |
Обложка | cover | documents |
Документы | documents | documents |
Фильтры
Получить список продуктов по определённому контакту
curl -G "https://app.salesap.ru/api/v1/products/?filter[contacts]=11" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Фильтр | Описание | Пример |
---|---|---|
contacts | Вывести объекты по определенному contacts |
filter[contacts]=1 |
companies | Вывести объекты по определенному companies |
filter[companies]=1 |
deals | Вывести объекты по определенному deals |
filter[deals]=1 |
orders | Вывести объекты по определенному orders |
filter[orders]=1 |
diaries | Вывести объекты по определенному diaries |
filter[diaries]=1 |
contracts | Вывести объекты по определенному contracts |
filter[contracts]=1 |
record-objects | Вывести объекты по определенному record-objects |
filter[record-objects]=1 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
Остатки продуктов на складах
JSON API type | product-by-stores |
URL | /api/v1/product-by-stores |
Список | GET /api/v1/product-by-stores |
Чтение | GET /api/v1/product-by-stores/{id} |
Атрибуты
{
"data": {
"type": "product-by-stores",
"id": "1",
"attributes": {
"created-at": "2016-11-26T12:07:51.572+03:00",
"updated-at": "2016-11-26T12:07:51.572+03:00",
"stock-quantity": "45.0",
"available-quantity": "12.0",
"reserved-quantity": "33.0",
"waiting-quantity": "0.0"
}
}
}
Имя | Тип | Пример | Описание |
---|---|---|---|
stock-quantity | float |
45.0 |
Фактический остаток |
available-quantity | float |
12.0 |
Доступный остаток |
reserved-quantity | float |
33.0 |
Резерв |
waiting-quantity | float |
0.0 |
Ожидание |
Связи
Пример данных
{
"data": {
"type": "product-by-stores",
"id": "1",
"relationships": {
"product": {
"links": {
"self": "/api/v1/product-by-stores/1/relationships/product",
"related": "/api/v1/product-by-stores/1/product"
}
},
"store": {
"links": {
"self": "/api/v1/product-by-stores/1/relationships/store",
"related": "/api/v1/product-by-stores/1/store"
}
}
}
}
}
Пример запроса с загруженными продуктами и складами
curl "https://app.salesap.ru/api/v1/product-by-stores?include=product,store" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Продукт | product | products |
Склад | store | stores |
Фильтры
Получить остатки определенных продуктов
curl -G "https://app.salesap.ru/api/v1/product-by-stores" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[product-id]=1,2,3,4"
Фильтр | Описание | Пример |
---|---|---|
product-id | Вывести остатки по определенным продуктам | filter[product-id]=1,2,3 |
store-id | Вывести остатки по определенным складам | filter[store-id]=2,3 |
Категории продуктов
Создание новой категории продуктов
curl "https://app.salesap.ru/api/v1/product-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"product-categories",
"attributes":{
"name":"Категория из API"
}
}
}
EOF
JSON API type | product-categories |
URL | /api/v1/product-categories |
Список | GET /api/v1/product-categories |
Чтение | GET /api/v1/product-categories/{id} |
Создание | POST /api/v1/product-categories |
Редактирование | PATCH /api/v1/product-categories/{id} |
Удаление | DELETE /api/v1/product-categories/{id} |
Атрибуты
{
"data": {
"type":"product-categories",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Оптом"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Квартиры по-суточно | да | Название категории продукта |
ancestry | string |
112,12 |
нет | Список родительских категорий |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Вложенные категории продуктов
Пример данных для создания подкатегории
{
"data": {
"type":"product-categories",
"attributes":{
"name":"Дочерняя категория"
},
"relationships":{
"parent":{
"data":{
"type":"product-categories",
"id":"123"
}
}
}
}
}
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Родитель | parent | product-categories |
Дети | children | product-categories |
Дерево | subtree | product-categories |
Фильтры
Получить список категорий продуктов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/product-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Скидки
Создание новой скидки
curl "https://app.salesap.ru/api/v1/product-discounts" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"product-discounts",
"attributes":{
"name":"Скидка из API",
"size":10.0
}
}
}
EOF
JSON API type | product-discounts |
URL | /api/v1/product-discounts |
Список | GET /api/v1/product-discounts |
Чтение | GET /api/v1/product-discounts/{id} |
Создание | POST /api/v1/product-discounts |
Редактирование | PATCH /api/v1/product-discounts/{id} |
Удаление | DELETE /api/v1/product-discounts/{id} |
Атрибуты
{
"data": {
"type":"product-discounts",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Постоянный клиент",
"size": "10.0"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Постоянный клиент | да | Название скидки |
size* | float |
10.0 | да | Размер скидки |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Связи
Пример запроса с загруженными типами контактов
curl "https://app.salesap.ru/api/v1/product-discounts?include=contact-type" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Тип контакта | contact-type | contact-types |
Фильтры
Получить список скидок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/product-discounts" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Промокампании
Создание промокампании
curl "https://app.salesap.ru/api/v1/promo-campaigns" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"promo-campaigns",
"attributes":{
"name": "Promo 2020",
"start-at": "2021-01-01 00:00 +0300"
"due-date": "2021-12-31 23:59 +0300"
"discount": 20.0,
"discount-mode": "percent",
"default": false
}
}
}
EOF
JSON API type | promo-campaigns |
URL | /api/v1/promo-campaigns |
Список | GET /api/v1/promo-campaigns |
Чтение | GET /api/v1/promo-campaigns/{id} |
Создание | POST /api/v1/promo-campaigns |
Редактирование | PATCH /api/v1/promo-campaigns/{id} |
Удаление | DELETE /api/v1/promo-campaigns/{id} |
Атрибуты
{
"data": {
"type":"promo-campaigns",
"id":"1",
"attributes":{
"created-at":"2020-11-26T12:07:51.572+03:00",
"updated-at":"2020-11-26T12:07:51.572+03:00",
"name": "Promo 2020",
"start-at": "2021-01-01 00:00 +0300",
"due-date": "2021-12-31 23:59 +0300",
"discount": 20.0,
"discount-mode": "percent",
"default": false,
"exclude-product-ids": ["1", "2"]
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Promo 2020 | да | Название промокампании |
start-at* | datetime |
2021-01-01T00:00:00.000+03:00 |
да | Дата и время начала действия |
due-date | datetime |
2021-12-31T23:59:00.000+03:00 |
да | Дата и время окончания действия |
discount | float |
20.0 | да | Размер скидки |
discount-mode | string |
percent | да | Тип скидки: percent (процент) или fixed (фикс. сумма) |
default | boolean |
true | да | Определяет, является ли промокампания используемой по умолчанию |
exclude-product-ids | array |
["1", "2"] | да | Идентификаторы продуктов, на которые не действует скидка |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список скидок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/promo-campaigns" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Промокоды
Создание промокода c лимитом в 10 использований
curl "https://app.salesap.ru/api/v1/promocodes" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"promocodes",
"attributes":{
"name":"PROMO2020",
"uses-limit": 10,
},
"relationships":{
"promo-campaign":{
"data":{
"type": "promo-campaigns",
"id": "1"
}
}
}
}
}
EOF
JSON API type | promocodes |
URL | /api/v1/promocodes |
Список | GET /api/v1/promocodes |
Чтение | GET /api/v1/promocodes/{id} |
Создание | POST /api/v1/promocodes |
Редактирование | PATCH /api/v1/promocodes/{id} |
Удаление | DELETE /api/v1/promocodes/{id} |
Атрибуты
{
"data": {
"type":"promocodes",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "PROMO2020",
"uses-limit": 10,
"active": false
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
PROMO2020 | да | Промокод |
uses-limit | integer |
10 | да | Лимит использования |
active | boolean |
false | да | Активность промокода |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список промокодов, созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/promocodes" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Скидки промокампании
Создание скидки промокампании
curl "https://app.salesap.ru/api/v1/promo-campaign-discounts" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"promo-campaign-discounts",
"attributes":{
"product-ids": ["1", "2"],
"exclude-product-ids": ["1", "2"],
"discount": 20.0,
"discount-mode": "percent"
},
"relationships":{
"promo-campaign":{
"data":{
"type": "promo-campaigns",
"id": "1"
}
}
}
}
}
EOF
JSON API type | promo-campaign-discounts |
URL | /api/v1/promo-campaign-discounts |
Список | GET /api/v1/promo-campaign-discounts |
Чтение | GET /api/v1/promo-campaign-discounts/{id} |
Создание | POST /api/v1/promo-campaign-discounts |
Редактирование | PATCH /api/v1/promo-campaign-discounts/{id} |
Удаление | DELETE /api/v1/promo-campaign-discounts/{id} |
Атрибуты
{
"data": {
"type":"promo-campaign-discounts",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"product-ids": ["1", "2"],
"exclude-product-ids": ["1", "2"],
"discount": 20.0,
"discount-mode": "percent"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
product-ids | array |
["1", "2"] | да | Идентификаторы продуктов |
exclude-product-ids | array |
["1", "2"] | да | Идентификаторы продуктов, на которые не действует скидка |
discount* | float |
20.0 | да | Размер скидки |
discount-mode* | string |
percent | да | Тип скидки: percent (процент) или fixed (фикс. сумма) |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список объектов, созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/promo-campaign-discounts" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Статусы продуктов
Создание статуса продукта
curl "https://app.salesap.ru/api/v1/product-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"product-statuses",
"attributes":{
"name":"Статус заявки в API",
"color":"#000000"
}
}
}
EOF
JSON API type | product-statuses |
URL | /api/v1/product-statuses |
Список | GET /api/v1/product-statuses |
Чтение | GET /api/v1/product-statuses/{id} |
Создание | POST /api/v1/product-statuses |
Редактирование | PATCH /api/v1/product-statuses/{id} |
Удаление | DELETE /api/v1/product-statuses/{id} |
Атрибуты
{
"data": {
"type":"product-statuses",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Имя статуса продукта |
color | string |
#1f2f3f | да | Цвет статуса продукта |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов продуктов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/product-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Типы продуктов
Создание типа продуктов
curl "https://app.salesap.ru/api/v1/product-types" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"product-types",
"attributes":{
"name":"Тип продукта из API"
}
}
}
EOF
JSON API type | product-types |
URL | /api/v1/product-types |
Список | GET /api/v1/product-types |
Чтение | GET /api/v1/product-types/{id} |
Создание | POST /api/v1/product-types |
Редактирование | PATCH /api/v1/product-types/{id} |
Удаление | DELETE /api/v1/product-types/{id} |
Атрибуты
{
"data": {
"type":"product-types",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Квартира"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Квартира | да | Название типа продукта |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список единиц измерений продуктов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/product-types" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Единицы измерений
Создание новой единицы измерения
curl "https://app.salesap.ru/api/v1/product-units" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"product-units",
"attributes":{
"name":"Единица измерения из API"
}
}
}
EOF
JSON API type | product-units |
URL | /api/v1/product-units |
Список | GET /api/v1/product-units |
Чтение | GET /api/v1/product-units/{id} |
Создание | POST /api/v1/product-units |
Редактирование | PATCH /api/v1/product-units/{id} |
Удаление | DELETE /api/v1/product-units/{id} |
Атрибуты
{
"data": {
"type":"product-units",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "руб/кв. м."
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
штука | да | Название единицы измерения |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список единиц измерений продуктов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/product-units" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Вложенные продукты
Добавление продукта в сделку (с промокодом)
curl "https://app.salesap.ru/api/v1/entity-products" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"entity-products",
"attributes":{
"quantity": 5
},
"relationships":{
"entity":{
"data":{
"type":"deals",
"id": 42
}
},
"product":{
"data":{
"type":"products",
"id": 11
}
},
"promocodes":{
"data":[{
"type":"promocodes",
"id": 1
}]
}
}
}
}
EOF
Добавление нескольких вложенных продуктов по связи с продуктами у сделки. Из указанных продуктов будут созданы соответствующие вложенные.
curl "https://app.salesap.ru/api/v1/deal/42/relationships/products" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":[{
"type":"products",
"id":"19"
}, {
"type":"products",
"id":"22"
}]
}
EOF
Изменение количества продуктов в сделке
curl "https://app.salesap.ru/api/v1/entity-products/11/" \
-X PATCH \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"entity-products",
"attributes":{
"quantity":12
}
}
}
EOF
JSON API type | entity-products |
URL | /api/v1/entity-products |
Список | GET /api/v1/entity-products |
Чтение | GET /api/v1/entity-products/{id} |
Создание | POST /api/v1/entity-products |
Редактирование | PATCH /api/v1/entity-products/{id} |
Удаление | DELETE /api/v1/entity-products/{id} |
Связи
Пример данных
{
"data": {
"type":"products",
"id":"1",
"relationships":{
"entity":{
"links":{
"self":"/api/v1/entity-products/1/relationships/entity",
"related":"/api/v1/entity-products/1/entity"
}
},
"product":{
"links":{
"self":"/api/v1/entity-products/1/relationships/product",
"related":"/api/v1/entity-products/1/product"
}
},
"product-unit":{
"links":{
"self":"/api/v1/entity-products/1/relationships/product-unit",
"related":"/api/v1/entity-products/1/product-unit"
}
}
}
}
}
Пример запроса с загруженным объектом
curl "https://app.salesap.ru/api/v1/entity-products??filter[entity-id]=11&filter[entity-type]=deals&include=entity" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Единица измерения | unit | product-units |
Объект | entity | deals , orders , contacts , companies |
Продукт | product | products |
Промокоды | promocodes | promocodes |
Атрибуты
Атрибуты вложенных продуктов
{
"data": {
"type":"entity-products",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Квартира",
"description": null,
"quantity": 2,
"purchase-price": "5000.0",
"total-amount": "10000.0"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string |
Квартира | нет | Название продукта |
description | string |
На улице Ленина | да | Описание продукта |
quantity | integer |
3 | да | Количество |
purchase-price | decimal |
200.0 | да | Цена закупочная за один продукт |
selling-price | decimal |
500.0 | да | Цена продажи за один продукт |
cost-price | decimal |
300.0 | нет | себестоимость за один продукт |
total-amount | decimal |
1500.0 | нет | Конечная цена |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
Фильтры
Получить список вложенных продуктов по определённой сделке
curl -G "https://app.salesap.ru/api/v1/entity-products/?filter[entity-id]=11&filter[entity-type]=deals" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Фильтр | Описание | Пример |
---|---|---|
entity-id | Вывести объекты по определенному entity-id |
filter[entity-id]=1 |
entity-type | Вывести объекты по определенному entity-type . Допустимые значения: contacts , deals , orders , companies |
filter[entity-type]=contacts |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
Проекты
Создание проекта
curl "https://app.salesap.ru/api/v1/projects" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"projects",
"attributes":{
"name":"Проект из API"
},
"relationships":{
"user":{
"data":{
"type":"users",
"id":"11"
}
},
"contact":{
"data":{
"type":"contacts",
"id":"2"
}
}
}
}
}
EOF
Пример установки ответственного.
curl "https://app.salesap.ru/api/v1/projects/10" \
-X PATCH \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"projects",
"id":"10",
"relationships":{
"responsible":{
"data":{
"type":"users",
"id":"103"
}
}
}
}
}
EOF
JSON API type | projects |
URL | /api/v1/projects |
Список | GET /api/v1/projects |
Чтение | GET /api/v1/projects/{id} |
Создание | POST /api/v1/projects |
Редактирование | PATCH /api/v1/projects/{id} |
Удаление | DELETE /api/v1/projects/{id} |
Атрибуты
{
"data": {
"type":"projects",
"id": 1,
"attributes":{
"name": "Проект",
"start-date": "2020-07-30",
"end-date": "2020-07-31",
"discarded-at": null,
"customs":{
"custom-943":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Проект | да | Название проекта |
start-date | date |
2020-07-30 |
да | Дата начала |
end-date | date |
2020-07-31 |
да | Дата окончания |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
discarded-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата перемещения в корзину |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
* Обязательные поля
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"projects",
"id":"1",
"relationships":{
"order":{
"links":{
"self":"/api/v1/projects/1/relationships/order",
"related":"/api/v1/projects/1/order"
}
},
"task-categories":{
"links":{
"self":"/api/v1/projects/1/relationships/task-categories",
"related":"/api/v1/projects/1/task-categories"
}
}
}
}
}
Пример запроса с загруженными статусами и категориями проектов
curl "https://app.salesap.ru/api/v1/projects?include=user,responsible" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Создатель | user | users |
Категория | category | project-categories |
Контакт | contact | contacts |
Компания | company | companies |
Сделка | deal | deals |
Ответственный | responsible | users |
Группы задач | task-categories | task-categories |
Задачи | diaries | orders |
Заявка | order | orders |
Связь проект-участник | projects-users | projects-users |
Участники | users | users |
Фильтры
Получить список проектов по определённому контакту
curl -G "https://app.salesap.ru/api/v1/projects/?filter[created-at-gte]=2017.08.01 12:00" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Фильтр | Описание | Пример |
---|---|---|
discarded-at-gte | Вывести объекты в корзине после указанного времени | filter[discarded-at-gte]=2017.08.01 12:00 |
discarded-at-lte | Вывести объекты в корзине до указанного времени | filter[discarded-at-lte]=2017.08.01 12:00 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
end-date-null | Вывести объекты без дедлайна | filter[discarded-at-null]=true |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
Категории проектов
Создание категории проектов
curl "https://app.salesap.ru/api/v1/project-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"project-categories",
"attributes":{
"name":"Категория проекта из API"
}
}
}
EOF
JSON API type | project-categories |
URL | /api/v1/project-categories |
Список | GET /api/v1/project-categories |
Чтение | GET /api/v1/project-categories/{id} |
Создание | POST /api/v1/project-categories |
Редактирование | PATCH /api/v1/project-categories/{id} |
Удаление | DELETE /api/v1/project-categories/{id} |
Атрибуты
{
"data": {
"type":"project-categories",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Категория"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Категория | да | Название категории проекта |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список категорий проектов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/project-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Категории задач проектов
Создание категории задач проектов
curl "https://app.salesap.ru/api/v1/task-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"task-categories",
"attributes":{
"name":"Категория задач проекта из API"
}
}
}
EOF
JSON API type | task-categories |
URL | /api/v1/task-categories |
Список | GET /api/v1/task-categories |
Чтение | GET /api/v1/task-categories/{id} |
Создание | POST /api/v1/task-categories |
Редактирование | PATCH /api/v1/task-categories/{id} |
Удаление | DELETE /api/v1/task-categories/{id} |
Атрибуты
{
"data": {
"type":"task-categories",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Категория"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Категория | да | Название категории задач проекта |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список категорий задач проектов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/task-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Объекты недвижимости
Создание объекта недвижимости с предустановленными статусом
curl "https://app.salesap.ru/api/v1/estate-properties" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"estate-properties",
"attributes":{
"name":"Объект недвижимости из API",
"description":"объект созданный при помощи API",
"purchase-price":10000.0
},
"relationships":{
"status":{
"data":{
"type":"estate-property-statuses",
"id":"2"
}
}
}
}
}
EOF
Пример установки обложки.
curl "https://app.salesap.ru/api/v1/estate-properties/10" \
-X PATCH \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"estate-properties",
"id":"10",
"relationships":{
"cover":{
"data":{
"type":"documents",
"id":"103"
}
}
}
}
}
EOF
JSON API type | estate-properties |
URL | /api/v1/estate-properties |
Список | GET /api/v1/estate-properties |
Чтение | GET /api/v1/estate-properties/{id} |
Создание | POST /api/v1/estate-properties |
Редактирование | PATCH /api/v1/estate-properties/{id} |
Удаление | DELETE /api/v1/estate-properties/{id} |
Атрибуты
{
"data": {
"type":"estate-properties",
"id": 1,
"attributes":{
"created-at": "2018-06-04T15:55:43.507+03:00",
"updated-at": "2018-06-08T14:01:41.353+03:00",
"cached-at": "2018-06-08T14:01:41.353+03:00",
"name": "Луначарского 9-280",
"cover-image": null,
"description": "отличное состояние",
"archived-at": null,
"purchase-price": null,
"map-url": "http://app.salesap.ru",
"railway": "Станция 1",
"cadastral-num": "123123",
"highway-name": null,
"subway-name": "Метро 1",
"address": null,
"country": "Россия",
"region": "Москва",
"locality": "Москва",
"district": "Алтуфьевский",
"building-name": "ЖК Чистоста и порядок",
"build-at": 2005,
"city-dist": 10,
"subway-dist": 1,
"subway-transport": 5,
"subway-foot": 20,
"room-number": 100,
"total-room": 3,
"separate-rooms": 3,
"rooms-for-sell": 3,
"floor-number": 5,
"total-floors": 9,
"deal-type": null,
"object-type": "flat_and_room:flat",
"installments": null,
"bargain": "yes",
"mortgage": null,
"deal-category": "sell",
"balcony": "loggia",
"building-class": "aplus",
"building-type": "administrative",
"business-usage-type": null,
"commission-type": "percent",
"condition": null,
"climate": "heating",
"currency": "rur",
"feature": [],
"electricity": "yes",
"flat-status": null,
"flat-type": null,
"gas": "no",
"gate": "drive_a_truck",
"heating": "central",
"highway-access": "direct_access",
"land-usage-type": null,
"layout": "free",
"material": "concrete",
"new-flat": "yes",
"ownership": "agent",
"parking-type": "on_ground",
"rent-period": "long",
"plumbing": "central",
"payment-period": "month",
"land-purpose": null,
"ready-quarter": "II",
"relief": null,
"renovation": null,
"sewerage": "central",
"storage-type": null,
"toilet": "joined",
"warehouse-floor": null,
"warehouse-type": null,
"location-type": null,
"object-category": "flat_and_room",
"window-view": "street",
"encumbrance": null,
"build-stage": "done_not_passed",
"ceiling-height": 2.7,
"longitude": 37.617673,
"latitude": 55.755831,
"land-area": null,
"total-area": 69,
"living-area": 60,
"kitchen-area": 20,
"commission-sum": null,
"contact-phone": "79999999999",
"uid": "5efc566c803eea8beaab850e5c779eb6",
"rent-deposit": "without",
"customs": {
"custom-11801": "Кастомное значение"
}
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
address | string |
Ленинский 15 | Да | Адрес |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
Нет | Помещено в архив |
balcony | string |
balcony | Да | Балкон |
bargain | string |
yes | Да | Торг |
build-at | integer |
1981 | Да | Год постройки |
build-stage | string |
passed | Да | Стадия строительства |
building-class | string |
aplus | Да | Класс здания |
building-name | string |
ООО Управляющая компания | Да | Название ЖК |
building-type | string |
living_house | Да | Тип здания |
business-usage-type | string |
any | Да | Тип использования коммерческого помещения |
cached-at | datetime |
2016-11-26T12:07:51.572+03:00 |
Нет | Закэшировано |
cadastral-num | string |
47:14:1203001:814 | Да | Кадастровый номер |
ceiling-height | decimal |
2.9 | Да | Высота потолков |
city-dist | integer |
10 | Да | Расстояние до города, км |
climate | string |
heating | Да | Система контроля климата |
commission-sum | decimal |
10.0 | Да | Комиссия |
commission-type | string |
percent | Да | Тип комиссии |
condition | string |
normal | Да | Состояние коммерческого помещения |
contact-phone | string |
79999999999 | Да | Контактный телефон |
country | string |
Россия | Да | Страна |
cover-image | string |
https://example.com/path/to/file.jpg |
нет | Обложка.** |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
currency | string |
rur | Да | Валюта |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
deal-category | string |
sell | Да | Категория сделки |
deal-type | string |
sell:direct |
Да | Тип сделки |
description | string |
Хорошая квартира... |
Да | Описание |
discarded-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата перемещения в корзину |
district | string |
Автозаводский | Да | Район |
electricity | string |
yes |
Да | Электроснабжение |
encumbrance | string |
yes |
Да | Обременение |
feature | text |
['pool', 'wireless_internet', 'billiards', 'boiler', 'concierge] |
Да | Опции |
flat-status | string |
free | Да | Статус квартиры |
flat-type | string |
elite | Да | Тип квартиры |
floor-number | integer |
3 | Да | Этаж |
gas | string |
possible | Да | Газификация |
gate | string |
hyudralic_ramps | Да | Въезд |
heating | string |
central | Да | Отопление |
highway-access | string |
direct_access | Да | Транспортная доступность |
highway-name | string |
Шоссейное | Да | Шоссе |
installments | string |
no | Да | Рассрочка |
kitchen-area | decimal |
30.0 | Да | Кухня, м. кв. |
land-area | decimal |
0.0 | Да | Площадь участка, соток |
land-purpose | string |
settlements | Да | Использование земли |
land-usage-type | string |
igs | Да | Назначение земли |
latitude | decimal |
55.755831 | Да | Широта |
layout | string |
free | Да | Планировка |
living-area | decimal |
58 | Да | Жилая площадь, м. кв. |
locality | string |
Москва | Да | Населенный пункт |
location-type | string |
town | Да | Расположение |
longitude | decimal |
37.617673 | Да | Долгота |
map-url | string |
https://url_to_map | Да | Ссылка на карту |
material | string |
panel | Да | Материал стен |
mortgage | string |
no | Да | Ипотека |
name | string |
Квартира на комсомольской 15 | Да | Название |
new-flat | string |
yes | Да | Новостройка |
object-category | string |
flat_and_room | Да | Категория объекта |
object-type | string |
foreign_estate:apartments | Да | Тип объекта |
ownership | string |
owner | Да | Собственность |
parking-type | string |
on_ground | Да | Тип парковки |
payment-period | string |
month | Да | Период оплаты |
plumbing | string |
hole | Да | Водоснабжение |
purchase-price | decimal |
8000000 | Да | Цена |
railway | string |
Красная | Да | Ж/д станция |
ready-quarter | string |
III | Да | Квартал сдачи дома |
region | string |
Московская область | Да | Регион |
relief | string |
flat | Да | Рельеф |
renovation | string |
good | Да | Ремонт |
rent-deposit | string |
two_month | Да | Залог для аренды |
rent-period | string |
long | Да | Срок аренды |
room-number | integer |
14 | Да | Квартира |
rooms-for-sell | integer |
4 | Да | Комнат продается |
separate-rooms | integer |
4 | Да | Комнат раздельно |
sewerage | string |
Выгребная яма | Да | Канализация |
storage-type | string |
Напольное | Да | Тип хранения |
subway-dist | integer |
2 | Да | Расстояние до метро, м. |
subway-foot | integer |
5 | Да | До метро пешком, мин. |
subway-name | string |
Станция "тест" | Да | Метро |
subway-transport | integer |
2 | Да | До метро на транспорте, мин. |
toilet | string |
Совмещенный | Да | Туалет |
total-area | decimal |
55 | Да | Общая площадь, м. кв. |
total-floors | integer |
5 | Да | Этажей в доме |
total-room | integer |
3 | Да | Комнат всего |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Обновлено |
warehouse-floor | string |
Бетонный пол | Да | Покрытие полов |
warehouse-type | string |
Склад | Да | Тип складского помещения |
window-view | string |
Во двор | Да | Вид из окна |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
Справочник атрибутов объектов недвижимости
* Обязательные поля ** Обложка может быть установлена только из тех документов, которые уже связаны с продуктом и являются изображением.
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"estate-properties",
"id":"1",
"relationships":{
"status":{
"links":{
"self":"/api/v1/estate-properties/1/relationships/status",
"related":"/api/v1/estate-properties/1/status"
}
}
}
}
}
Пример запроса с загруженными статусами
curl "https://app.salesap.ru/api/v1/estate-properties?include=status" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Статус | status | product-statuses |
Источник | source | sources |
Задачи | diaries | diaries |
Заявки | orders | orders |
Сделки | deals | deals |
Изображения | images | documents |
Обложка | cover | documents |
Документы | documents | documents |
Ответственный | responsible | users |
Продавец* | company | companies |
Продавец* | contact | contacts |
Соисполнители | performers | users |
* Одновременно указывать контакт и компанию продавцом нельзя, к объекту будет привязан только один объект
Фильтры
Получить список объектов недвижимости созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/estate-properties" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
discarded-at-null | Вывести объекты не в корзине | filter[discarded-at-null]=true |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
Статусы
Создание статуса объекта недвижимости
curl "https://app.salesap.ru/api/v1/estate-property-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"estate-property-statuses",
"attributes":{
"name":"Статус объекта недвижимости в API",
"color":"#d2d2d2"
}
}
}
EOF
JSON API type | estate-property-statuses |
URL | /api/v1/estate-property-statuses |
Список | GET /api/v1/estate-property-statuses |
Чтение | GET /api/v1/estate-property-statuses/{id} |
Создание | POST /api/v1/estate-property-statuses |
Редактирование | PATCH /api/v1/estate-property-statuses/{id} |
Удаление | DELETE /api/v1/estate-property-statuses/{id} |
Атрибуты
{
"data": {
"type":"estate-property-statuses",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Имя статуса объекта недвижимости |
color | string |
#1f2f3f | да | Цвет статуса объекта недвижимости |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов объектов недвижимости созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/estate-property-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Договоры
Создание договора с предустановленными сторонами
curl "https://app.salesap.ru/api/v1/contracts" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"contracts",
"attributes":{
"name":"Трудовой договор",
"date":"2019-12-31"
},
"relationships":{
"first-party":{
"data":{
"type":"contacts",
"id":"1"
}
},
"second-party":{
"data":{
"type":"companies",
"id":"1"
}
}
}
}
}
EOF
JSON API type | contracts |
URL | /api/v1/contracts |
Список | GET /api/v1/contracts |
Чтение | GET /api/v1/contracts/{id} |
Создание | POST /api/v1/contracts |
Редактирование | PATCH /api/v1/contracts/{id} |
Удаление | DELETE /api/v1/contracts/{id} |
Атрибуты
Ниже приведен пример формата данных, в реальном ответе будут присутствовать все перечисленные атрибуты
{
"data": {
"type":"contracts",
"id":"1",
"attributes":{
"created-at": "2019-12-11T13:52:36.677+03:00",
"updated-at": "2019-12-11T13:52:36.677+03:00",
"cached-at": "2019-12-11T13:52:36.677+03:00",
"name": "Трудовой договор",
"number": 1,
"custom-number": "1",
"date": "2019-12-11",
"archived-at": null,
"customs":{
"custom-1":"5 собак",
"custom-943":"2016-11-26T12:07:51.572+03:00"
},
"archived-at":null
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string |
Трудовой договор | да | Название договора |
number | integer |
16 | да | Номер договора |
custom_number | string |
abc-16 | да | № ручн. |
date | datetime |
2019-11-26 |
да | Дата договора |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
archived-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата архивации |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"contracts",
"id":"1",
"relationships": {
"first-party": {
"links": {
"self": "http://localhost:3000/api/v1/contracts/4/relationships/first-party",
"related": "http://localhost:3000/api/v1/contracts/4/first-party"
}
},
"second-party": {
"links": {
"self": "http://localhost:3000/api/v1/contracts/4/relationships/second-party",
"related": "http://localhost:3000/api/v1/contracts/4/second-party"
}
}
}
}
}
Пример запроса с загруженными компаниями и заявками договора
curl "https://app.salesap.ru/api/v1/contracts?include=companies,orders" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Сторона 1 | first-party | companies , contacts |
Сторона 2 | second-party | companies , contacts |
Создатель | user | users |
Соисполнители | performers | users |
Компании | companies | companies |
Контакты | contacts | contacts |
Сделки | deals | deals |
Заявки | orders | orders |
Объекты недвижимости | estate-properties | estate-properties |
Продукты | products | products |
Вложенные продукты | entities-products | entity-products |
Фильтры
Получить список договоров с определённым номером
curl -G "https://app.salesap.ru/api/v1/contracts" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
discarded-at-gte | Вывести объекты в корзине после указанного времени | filter[discarded-at-gte]=2017.08.01 12:00 |
discarded-at-lte | Вывести объекты в корзине до указанного времени | filter[discarded-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
Сегменты
Создание нового сегмента с привязанными сделками
curl "https://app.salesap.ru/api/v1/segments" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"segments",
"attributes":{
"name":"Сегмент из API"
},
"relationships":{
"deals":{
"data":[{
"type":"deals",
"id":"1"
},{
"type":"deals",
"id":"2"
}]
}
}
}
}
EOF
JSON API type | segments |
URL | /api/v1/segments |
Список | GET /api/v1/segments |
Чтение | GET /api/v1/segments/{id} |
Создание | POST /api/v1/segments |
Редактирование | PATCH /api/v1/segments/{id} |
Удаление | DELETE /api/v1/segments/{id} |
Атрибуты
{
"data": {
"type":"segments",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Сегмент из API",
"due-date": "2021-12-31",
"active": true,
"customs":{
"custom-1":"5 собак",
"custom-943":"2016-11-26T12:07:51.572+03:00"
}
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Сегмент из API | да | Имя сегмента |
due-date | date |
2021-12-31 |
да | Срок действия |
active | boolean |
true | да | Активность |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список источников созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/segments" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
name | Вывести источники с указанным именем | filter[name]=Сайт |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"id": "1",
"type": "segments",
"links": {
"self": "http://app.salesap.ru/api/v1/segments/1"
},
"relationships": {
"company": {
"links": {
"self": "http://app.salesap.ru/api/v1/segments/1/relationships/company",
"related": "http://app.salesap.ru/api/v1/segments/1/company"
}
},
"contact": {
"links": {
"self": "http://app.salesap.ru/api/v1/segments/1/relationships/contact",
"related": "http://app.salesap.ru/api/v1/segments/1/contact"
}
}
}
}
}
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Создатель | user | users |
Соисполнители | performers | users |
Компания | company | companies |
Контакт | contact | contacts |
Сделки | deals | deals |
Задачи | diaries | diaries |
Счета
Пример данных для создания счета с позициями. Обязательно необходимо указать плательщика payer
{
"data":{
"type":"invoices",
"attributes":{
"positions":[
{
"product-id":41922,
"quantity":5,
"amount":300
},
{
"product-id":43329,
"quantity":1
}]
},
"relationships":{
"payer":{
"data":{
"type":"companies",
"id":510571
}
}
}
}
}
JSON API type | invoices |
URL | /api/v1/invoices |
Список | GET /api/v1/invoices |
Чтение | GET /api/v1/invoices/{id} |
Создание | POST /api/v1/invoices |
Редактирование | PATCH /api/v1/invoices/{id} |
Удаление | DELETE /api/v1/invoices/{id} |
Атрибуты
{
"data": {
"type":"invoices",
"id": 1,
"attributes":{
"number": 1112,
"custom-number": 1112,
"amount": "1500.0",
"amount-to-pay": "1500.0",
"due-date": null,
"vat-kind": "without",
"vat-rate": null,
"reason": null,
"issued-at": "2017-09-09T11:50:03.289+03:00",
"vi-date": "2017-09-09T11:50:03.289+03:00",
"torg-12-date": "2017-09-09T11:50:03.289+03:00",
"upd-date": "2017-09-09T11:50:03.289+03:00",
"act-date": "2017-09-09T11:50:03.289+03:00",
"shipping-date": "2017-09-09T11:50:03.289+03:00",
"status": "not_paid",
"balance": "1500.0",
"available_without_signature": true,
"available-docs": ["invoice", "act_invoice"],
"created-at": "2017-09-09T11:50:03.367+03:00",
"updated-at": "2017-09-09T11:50:03.420+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
positions | array |
[{"product-id":41922}] | да | Позиции счета |
number | integer |
345 | да | Номер автоматический |
custom-number | string |
мм.345.пп | да | Номер ручной |
amount | decimal |
1103.0 | да | Сумма счета |
amount-to-pay | decimal |
1000.0 | нет | Сумма с учетом НДС |
vat-kind | string |
without |
да | Тип НДС |
vat-rate | integer |
10 | да | Значение НДС (%) |
due-date | datetime |
да | Срок оплаты | |
issued-at | datetime |
да | Дата проведения счета | |
vi-date | date |
да | Дата СФ | |
torg-12-date | date |
да | Дата ТОРГ-12 | |
upd-date | date |
да | Дата УПД | |
act-date | date |
да | Дата акта | |
shipping-date | date |
да | Дата отгрузки | |
reason | string |
л/с 56123 | да | Основание |
torg_12_reason | string |
Договор № 12345 | да | Основание для ТОРГ-12 |
act_reason | string |
Договор № 54321 | да | Основание для акта вып. работ |
status | string |
not_paid |
нет | Статус |
balance | decimal |
15000.0 | нет | Неоплаченный остаток по счету |
available_without_signature | boolean |
true | да | Отметка о том, имеет ли документ юридическую силу без подписи |
show-discount | boolean |
true | да | Показывать скидку в печатной форме |
show-vendor-code | boolean |
true | да | Показывать артикул в печатной форме |
with-stamp | boolean |
true | да | Подставить печать и подпись в печатную форму |
payment-type | string |
non_cash |
да | Тип платежа. Достустимые значения cash и non_cash |
available-docs | array |
["invoice", "act_invoice"] |
нет | Типы документов, доступных для скачивания |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
Позиции
Допустимые поля для значений массива JSON-объектов атрибута positions.
Поле | Тип | Описание |
---|---|---|
name* | string |
Переопределенное наименование товара |
product_id* | integer |
ID продукта |
quantity | integer |
Количество товара |
amount | decimal |
Сумма позиции |
is-service | boolean |
Товар (false) или услуга (true) |
unit | string |
Единица измерения |
code | code |
Код товара |
* Обязательные поля
Типы НДС
Допустимые значения для атрибута vat-kind
.
Тип НДС | Код |
---|---|
Без НДС | without |
НДС сверху | top |
НДС включен | include |
НДС позиций | positions |
Статусы счетов
Допустимые значения для атрибута status
. Значение поля рассчитывается автоматически на основе платежей и даты окончания, и редактированию не подлежит.
Статус | Код |
---|---|
Частично оплачен | partial |
Частично оплачен с просрочкой | partial_overdue |
Просрочен | overdue |
Не оплачен | not_paid |
Полностью оплачен | paid |
Без позиций | without_positions |
Отменен | cancelled |
Связи
Название | Связь | JSON API type |
---|---|---|
Плательщик* | payer | companies , contacts |
Создатель | user | users |
Сделка | deal | deals |
Заявка | order | orders |
Продукты | products | products |
Позиции | positions | invoice-positions |
Платежи | payments | invoice-payments |
Получатель | org-detail | org-details |
Банк. реквизиты | account-bank-detail | account-bank-details |
Банк. реквизиты компании | company-bank-detail | company-bank-details |
* Обязательная связь
Фильтры
Получить список счетов созданных после указанной даты
curl -G "https://app.salesap.ru/api/v1/invoices/?filter[created-at-gte]=2017.08.01 12:00" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
unpaid | Вывести неоплаченные объекты | filter[unpaid]=1 |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
Получить список счетов за выбранный период
curl -G "https://app.salesap.ru/api/v1/invoices" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[by-period]=week"
Фильтр | Описание | Пример |
---|---|---|
by-period | Вывести счета за период времени | filter[by-period]=week |
Возможные значения:
Описание | Код |
---|---|
Все | all |
За текущий день | day |
За текущую неделю | week |
За текущий месяц | month |
За текущий квартал | quarter |
За текущий год | year |
Получить список счетов с определенным статусом
curl -G "https://app.salesap.ru/api/v1/invoices" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[by-status]=not_paid"
Фильтр | Описание | Пример |
---|---|---|
by-status | Вывести счета с определенным статусом | filter[by-status]=not_paid |
Банковские реквизиты
Создание банковских реквизитов
curl "https://app.salesap.ru/api/v1/account-bank-details" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"account-bank-details",
"attributes":{
"name":"test",
"kind":"calculated_invoice"
}
}
}
EOF
JSON API type | account-bank-details |
URL | /api/v1/account-bank-details |
Список | GET /api/v1/account-bank-details |
Чтение | GET /api/v1/account-bank-details/{id} |
Создание | POST /api/v1/account-bank-details |
Редактирование | PATCH /api/v1/account-bank-details/{id} |
Удаление | DELETE /api/v1/account-bank-details/{id} |
Атрибуты
{
"data":{
"id": "1",
"type": "account-bank-details",
"attributes":{
"created-at": "2017-09-04T12:48:33.114+03:00",
"updated-at": "2017-09-04T12:48:33.114+03:00",
"as-string": "КАЛУЖСКОЕ ОТДЕЛЕНИЕ N8608 ПАО СБЕРБАНК",
"name": "КАЛУЖСКОЕ ОТДЕЛЕНИЕ N8608 ПАО СБЕРБАНК",
"bank-name": "СБЕРБАНК РОССИИ КАЛУЖСКОЕ ОТДЕЛЕНИЕ № 8608",
"bik": "042908612",
"corr-number": "12345678900000000000",
"number": "12345678900000000000",
"is-default": true,
"active": true,
"kind": "calculated_invoice"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Мой статус | да | Название набора реквизитов |
kind* | string |
cashbox |
да | Тип реквизитов (cashbox - касса, calculated_invoice - р/счет) |
as-string | string |
Реквизиты | нет | Строковое представление объекта |
bank-name | string |
Sberbank | да | Имя банка |
bik | string |
11239393 | да | БИК банка |
corr-number | string |
1234566788888 | да | Корр. счет |
number | string |
1234567890987 | да | Номер счета |
is-default | boolean |
true |
да | Основные реквизиты? |
active | boolean |
true |
да | Активность счета |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры банковских реквизитов
Получить список банковских реквизитов, созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/account-bank-details" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести банковские реквизиты созданные в системе после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести банковские реквизиты созданные в системе до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести банковские реквизиты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести банковские реквизиты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
number | Вывести банковские реквизиты по номеру счета | filter[number]=12345678900000000000 |
bik | Вывести банковские реквизиты по БИК банка | filter[bik]=042908612 |
Юридические лица аккаунта
Создание юридических лиц
curl "https://app.salesap.ru/api/v1/org-details" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"org-details",
"attributes":{
"short-name":"test"
}
}
}
EOF
JSON API type | org-details |
URL | /api/v1/org-details |
Список | GET /api/v1/org-details |
Чтение | GET /api/v1/org-details/{id} |
Создание | POST /api/v1/org-details |
Редактирование | PATCH /api/v1/org-details/{id} |
Удаление | DELETE /api/v1/org-details/{id} |
Атрибуты
{
"data":{
"id": "1",
"type": "org-details",
"attributes":{
"created-at": "2017-09-04T12:48:33.114+03:00",
"updated-at": "2017-09-04T12:48:33.114+03:00",
"short-name": "ООО Рога и копыта",
"full-name": "Общество с ограниченной ответственность Рога и копыта",
"website": "comany-site.com"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
short-name* | string |
ООО Рога и копыта | да | Сокращенное название |
full-name | string |
ООО Рога и копыта | да | Название полное |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
website | string |
comany-site.com | да | Вебсайт компании |
* Обязательные поля
Позиции счета
Пример данных для создания позиции счета. Обязательно необходимо указать счет
invoice
, связь сproduct
является опциональной, если он не будет передан, то необходимо, чтобы были педераны атрибутыinvoice-position
, такие как:name
*,quantity
,amount
,code
,is-service
,unit
,discount
{
"data":{
"type":"invoice-positions",
"attributes":{
"quantity":10,
"amount":535.5,
"discount":10
},
"relationships":{
"product":{
"data":{
"type":"products",
"id":1
}
},
"invoice":{
"data":{
"type":"invoices",
"id":231
}
}
}
}
}
JSON API type | invoice-positions |
URL | /api/v1/invoice-positions |
Список | GET /api/v1/invoice-positions |
Чтение | GET /api/v1/invoice-positions/{id} |
Создание | POST /api/v1/invoice-positions |
Редактирование | PATCH /api/v1/invoice-positions/{id} |
Удаление | DELETE /api/v1/invoice-positions/{id} |
Атрибуты
{
"data": {
"type":"invoice-positions",
"id": 1,
"attributes":{
"created-at": "2021-05-05T14:12:54.175+03:00",
"updated-at": "2021-05-05T14:12:54.175+03:00",
"cached-at": "2021-05-05T14:12:54.175+03:00",
"name": "Колеса 19 радиус",
"quantity": "2.0",
"amount": "500.0",
"unit": "",
"is-service": false,
"code": "",
"discount": "0.0",
"vendor-code": "SDA12",
"vat": "20.0",
"discount-amount": "0.0",
"result-vat": "0.0",
"amount-with-discount": "1000.0",
"result-amount": "1000.0"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string |
Товар | да | Переопределенное наименование товара |
quantity | integer |
5 | да | Количество товара |
discount | decimal |
10.0 | да | Скидка на товар (в процентах) |
discount-amount | decimal |
110.3 | нет | Сумма скидки |
amount | decimal |
1103.0 | да | Сумма позиции |
amount-with-discount | decimal |
992,7 | нет | Сумма позиции с учетом скидки |
result-vat | decimal |
0.0 | нет | Сумма НДС |
result-amount | decimal |
992,7 | нет | Итоговая сумма позиции (с учетом скидки и НДС) |
is-service | boolean |
false | да | Товар (false) или услуга (true) |
unit | string |
'шт' | да | Единица измерения |
code | string |
'123123' | да | Код товара |
vendor-code | string |
'123123' | да | Артикул |
vat | decimal |
'20.0' | да | НДС |
Связи
Загрузка позиций по определенному счету (id = 100)
curl "https://app.salesap.ru/api/v1/invoices/100/relationships/positions" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Название | Связь | JSON API type |
---|---|---|
Счет | invoice | invoices |
Продукт | product | products |
Платежи
Пример данных для создания платежа с типом "Приход" и привязкой к сделке. Указываем плательщика (payer), счет получателя (receiver-bank-detail) и счет (invoice), на основании которого происходит операция.
{
"data":{
"type":"invoice-payments",
"attributes":{
"direction":"income",
"amount":10.0,
"operation-created-at":"18.09.2017 13:45"
},
"relationships":{
"deal": {
"data": {
"type":"deals",
"id":175905
}
},
"payer":{
"data":{
"type":"companies",
"id":510571
}
},
"receiver-bank-detail":{
"data":{
"type":"account-bank-details",
"id":12
}
},
"invoice":{
"data":{
"type":"invoices",
"id":4128
}
}
}
}
}
Пример данных для создания платежа с типом "Расход" и привязкой к сделке. Указываем получателя (receiver), счет получателя (receiver-bank-detail) и счет (invoice), на основании которого происходит операция.
{
"data":{
"type":"invoice-payments",
"attributes":{
"direction":"outcome",
"amount":10.0,
"operation-created-at":"18.09.2017 13:45"
},
"relationships":{
"deal": {
"data": {
"type":"deals",
"id":175905
}
},
"receiver":{
"data":{
"type":"companies",
"id":510571
}
},
"payer-bank-detail":{
"data":{
"type":"account-bank-details",
"id":12
}
},
"invoice":{
"data":{
"type":"invoices",
"id":4128
}
}
}
}
}
Пример данных для создания платежа с типом "Перевод". Указываем с какого счета (payer-bank-detail) на какой счет (receiver-bank-detail) происходит перевод.
{
"data":{
"type":"invoice-payments",
"attributes":{
"direction":"transfer",
"amount":10.0,
"operation-created-at":"18.09.2017 13:45"
},
"relationships":{
"payer-bank-detail":{
"data":{
"type":"account-bank-details",
"id":75
}
},
"receiver-bank-detail":{
"data":{
"type":"account-bank-details",
"id":12
}
}
}
}
}
JSON API type | invoice-payments |
URL | /api/v1/invoice-payments |
Список | GET /api/v1/invoice-payments |
Чтение | GET /api/v1/invoice-payments/{id} |
Создание | POST /api/v1/invoice-payments |
Редактирование | PATCH /api/v1/invoice-payments/{id} |
Удаление | DELETE /api/v1/invoice-payments/{id} |
Атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
as-string | string |
345, 1103.0 | нет | Строковое представление объекта |
number | integer |
345 | нет | Номер автоматический |
custom-number | string |
мм.345.пп | да | Номер ручной |
amount | decimal |
1103.0 | да | Сумма счета |
purpose | string |
Счет №23 | да | Назначение |
operation-created-at* | datetime |
да | Когда | |
operation-accounted-at | datetime |
да | Учесть в | |
operation-executed-at | datetime |
нет | Проведено | |
operation-canceled-at | datetime |
нет | Отменено | |
description | string |
от Петра | да | Комментарий |
direction | string |
income |
да (создание) | Тип |
status | string |
canceled |
да | Статус платежа |
payment-type | string |
non_cash |
да | Тип платежа. Достустимые значения cash и non_cash |
customs | hash |
{"custom-1":'custom value'} |
да | Свои поля |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
* Обязательные поля
Статусы платежей
Название | Код |
---|---|
Исходящий, ожидающий исполнения | send_to_bank |
Проведен | executed |
Не проведен | not_executed |
Запланирован | planned |
Отменен | canceled |
Неизвестный | unknown |
Просрочен | overdue |
В обработке | process |
Типы платежей
Название | Код |
---|---|
Приход | income |
Расход | outcome |
Перевод | transfer |
Правила создания платежа
В платежах с типом "Приход" (income) контрагентом является Плательщик (payer). Так же необходимо указать банковские реквизиты получателя (receiver-bank-detail).
В платежах с типом "Расход" (outcome) контрагентом является Получатель (receiver).
В платежах с типом "Перевод" (transfer) необходимо указать счет отправителя (payer-bank-detail) и счет получателя (receiver-bank-detail).
Фильтры
Получить список платежей, созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/invoice-payments" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести платежи созданные в системе после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести платежи созданные в системе до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести платежи обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести платежи обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
operation-created-at-gte | Вывести платежи сформированные после указанного времени | filter[operation-created-at-gte]=2017.08.01 12:00 |
operation-created-at-lte | Вывести платежи сформированные до указанного времени | filter[operation-created-at-lte]=2017.08.01 12:00 |
operation-accounted-at-gte | Вывести платежи учтённые после указанного времени | filter[operation-accounted-at-gte]=2017.08.01 12:00 |
operation-accounted-at-lte | Вывести платежи учтённые до указанного времени | filter[operation-accounted-at-lte]=2017.08.01 12:00 |
operation-executed-at-gte | Вывести платежи исполненные после указанного времени | filter[operation-executed-at-gte]=2017.08.01 12:00 |
operation-executed-at-lte | Вывести платежи исполненные до указанного времени | filter[operation-executed-at-lte]=2017.08.01 12:00 |
archived | Вывести объекты в архиве | filter[archived]=1 |
discarded | Вывести объекты в корзине | filter[discarded]=1 |
actual | Вывести актуальные объекты | filter[actual]=1 |
Получить список платежей определенной сущности
curl -G "https://app.salesap.ru/api/v1/invoice-payments" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[by-deal]=1"
Фильтр | Описание | Пример |
---|---|---|
by-contact-id | Вывести платежи по контакту с определенным id | filter[by-contact-id]=1 |
by-company-id | Вывести платежи по компании с определенным id | filter[by-company-id]=1 |
by-deal-id | Вывести платежи по сделке с определенным id | filter[by-deal-id]=1 |
by-order-id | Вывести платежи по заявке с определенным id | filter[by-order-id]=1 |
by-entry-id | Вывести платежи по записи с определенным id | filter[by-entry-id]=1 |
by-kkm-operation-id | Вывести платежи по кассовой операции с определенным id | filter[by-kkm-operation-id]=1 |
by-contract-id | Вывести платежи по договору с определенным id | filter[by-contract-id]=1 |
by-contact-group-id | Вывести платежи по группе с определенным id | filter[by-contact-group-id]=1 |
Получить список платежей определенных типов
curl -G "https://app.salesap.ru/api/v1/invoice-payments" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[direction]=income,outcome"
Фильтр | Описание | Пример |
---|---|---|
direction | Вывести платежи определенных типов | filter[direction]=income |
Получить список платежей за выбранный период
curl -G "https://app.salesap.ru/api/v1/invoice-payments" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[by-period]=week"
Фильтр | Описание | Пример |
---|---|---|
by-period | Вывести платежи за период времени | filter[by-period]=week |
Возможные значения:
Описание | Код |
---|---|
Все | all |
За текущий день | day |
За текущую неделю | week |
За текущий месяц | month |
За текущий квартал | quarter |
За текущий год | year |
Связи
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Сделка | deal | deals |
Заявка | order | orders |
Плательщик | payer | companies , contacts |
Получатель | receiver | companies , contacts |
Счет | invoice | invoices |
Статья операции | invoice-payment-category | invoice-payment-categories |
Банк. реквизиты | account-bank-detail | account-bank-details |
Банк. реквизиты компании | company-bank-detail | company-bank-details |
Со счета | payer-bank-detail | company-bank-details , account-bank-details |
На счет | receiver-bank-detail | company-bank-details , account-bank-details |
Справочники
Получить список этапов сделок
curl "https://app.salesap.ru/api/v1/deal-stages" -H "Authorization: Bearer api_token"
Добавить новый источник
curl "https://app.salesap.ru/api/v1/sources" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"sources",
"attributes":{
"name":"Новый источник"
}
}
}
EOF
Справочник | JSON API type |
---|---|
Источники | sources |
Территории | areas |
Категории своих полей | custom-field-categories |
Свои поля | custom-fields |
Продукты | products |
Конкуренты | competitors |
Статусы компаний | company-statuses |
Типы компаний | company-types |
Воронки сделок | deal-stage-categories |
Этапы сделок | deal-stages |
Статусы сделок | deal-statuses |
Причины поражения сделок | deal-loss-reasons |
Типы задач | diary-types |
Этапы заявок | order-stages |
Статусы заявок | order-statuses |
Склады | stores |
Причины поражения заявок | order-loss-reasons |
Скидки | product-discounts |
Типы продкутов | product-types |
Статусы продуктов | product-statuses |
Категории продуктов | product-categories |
Статусы телефонии | telephony-statuses |
Статьи операций | invoice-payment-categories |
Группы пользователей | user-groups |
Должности пользователей | work-positions |
Дополнительные роли | custom-roles |
Категории документа | document-template-categories |
Метки задач | labels |
Запросы к справочникам имеют следующий формат:
URL | /api/v1/{json_api_type} |
Список | GET /api/v1/{json_api_type} |
Чтение | GET /api/v1/{json_api_type}/{id} |
Создание | POST /api/v1/{json_api_type} |
Редактирование | PATCH /api/v1/{json_api_type}/{id} |
Удаление | DELETE /api/v1/{json_api_type}/{id} |
Территории
Создание новой территории
curl "https://app.salesap.ru/api/v1/areas" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"areas",
"attributes":{
"name":"Саратов"
}
}
}
EOF
Создание новой территории с привязанными сотрудниками
curl "https://app.salesap.ru/api/v1/areas" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"areas",
"attributes":{
"name":"Красноярск"
},
"relationships":{
"users":{
"data":[{
"type":"users",
"id":"1"
},{
"type":"users",
"id":"2"
}]
}
}
}
}
EOF
JSON API type | areas |
URL | /api/v1/areas |
Список | GET /api/v1/areas |
Чтение | GET /api/v1/areas/{id} |
Создание | POST /api/v1/areas |
Редактирование | PATCH /api/v1/areas/{id} |
Удаление | DELETE /api/v1/areas/{id} |
Атрибуты
{
"data": {
"type":"areas",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Офис на Ленина"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Первый кабинет | да | Имя территории |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список территорий созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/areas" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Конкуренты
Создание нового конкурента
curl "https://app.salesap.ru/api/v1/competitors" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"competitors",
"attributes":{
"name":"Конкурент из API",
"description":"ООО \"Рога и копыта\""
}
}
}
EOF
JSON API type | competitors |
URL | /api/v1/competitors |
Список | GET /api/v1/competitors |
Чтение | GET /api/v1/competitors/{id} |
Создание | POST /api/v1/competitors |
Редактирование | PATCH /api/v1/competitors/{id} |
Удаление | DELETE /api/v1/competitors/{id} |
Атрибуты
{
"data": {
"type":"competitors",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Конкурент из API",
"description": "ООО \"Рога и копыта\""
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
ООО "Копыта" | да | Имя конкурента |
description | string |
Коллекторское агенство | да | Описание конкурента |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список конкурентов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/competitors" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Константы
Создание новой константы
curl "https://app.salesap.ru/api/v1/constants" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"constants",
"attributes":{
"name": "ID должностей (через запятую)",
"value":"38,39,41",
"numeric":false
},
"relationships": {
"category": {
"data": {
"type": "constant-categories",
"id": "1"
}
}
}
}
}
EOF
JSON API type | constants |
URL | /api/v1/constants |
Список | GET /api/v1/constants |
Чтение | GET /api/v1/constants/{id} |
Создание | POST /api/v1/constants |
Редактирование | PATCH /api/v1/constants/{id} |
Удаление | DELETE /api/v1/constants/{id} |
Атрибуты
Пример данных
{
"data": {
"id": "1",
"type": "constants",
"attributes": {
"name": "ID должностей (через запятую)",
"value":"38,39,41",
"numeric":false
},
"relationships": {
"category": {
"data": {
"type": "constant-categories",
"id": "1"
}
}
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
ID должностей (через запятую) | да | Название |
value | string |
38,39,41 | да | Значение |
numeric | boolean |
false | да | Числовое значение |
* Обязательные поля
Связи
Пример данных
{
"data": {
"id": "1",
"type": "constants",
"relationships": {
"category": {
"links": {
"self": "/api/v1/constants/1/relationships/category",
"related": "/api/v1/constants/1/category"
},
"data": {
"type": "constant-categories",
"id": "1"
}
}
}
}
}
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Категория константы | category | constant-categories |
Категории констант
Создание категории констант
curl "https://app.salesap.ru/api/v1/constant-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"constant-categories",
"attributes":{
"name":"Категория констант"
}
}
}
EOF
JSON API type | constant-categories |
URL | /api/v1/constant-categories |
Список | GET /api/v1/constant-categories |
Чтение | GET /api/v1/constant-categories/{id} |
Создание | POST /api/v1/constant-categories |
Редактирование | PATCH /api/v1/constant-categories/{id} |
Удаление | DELETE /api/v1/constant-categories/{id} |
Атрибуты
{
"data": {
"id": "1",
"type": "constant-categories",
"links": {
"self": "https://app.salesap.ru/api/v1/constant-categories/37"
},
"attributes": {
"created-at":"2022-09-26T12:07:51.572+03:00",
"updated-at":"2022-09-26T12:07:51.572+03:00",
"name": "Категория констант"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Категория констант | да | Название |
created-at | datetime |
2022-09-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2022-09-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Категории своих полей
Создание категории своих полей
curl "https://app.salesap.ru/api/v1/custom-field-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"custom-field-categories",
"attributes":{
"class-name":"Order",
"name":"Категория полей из API"
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "custom-field-categories",
"links": {
"self": "https://app.salesap.ru/api/v1/custom-field-categories/37"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name": "Категория полей из API",
"class-name": "Order",
"position": 1
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
День рождения | да | Название |
class-name* | string |
TelephonyCall |
да | Класс объекта |
* Обязательные поля
Ограничения по значениям
Аттрибут | Варианты |
---|---|
class-name | Company , Contact , Deal , Order , User , Product , TelephonyCall |
Фильтры
Получить список категорий своих полей созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/custom-field-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
class-name | Вывести объекты по определенному классу | filter[class-name]=Deal |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Свои поля
Создание поля с предустановленной категорией своих полей
curl "https://app.salesap.ru/api/v1/custom-fields" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"custom-fields",
"attributes":{
"required": false,
"resource-name": "deals",
"field-type": "text",
"name":"Своё поле из API"
},
"relationships":{
"custom-field-category":{
"data":{
"type":"custom-fields-categories",
"id":"1"
}
}
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "custom-fields",
"links": {
"self": "https://app.salesap.ru/api/v1/custom-fields/1"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name": "Порода коровы",
"required": false,
"resource-name": "deals",
"field-type": "text",
"attribute-name": "custom-1",
"params": {
"acts_like":"text"
}
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
День рождения | да | Название |
resource-name* | string |
deals |
да | Расширяемый ресурс |
field-type* | string |
text |
да | Тип поля |
required | boolean |
true | да | Обязательное поле |
attribute-name | string |
custom-2 |
нет | Имя аттрибута для JSON API |
params | object |
{ "options": ["Пункт 1", "Пункт 2"] } | нет | Дополнительные параметры поля |
select-options | array |
[ "Пункт 1", "Пункт 2" ] | да | Атрибут для установки вариантов селекта (только у field-type select и только при создании и обновлении) |
tree-options | array |
[ { "name": "test", "childs": [] } ] | да | Дерево (только у field-type tree ). Доступны также через отдельный ресурс |
* Обязательные поля
Ограничения по значениям
Аттрибут | Варианты |
---|---|
resource-name | contacts , companies , deals , diaries , orders , products , telephony-calls , users |
field-type | text , date , number , select , tree |
Фильтры
Получить список своих полей для сделок
curl "https://app.salesap.ru/api/v1/custom-fields" \
-X GET \
-H "Authorization: Bearer api_token" \
-d "filter[resources]=deals"
Фильтр | Описание | Пример |
---|---|---|
resources | Вывести поля по определенному resource-name |
filter[resources]=deals |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Параметры дерева
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
id | integer |
23 | нет | Системный идентификатор узла дерева |
name* | string |
`Узел** | да | Текст узла |
childs* | object |
[{"name":"test", "childs":[]}] | Дочерние узлы дерева |
* Обязательные поля
Обноление своего поля с типом список и двумя пунктами
curl "https://app.salesap.ru/api/v1/custom-fields" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"custom-fields",
"attributes":{
"required": false,
"resource-name": "deals",
"field-type": "select",
"name":"Своё поле из API",
"select-options": [
"Пункт 1",
"Пункт 2"
]
},
"relationships":{
"custom-field-category":{
"data":{
"type":"custom-fields-categories",
"id":"1"
}
}
}
}
}
Создание своего поля с типом дерево. Каждому пункту будет присвоен
curl "https://app.salesap.ru/api/v1/custom-fields" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"custom-fields",
"attributes":{
"required": false,
"resource-name": "deals",
"field-type": "tree",
"name":"Своё поле из API",
"tree-options": [
{
"name": "Первый узел",
"childs": [
{
"name": "Вложенный узел",
"childs": []
}
]
}
]
},
"relationships":{
"custom-field-category":{
"data":{
"type":"custom-fields-categories",
"id":"1"
}
}
}
}
}
EOF
Обноление своего поля с типом дерево
curl "https://app.salesap.ru/api/v1/custom-fields" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"custom-fields",
"attributes":{
"required": false,
"resource-name": "deals",
"field-type": "tree",
"name":"Своё поле из API",
"tree-options": [
{
"id": 20
"name": "Первый узел",
"childs": [
{
"id": 21
"name": "Переименованный узел",
"childs": []
}
]
}
]
},
"relationships":{
"custom-field-category":{
"data":{
"type":"custom-fields-categories",
"id":"1"
}
}
}
}
}
Пункты списка своего поля типа "Дерево"
Создание нового пункта для определённого своего поля
curl "https://app.salesap.ru/api/v1/custom-field-options" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"custom-field-options",
"attributes":{
"name":"Пункт из API",
"weight": 10
},
"relationships":{
"custom-field":{
"data":{
"type":"custom-fields",
"id":"1"
}
}
}
}
}
EOF
Создание нового пункта для определённого своего поля с предустановленным родительским пунктом
curl "https://app.salesap.ru/api/v1/custom-field-options" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"custom-field-options",
"attributes":{
"name":"Пункт из API"
},
"relationships":{
"custom-field":{
"data":{
"type":"custom-fields",
"id":"1"
}
},
"parent":{
"data": {
"type":"custom-field-options",
"id":"1"
}
}
}
}
}
EOF
Перенос пункта от одного родителя другому
curl "https://app.salesap.ru/api/v1/custom-field-options/2" \
-X PATCH \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"id":"2"
"type":"custom-field-options",
"relationships":{
"custom-field":{
"data":{
"type":"custom-fields",
"id":"1"
}
},
"parent":{
"data": {
"type":"custom-field-options",
"id":"1"
}
}
}
}
}
EOF
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Пункт | да | Название |
weight | decimal |
10.5 | да | Число |
* Обязательные поля
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"custom-field-options",
"id":"1",
"relationships":{
"parent":{
"links":{
"self":"/api/v1/diary-events/1/relationships/parent",
"related":"/api/v1/diary-events/1/parent"
}
},
"custom-field":{
"links":{
"self":"/api/v1/diary-events/1/relationships/custom-field",
"related":"/api/v1/diary-events/1/custom-field"
}
}
}
}
}
Пример запроса с загруженными типами задачи и отвественными
curl "https://app.salesap.ru/api/v1/custom-field-options?include=parent" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Своё поле | custom-field | custom-fields |
Родительский пункт | parent | custom-field-options |
Дочерние пункты | children | custom-field-options |
Поддерево | subtree | custom-field-options |
Фильтры
Получить список своих полей для сделок
curl "https://app.salesap.ru/api/v1/custom-field-options" \
-X GET \
-H "Authorization: Bearer api_token" \
-d "filter[custom-field-id]=123"
Фильтр | Описание | Пример |
---|---|---|
custom-field-id | Вывести поля по определенному идентификтору своего поля | filter[custom-field-id]=deals |
Визиты Roistat
Создание нового идентификатора визита Roistat с привязанной сделкой к нему
curl "https://app.salesap.ru/api/v1/roistat-relations" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"roistat-relations",
"attributes":{
"roistat-visit":"10101",
},
"relationships":{
"account": {
"data": {
"id": 123,
"type": "roistat-accounts"
}
},
"entity": {
"data": {
"id": 123,
"type": "deals"
}
}
}
}
}
EOF
JSON API type | roistat-relations |
URL | /api/v1/roistat-relations |
Список | GET /api/v1/roistat-relations |
Чтение | GET /api/v1/roistat-relations/{id} |
Создание | POST /api/v1/roistat-relations |
Редактирование | PATCH /api/v1/roistat-relations/{id} |
Удаление | DELETE /api/v1/roistat-relations/{id} |
Атрибуты
{
"data": {
"type":"roistat-relations",
"id":"1",
"attributes":{
"roistat-visit": "1234"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
roistat-visit* | string |
Идентификатор визита Roistat | да | Идентификатор присвоенный объекту, передаётся в Roistat |
* Обязательные поля
Связи
Пример запроса с загруженным объектом
curl "https://app.salesap.ru/api/v1/contacts?include=entity" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Интеграция с Roistat | account | roistat-accounts |
Объект | entity | deals , orders , telephony-calls , contacts |
* Связи являются обязательными для создания и обновления
Фильтры
Получить список визитов созданных со звонком
curl -G "https://app.salesap.ru/api/v1/roistat-relations" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[entity-type]=telephony-calls"
Фильтр | Описание | Пример |
---|---|---|
roistat-account-id | Вывести объекты по определенному идентификатору интеграции с Roistat | filter[roistat-account-id]=123 |
entity-type | Вывести объекты по определенному entity-type |
filter[entity-type]=deals |
entity-id | Вывести объекты по определенному entity-id |
filter[entity-id]=123 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Источники
Создание нового источника
curl "https://app.salesap.ru/api/v1/sources" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"sources",
"attributes":{
"name":"Источник из API"
}
}
}
EOF
JSON API type | sources |
URL | /api/v1/sources |
Список | GET /api/v1/sources |
Чтение | GET /api/v1/sources/{id} |
Создание | POST /api/v1/sources |
Редактирование | PATCH /api/v1/sources/{id} |
Удаление | DELETE /api/v1/sources/{id} |
Атрибуты
{
"data": {
"type":"sources",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "E-Mail рассылка"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Холодные звонки | да | Имя источника |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Ограничения по значениям
Аттрибут | Варианты |
---|---|
type | per_lead , flat_fee |
Фильтры
Получить список источников созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/sources" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
name | Вывести источники с указанным именем | filter[name]=Сайт |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Должности
Создание новой должности
curl "https://app.salesap.ru/api/v1/work-positions" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"work-positions",
"attributes":{
"name":"Менеджер"
}
}
}
EOF
JSON API type | work-positions |
URL | /api/v1/work-positions |
Список | GET /api/v1/work-positions |
Чтение | GET /api/v1/work-positions/{id} |
Создание | POST /api/v1/work-positions |
Редактирование | PATCH /api/v1/work-positions/{id} |
Удаление | DELETE /api/v1/work-positions/{id} |
Атрибуты
{
"data": {
"type":"work-positions",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Менеджер"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Менеджер | да | Название должности |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список должностей созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/areas" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Статьи операций
Создание новой статьи операции
curl "https://app.salesap.ru/api/v1/invoice-payment-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"invoice-payment-categories",
"attributes":{
"name":"Статья операции из API",
"kind":"income"
}
}
}
EOF
JSON API type | invoice-payment-categories |
URL | /api/v1/invoice-payment-categories |
Список | GET /api/v1/invoice-payment-categories |
Чтение | GET /api/v1/invoice-payment-categories/{id} |
Создание | POST /api/v1/invoice-payment-categories |
Редактирование | PATCH /api/v1/invoice-payment-categories/{id} |
Удаление | DELETE /api/v1/invoice-payment-categories/{id} |
Атрибуты
{
"data": {
"type":"invoice-payment-categories",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Абонентская плата",
"kind": "outcome"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Холодные звонки | да | Имя статьи операции |
kind* | string |
income | да | Тип статьи операции. Может быть только трёх значений: income , outcome и transfer |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статей операций созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/invoice-payment-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Метки задач
Создание новой метки
curl "https://app.salesap.ru/api/v1/labels" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"labels",
"attributes":{
"name":"Метка задачи",
"color":"#266ca6",
"kind":"diaries"
}
}
}
EOF
JSON API type | labels |
URL | /api/v1/labels |
Список | GET /api/v1/labels |
Чтение | GET /api/v1/labels/{id} |
Создание | POST /api/v1/labels |
Редактирование | PATCH /api/v1/labels/{id} |
Удаление | DELETE /api/v1/labels/{id} |
Атрибуты
{
"data": {
"type":"labels",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name":"Метка задачи",
"color":"#266ca6",
"kind":"diaries"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Метка задачи | да | Имя метки |
color | string |
#266ca6 | да | Цвет метки |
kind | string |
diaries | да | Объект метки |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Ограничения по значениям
Аттрибут | Варианты |
---|---|
kind | diaries |
Фильтры
Получить список меток созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/labels" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
name | Вывести метки с указанным именем | filter[name]=Метка задачи |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Пользователи
Обновление номера телефона
curl "https://app.salesap.ru/api/v1/users/10" \
-X PATCH \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"id": 10,
"type":"users",
"attributes":{
"phone":"+77054310114"
}
}
}
EOF
JSON API type | users |
URL | /api/v1/users |
Список | GET /api/v1/users |
Чтение | GET /api/v1/users/{id} |
Создание | POST /api/v1/users |
Редактирование | PATCH /api/v1/users/{id} |
Атрибуты
{
"data": {
"id": "1",
"type": "users",
"attributes": {
"created-at": "2015-12-02T13:00:30.637+03:00",
"updated-at": "2020-05-18T14:41:07.167+03:00",
"cached-at": "2020-05-26T11:13:59.559+03:00",
"email": "support@test.com",
"first-name": "Андрей",
"last-name": "Петров",
"middle-name": "",
"phone": "+79990000000",
"custom-fields":{},
"mail-signature": "",
"rights-config":{
"edit-menu": true,
"manage-articles": false,
"edit-mail-accounts": false,
"allow-work-with-kkm": false,
"edit-entity-columns": true,
"edit-entity-widgets": true,
"allow-manual-dialing": true,
"manage-work-schedules": true,
"edit-entity-nested-forms": true,
"edit-notification-settings": true,
"manage-irresponsible-entity": false,
"allow-cancel-completed-tasks": true
},
"disabled": false,
"role": "executive",
"avatar": "https://example.com/test.png",
"last-sign-in-at": "2020-05-14T14:03:47.542+03:00",
"current-sign-in-at": "2020-05-18T14:41:07.100+03:00",
"unconfirmed-email": null,
"web-form-token": "6abcff2aa1eea0f899e741a63a3d92a1",
"time-zone": "Europe/Moscow",
"locale": "ru",
"online": false,
"work-time-status":"true",
"account-id": 2
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
first-name | string |
Иван |
да | Имя |
last-name | string |
Иванов |
да | Фамилия |
middle-name | string |
Иванович |
да | Отчество |
string |
test@mail.ru |
да | ||
password | string |
strongpswd |
да | Пароль (обязателен при создании пользователя) |
phone | string |
+5627508253 |
да | Телефон |
mail-signature | string |
С уважением |
да | Подпись при отправке письма |
rights-config | json |
да | Дополнительные права пользователя | |
disabled | boolean |
true |
да | Статус актиности пользователя |
role | string |
basic , manager , executive |
да | Основная роль пользователя |
avatar | string |
https://example.com/link/to/avatar.png |
нет | Аватар пользователя |
last-sign-in-at | datetime |
нет | Дата предыдущей авторизации | |
current-sign-in-at | datetime |
нет | Дата текущей авторизации | |
unconfirmed-email | string |
changed@email.com |
нет | Неподтвержденный адрес email |
web-form-token | string |
12345beaf |
нет | Токен для создания вебформы |
time-zone | string |
Tokyo |
нет | Временная зона в формате tzdata |
locale | string |
ru , en |
нет | Язык интерфейса системы |
online | boolean |
true |
нет | Онлайн-статус (работает ли пользователь сейчас в системе?) |
notification-settings | json |
нет | Настройки уведомлений пользователя | |
work-time-status | boolean |
true , false |
нет | Рабочая сессия |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
rights-config (Дополнительные права)
Запретим пользователю вводить номер телефона вручную
curl "https://app.salesap.ru/api/v1/users/10" \
-X PATCH \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"id": 10,
"type":"users",
"attributes":{
"rights-config":{
"allow-manual-dialing": false
}
}
}
}
EOF
Название | Описание |
---|---|
edit-menu | Может ли пользователь редактировать видимость и порядок элементов меню |
manage-articles | Возможность редактировать базу знаний |
edit-mail-accounts | Внесение изменений в настройки почтовых аккаунтов |
allow-work-with-kkm | Разрешить работать с онлайн-кассами (ККМ) |
edit-entity-columns | Разрешить менять видимость колонок в таблицах объектов |
edit-entity-widgets | Разрешить менять видимость виджетов в карточках объектов |
allow-manual-dialing | Разрешить вводить номер телефона вручную (при совершении звонка) |
manage-work-schedules | Управление рабочим графиком |
edit-entity-nested-forms | Редактирование полей в форме для вложенных объектов |
edit-notification-settings | Редактирование параметров оповещений |
manage-irresponsible-entity | Управлять сущностями без ответственных юзеров |
allow-cancel-completed-tasks | Разрешить отмену завершенных задач |
Связи
Пример данных
{
"data": {
"type":"users",
"id":"1",
"relationships":{
"custom-role":{
"links":{
"self":"/api/v1/users/1/relationships/custom-role",
"related":"/api/v1/users/1/custom-role"
}
},
"work-position":{
"links":{
"self":"/api/v1/users/1/relationships/work-position",
"related":"/api/v1/users/1/work-position"
}
}
}
}
}
Назчение пользователю новой дополнительной роли
curl "https://app.salesap.ru/api/v1/users/10" \
-X PATCH \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"id": 10,
"type":"users",
"relationships":{
"custom-role":{
"data":{
"type":"custom-roles",
"id":1
}
}
}
}
}
EOF
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Дополнительная роль | custom-role | custom-roles |
Должность | work-position | work-positions |
Группа | user-group | user-groups |
Фильтры
Получить список сотрудников по активной рабочей сессии
curl -G "https://app.salesap.ru/api/v1/users/?filter[work-time-status]=active" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
work-time-status | Вывести объекты по рабочей сессии | filter[work-time-status]=active , filter[work-time-status]=inactive |
Вебхуки
Раздел системы: Настройки -> Автоматизации -> Сценарии
С помощью вебхуков вы можете отправить информацию об объекте автоматизации на указанный адрес.
Объектом автоматизации может быть сделка, заявка, почтовое сообщение, компания или контакт.
Валидация подписи
Если вы хотите убедиться, что вебхук был отправлен именно сервисом S2, то добавьте секретный ключ в настройках автоматизации по отправке вебхука.
Когда ключ будет выбран, то в headers запроса будет добавлен S2-Signature
, содержащий подпись для отправленного вебхука. Проверить подпись можно по формуле sha256(sha256(body) + key)
.
Структура JSON
{
"type": "Deal",
"timestamp": 1519466739,
"data": {
"id": 1
},
"custom_fields": {
"custom_1": "Свое поле №1"
}
}
Информация об объекте представлена в формате JSON. Каждый объект JSON имеет следующие поля:
type
- тип объекта. может быть Deal, Order, Company, Contact, MailMessage
timestamp
- дата срабатывания автоматизации. Может не совпадать с временем отправки в том
случае если сообщение было отправлено повторно (например, адрес указанный для вебхука
недоступен или возвращает ошибку).
data
- вся информация по объекту
custom_fields
- база данных с сопоставлением имен своих полей и сгенерированных имен системой
Сделки
{
"type": "Deal",
"timestamp": 1519466985,
"data": {
"id": 72738,
"name": "Сделка",
"description": null,
"note": null,
"amount": "0.0",
"cost": "0.0",
"finished_at": null,
"planned_at": null,
"created_at": "02.02.2018 18:36:41",
"updated_at": "02.02.2018 18:36:41",
"invoice_ids": [],
"product_ids": [],
"entities_product_ids": [],
"user_id": 1,
"user": "Andreeeee",
"responsible_id": 1,
"responsible": "Andreeeee",
"stage_id": 1129,
"stage": "База для обзвона",
"stage_category_id": 150,
"stage_category": "Партнеры",
"status_id": 65,
"status": "Без статуса",
"source_id": null,
"source": "",
"area_id": null,
"area": "",
"loss_reason_id": null,
"loss_reason": "",
"loss_competitor_id": null,
"loss_competitor": "",
"company_id": null,
"company": "",
"contact_id": null,
"contact": "",
"custom_5808": [],
"custom_10535": [],
"custom_11906": []
},
"custom_fields": {
"custom_5808": "Маркерt",
"custom_10535": "Куратор ФГ",
"custom_11906": "Тариф"
}
}
Атрибут | Описание |
---|---|
id | ID объекта |
name | Название |
description | Описание |
note | Заметка |
amount | Цена |
cost | Себестоимость |
finished_at | Фактическая дата закрытия |
planned_at | Планируемая дата закрытия |
created_at | Дата создания |
updated_at | Дата последнего обновления |
invoice_ids | Счета |
product_ids | Продукты |
entities_product_ids | Вложенные продукты |
user_id | Создатель (ID) |
user | Создатель (ФИО) |
responsible_id | Ответственный (ID) |
responsible | Ответственный (ФИО) |
stage_id | Этап (ID) |
stage | Этап (название) |
stage_category_id | Воронка (ID) |
stage_category | Воронка (название) |
status_id | Статус (ID) |
status | Статус (название) |
source_id | Источник (ID) |
source | Источник (название) |
area_id | Территория (ID) |
area | Территория (название) |
loss_reason_id | Причина поражения (ID) |
loss_reason | Причина поражения (название) |
loss_competitor_id | Конкурент поражения (ID) |
loss_competitor | Конкурент поражения (название) |
company_id | Компания (ID) |
company | Компания (название) |
contact_id | Контакт (ID) |
contact | Контакт (ФИО) |
custom_{id} | Свои поля |
Заявки
{
"type": "Order",
"timestamp": 1519556577,
"data": {
"id": 45797,
"name": "Api test",
"description": "Api test v 0.1",
"note": null,
"amount": "0.0",
"cost": "0.0",
"created_at": "04.10.2017 19:06:01",
"updated_at": "04.10.2017 19:06:01",
"user_id": 1,
"user": "Andreeeee",
"responsible_id": null,
"responsible": "",
"stage_id": 127,
"stage": "Не обработана",
"stage_category": "",
"stage_category_id": null,
"status_id": 45,
"status": "Без статуса",
"source_id": null,
"source": "",
"area": "",
"area_id": null,
"loss_reason_id": null,
"loss_reason": "",
"loss_competitor_id": null,
"loss_competitor": "",
"company_id": null,
"company": "",
"contact_id": null,
"contact": "",
"custom_26": "",
"custom_27": "",
"custom_130": "",
"custom_12239": []
},
"custom_fields": {
"custom_26": "Сообщение",
"custom_27": "Комп. (партнер)",
"custom_130": "Интересно",
"custom_12239": "Куратор ФГ"
}
}
Атрибут | Описание |
---|---|
id | ID объекта |
name | Название |
description | Описание |
note | Заметка |
amount | Цена |
cost | Себестоимость |
finished_at | Фактическая дата закрытия |
planned_at | Планируемая дата закрытия |
created_at | Дата создания |
updated_at | Дата последнего обновления |
user_id | Создатель (ID) |
user | Создатель (ФИО) |
responsible_id | Ответственный (ID) |
responsible | Ответственный (ФИО) |
stage_id | Этап (ID) |
stage | Этап (название) |
stage_category | Категория этапа (название) |
stage_category_id | Категория этапа (ID) |
status_id | Статус (ID) |
status | Статус (название) |
source_id | Источник (ID) |
source | Источник (название) |
area | Территория (название) |
area_id | Территория (ID) |
loss_reason_id | Причина поражения (ID) |
loss_reason | Причина поражения (название) |
loss_competitor_id | Конкурент поражения (ID) |
loss_competitor | Конкурент поражения (название) |
company_id | Компания (ID) |
company | Компания (название) |
contact_id | Контакт (ID) |
contact | Контакт (ФИО) |
custom_{id} | Свои поля |
Компании
{
"type": "Company",
"timestamp": 1519556956,
"data": {
"id": 43534,
"name": "Conroy-Parker",
"general_phone": null,
"work_phone": "+79001231212",
"other_phone": "+79001231212",
"fax": null,
"email": "e@ma.il",
"other_email": "email@mail.com",
"website": "google.com",
"description": null,
"note": null,
"inn": null,
"full_name": null,
"short_name": null,
"ogrn": null,
"kpp": null,
"okved": null,
"okpo": null,
"manager_name": null,
"manager_position": null,
"lawfulness_base": null,
"accountant": null,
"country": null,
"address": "5th Avenue",
"region": "NY",
"city": "NY, Manhattan",
"street": null,
"house": null,
"flat": null,
"zip_code": "37891-0000",
"juristic_country": null,
"juristic_region": null,
"juristic_city": null,
"juristic_zip_code": null,
"juristic_street": null,
"juristic_house": null,
"juristic_build": null,
"juristic_office": null,
"actual_country": null,
"actual_region": null,
"actual_city": null,
"actual_zip_code": null,
"actual_street": null,
"actual_house": null,
"actual_build": null,
"actual_office": null,
"mailing_country": null,
"mailing_region": null,
"mailing_city": null,
"mailing_zip_code": null,
"mailing_street": null,
"mailing_house": null,
"mailing_build": null,
"mailing_office": null,
"created_at": "26.12.2017 10:30:56",
"updated_at": "26.12.2017 10:30:56",
"user_id": 5851,
"user": "Светочка",
"responsible_id": null,
"responsible": "",
"source_id": null,
"source": "",
"status_id": null,
"status": "",
"type_id": null,
"type": "",
"custom_1": "Только наличными"
},
"custom_fields": {
"custom_1": "Особые отметки"
}
}
Атрибут | Описание |
---|---|
name | Название |
general_phone | Осн. тел. |
work_phone | Раб. тел. |
other_phone | Доп. тел. |
fax | Факс |
other_email | Доп. e-mail |
website | Вебсайт |
description | Описание |
note | Заметка |
inn | ИНН |
full_name | Полн. наименование |
short_name | Сокр. наименование |
ogrn | ОГРН |
kpp | КПП |
okved | ОКВЭД |
okpo | ОКПО |
manager_name | ФИО рук-ля |
manager_position | Должность рук-ля |
lawfulness_base | Правомочность |
accountant | Гл.бухгалтер |
country | Страна |
address | Адрес |
region | Регион |
city | Город |
street | Улица |
house | Дом |
flat | Офис/Квартира |
zip_code | Индекс |
juristic_country | Юр. страна |
juristic_region | Юр. регион |
juristic_city | Юр. город |
juristic_zip_code | Юр. индекс |
juristic_street | Юр. улица |
juristic_house | Юр. дом |
juristic_build | Юр. строение |
juristic_office | Юр. офис |
actual_country | Факт. страна |
actual_region | Факт. регион |
actual_city | Факт. город |
actual_zip_code | Факт. индекс |
actual_street | Факт. улица |
actual_house | Факт. дом |
actual_build | Факт. корпус |
actual_office | Факт. офис |
mailing_country | Почт. страна |
mailing_region | Почт. регион |
mailing_city | Почт. город |
mailing_zip_code | Почт. индекс |
mailing_street | Почт. улица |
mailing_house | Почт. дом |
mailing_build | Почт. строение |
mailing_office | Почт. офис |
created_at | Создано |
updated_at | Обновлено |
user_id | Создатель (ID) |
user | Создатель |
responsible_id | Ответственный (ID) |
responsible | Ответственный |
source_id | Источник (ID) |
source | Источник |
status_id | Статус (ID) |
status | Статус |
type_id | Тип (ID) |
type | Тип |
custom_{id} | Свои поля |
Контакты
{
"type": "Contact",
"timestamp": 1519557678,
"data": {
"id": 54654,
"name": "Lastname Firstname Middlename",
"position": "lll",
"first_name": "Firstname",
"last_name": "Lastname",
"middle_name": "Middlename",
"mobile_phone": null,
"general_phone": null,
"work_phone": null,
"other_phone": null,
"email": "llll@llll.lll",
"other_email": null,
"description": "basic",
"note": null,
"fax": null,
"website": null,
"created_at": "27.12.2017 10:00:11",
"updated_at": "27.12.2017 10:00:11",
"work_country": null,
"work_region": null,
"work_city": null,
"work_zipcode": null,
"work_street": null,
"work_building": null,
"work_housing": null,
"work_apartment": null,
"home_country": null,
"home_region": null,
"home_city": null,
"home_zipcode": null,
"home_street": null,
"home_building": null,
"home_housing": null,
"home_apartment": null,
"vkontakte": null,
"facebook": null,
"linkedin": null,
"odnoklassniki": null,
"instagram": null,
"twitter": null,
"whatsapp": null,
"viber": null,
"telegram": null,
"skype": null,
"responsible_id": 2,
"responsible": "Яковлевски Эндрю",
"user_id": 2,
"user": "Яковлевски Эндрю",
"status_id": null,
"status": "",
"type_id": 19975,
"type": "Регистрация",
"source_id": null,
"source": ""
},
"custom_fields": {}
}
Атрибут | Описание |
---|---|
name | ФИО |
position | Должность |
first_name | Имя |
last_name | Фамилия |
middle_name | Отчество |
mobile_phone | Моб. тел. |
general_phone | Осн. тел. |
work_phone | Раб. тел. |
other_phone | Доп. тел. |
other_email | Доп. e-mail |
description | Описание |
note | Заметка |
fax | Факс |
website | Вебсайт |
created_at | Создано |
updated_at | Изменено |
work_country | Раб. страна |
work_region | Раб. регион |
work_city | Раб. город |
work_zipcode | Раб. индекс |
work_street | Раб. улица |
work_building | Раб. дом |
work_housing | Раб. корпус |
work_apartment | Раб. офис |
home_country | Дом. страна |
home_region | Дом. регион |
home_city | Дом. город |
home_zipcode | Дом. индекс |
home_street | Дом. улица |
home_building | Дом. дом |
home_housing | Дом. корпус |
home_apartment | Дом. квартира |
vkontakte | VK |
odnoklassniki | Одноклассники |
viber | Viber |
telegram | Telegram |
skype | Skype |
responsible_id | Ответственный (ID) |
responsible | Ответственный |
user_id | Создатель (ID) |
user | Создатель |
status_id | Status (ID) |
status | Статус |
type_id | Тип (ID) |
type | Тип |
source_id | Источник (ID) |
source | Источник |
Почтовые сообщения
{
"type": "MailMessage",
"timestamp": 1519557828,
"data": {
"from": [
{
"name": "Андрей Спамер",
"address": "spam@yandex.ru"
}
],
"to": [
{
"name": null,
"address": "retired@person.ru"
}
],
"subject": "Просто заберите ваши деньги",
"message_id": "<00000000000000@web52g.yandex.ru>",
"body": "<div>Здравствуйте!</div><br /><span lang=\"ru\">Вы выиграли лярд!</span>",
"direction": "outgoing",
"replied_at": null,
"forwarded_at": null,
"created_at": "04.09.2017 15:14:38",
"folder_id": 3193,
"folder": "Отправленные",
"label_id": null,
"label": "",
"responsible_id": null,
"responsible": "",
"creator_id": 3136,
"creator": "Андрей Спамер"
}
}
Атрибут | Описание |
---|---|
from | От кого |
to | Кому |
subject | Тема |
message_id | MessageID у почтового провайдера |
body | Сообщение |
direction | Тип (outgoing - исходящее, incoming - входящее) |
replied_at | Отвечено |
forwarded_at | Переслано |
created_at | Создано |
folder_id | Папка (ID) |
folder | Папка |
label_id | Метка (ID) |
label | Метка |
responsible_id | Ответственный (ID) |
responsible | Ответственный |
creator_id | Создатель (ID) |
creator | Создатель |
Телефонные звонки
{
"type": "TelephonyCall",
"data": {
"id": 5709232,
"direction": "outgoing",
"call_id": "out_a07d018ea75be3b71087e99072b43497f5fe7342",
"dst_phone_number": "+79998887777",
"src_phone_number": "122",
"number": 112653,
"tech_code": null,
"duration": null,
"started_at": "30.10.2019 10:40:44",
"answered_at": null,
"completed_at": null,
"created_at": "30.10.2019 10:40:44",
"updated_at": "30.10.2019 10:40:44",
"status_id": 9510,
"status": "Неотвечено",
"custom_42199": null,
"custom_48153": [ ],
"custom_42198": null
},
"timestamp":1572421245
}
Атрибут | Описание |
---|---|
id | ID |
direction | Направление |
call_id | ID выданный на АТС |
dst_phone_number | Кому |
src_phone_number | От кого |
number | Номер |
tech_code | Тех. код |
duration | Длительность |
started_at | Время начала |
answered_at | Время ответа |
completed_at | Время завершения |
created_at | Время создания |
updated_at | Время последнего обновления |
status_id | ID статуса |
status | Статус |
custom_* | Свои поля |
Визиты
{
"type": "Checkup",
"data": {
"id": 5709232,
"number": 18,
"name": "Визит",
"description": "<p>тут должно быть ваше описание визита</p>",
"planned_at": "2020-10-08 13:15:00",
"created_at": "2021-02-17 13:01:31",
"updated_at": "2021-02-17 13:01:48",
"contact_id": null,
"contact": "",
"user_id": 82,
"user": "Вострецова Олеся",
"custom_34565": null,
"custom_34566": [ ]
},
"timestamp":1572421245
}
Атрибут | Описание |
---|---|
id | ID |
number | Номер |
name | Название визита |
description | Описание визита |
user_id | Создатель (ID) |
user | Создатель |
custom_* | Свои поля |
planned_at | Время визита |
created_at | Дата создания |
updated_at | Дата обновления |
contact_id | Контакт (ID) |
contact | Контакт |
Задачи
{
"type": "Diary",
"data": {
"id": 435646,
"name": "Задача",
"description": "<p>тут должно быть ваше описание задачи</p>",
"note": "Заметка по задаче",
"completed_at": "2022-09-24 19:01:31",
"due_date": "2022-09-24 19:01:31",
"user": "Вострецова Олеся",
"user_id": 82,
"responsible": "Вострецова Олеся",
"responsible_id": 82,
"type": "DiaryTask",
"priority": null,
"company": "ООО Рога и копыта",
"company_id": 12,
"contact": "Иванов Иван Иванович",
"contact_id": 13,
"deal": "Сделка",
"deal_id": 14,
"order": "Заявка",
"order_id": 15,
"estate_property": null,
"estate_property_id": null,
"product": null,
"product_id": null,
"labels": [],
"custom_34567": null,
"custom_34568": []
},
"timestamp":1572421245
}
Атрибут | Описание |
---|---|
id | ID |
name | Название |
description | Описание |
note | Заметка |
completed_at | Дата завершения |
due_date | Дедлайн |
user_id | Создатель (ID) |
user | Создатель |
responsible_id | Отвественный (ID) |
responsible | Отвественный |
type | Тип задачи |
priority | Приоритет задачи |
company_id | Компания (ID) |
company | Компания |
contact_id | Контакт (ID) |
contact | Контакт |
deal_id | Сделка (ID) |
deal | Сделка |
order_id | Заявка (ID) |
order | Заявка |
estate_property_id | Объект недвижимости (ID) |
estate_property | Объект недвижимости |
product_id | Продукт (ID) |
product | Продукт |
labels | Метки |
custom_* | Свои поля |
Записи
{
"type": "Entry",
"data": {
"id": 435646,
"name": "Запись",
"comment": "<p>комментарий к записи</p>",
"start_time": "2022-09-24 13:01:31",
"end_time": "2022-09-24 15:01:31",
"created_at": "2021-02-17 13:01:31",
"updated_at": "2021-02-17 13:01:48",
"creator": "Иванов Иван Иванович",
"creator_id": 1,
"responsible": "Иванов Иван Иванович",
"responsible_id": 1,
"status": "Просрочено",
"status_id": 2,
"service": "",
"service_id": null,
"source": "",
"source_id": null,
"calendar": "",
"calendar_id": null,
"contacts": [],
"companies": [],
"custom_34571": null,
"custom_34572": []
},
"timestamp":1572421245
}
Атрибут | Описание |
---|---|
id | ID |
name | Название |
comment | Комментарий к записи |
start_time | Начало записи |
end_time | Окончание записи |
created_at | Дата создания |
updated_at | Дата обновления |
creator_id | Создатель (ID) |
creator | Создатель |
responsible_id | Отвественный (ID) |
responsible | Отвественный |
status_id | Статус (ID) |
status | Статус |
service_id | Сервис (ID) |
service | Сервис |
source_id | Источник (ID) |
source | Источник |
calendar_id | Календарь (ID) |
calendar | Календарь |
contacts | Контакты |
companies | Компании |
custom_* | Свои поля |
Объекты недвижимости
{
"type": "EstateProperty",
"data": {
"id": 435646,
"name": "2 комн. кв., 56.0 м², 3/5 этаж",
"description": "<p>комментарий к объекту недвижимости</p>",
"purchase_price": 12000000,
"uid": "46a07d018ea75be3b71087e99072b43497f5fe7342",
"railway": null,
"cadastral_num": null,
"highway_name": null,
"subway_name": null,
"address": "Степана Разина 72",
"country": "Российская Федерация",
"region": "Самарская область",
"locality": null,
"district": null,
"building_name": null,
"build_at": null,
"city_dist": null,
"subway_dist": null,
"subway_transport": null,
"subway_foot": null,
"room_number": null,
"total_room": null,
"separate_rooms": null,
"rooms_for_sell": null,
"floor_number": null,
"total_floors": null,
"deal_category": null,
"deal_type": null,
"object_category": null,
"object_type": null,
"installments": null,
"bargain": null,
"mortgage": null,
"balcony": null,
"building_class": null,
"building_type": null,
"business_usage_type": null,
"commission_type": null,
"condition": null,
"climate": null,
"currency": null,
"feature": null,
"electricity": null,
"flat_status": null,
"flat_type": null,
"gas": null,
"gate": null,
"heating": null,
"highway_access": null,
"land_usage_type": null,
"layout": null,
"material": null,
"new_flat": null,
"ownership": null,
"parking_type": null,
"rent_period": null,
"plumbing": null,
"payment_period": null,
"land_purpose": null,
"ready_quarter": null,
"relief": null,
"renovation": null,
"sewerage": null,
"storage_type": null,
"toilet": null,
"warehouse_floor": null,
"warehouse_type": null,
"location_type": null,
"window_view": null,
"encumbrance": null,
"build_stage": null,
"rent_deposit": null,
"ceiling_height": null,
"longitude": null,
"latitude": null,
"land_area": null,
"total_area": null,
"living_area": null,
"kitchen_area": null,
"commission_sum": null,
"contact_phone": null,
"map_url": null,
"created_at": "2021-02-17 13:01:31",
"updated_at": "2021-02-17 13:01:31",
"burden": null,
"stories": null,
"garage_type": null,
"parking_lot_type": null,
"shape": null,
"house_number": null,
"flat_house_type": null,
"images": [],
"user": "Иванов Иван Иванович",
"user_id": 1,
"responsible": "Иванов Иван Иванович",
"responsible_id": 1,
"status": "",
"status_id": null,
"source": "",
"source_id": null,
"image": "",
"image_id": null,
"company": "",
"company_id": null,
"contact": "",
"contact_id": null,
"custom_34569": null,
"custom_34570": []
},
"timestamp":1572421245
}
Атрибут | Описание |
---|---|
id | ID |
name | Название |
description | Описание |
purchase_price | Цена |
uid | UID |
railway | Ж/д станция |
cadastral_num | Кадастровый номер |
highway_name | Шоссе |
subway_name | Метро |
address | Адрес |
country | Страна |
region | Регион |
locality | Населенный пункт |
district | Район |
building_name | Название ЖК |
build_at | Год постройки |
city_dist | Расстояние до города, км |
subway_dist | Расстояние до метро, м. |
subway_transport | До метро на транспорте, мин. |
subway_foot | До метро пешком, мин. |
room_number | Квартира |
total_room | Комнат всего |
separate_rooms | Комнат раздельно |
rooms_for_sell | Комнат продается |
floor_number | Этаж |
total_floors | Этажей в доме |
deal_category | Категория сделки |
deal_type | Тип сделки |
object_category | Категория объекта |
object_type | Тип объекта |
installments | Рассрочка |
bargain | Торг |
mortgage | Ипотека |
balcony | Балкон |
building_class | Класс здания |
building_type | Тип здания (офис) |
business_usage_type | Тип использования коммерческого помещения |
commission_type | Тип комиссии |
condition | Состояние коммерческого помещения |
climate | Система контроля климата |
currency | Валюта |
feature | Опции |
electricity | Электроснабжение |
flat_status | Статус квартиры |
flat_type | Тип квартиры |
gas | Газификация |
gate | Въезд |
heating | Отопление |
highway_access | Транспортная доступность |
land_usage_type | Назначение земли |
layout | Планировка |
material | Материал стен |
new_flat | Новостройка |
ownership | Собственность |
parking_type | Тип парковки |
rent_period | Срок аренды |
plumbing | Водоснабжение |
payment_period | Период оплаты |
land_purpose | Использование земли |
ready_quarter | Квартал сдачи дома |
relief | Рельеф |
renovation | Ремонт |
sewerage | Канализация |
storage_type | Тип хранения |
toilet | Туалет |
warehouse_floor | Покрытие полов |
warehouse_type | Тип складского помещения |
location_type | Расположение |
window_view | Вид из окна |
encumbrance | Обременение |
build_stage | Стадия строительства |
rent_deposit | Залог для аренды |
ceiling_height | Высота потолков |
longitude | Долгота |
latitude | Широта |
land_area | Площадь участка, соток |
total_area | Общая площадь, м. кв. |
living_area | Жилая площадь, м. кв. |
kitchen_area | Кухня, м. кв. |
commission_sum | Комиссия |
contact_phone | Контактный телефон |
map_url | Ссылка на карту |
created_at | Дата создания |
updated_at | Дата обновления |
burden | Обременения |
stories | Кол-во машиномест |
garage_type | Тип гаража |
parking_lot_type | Тип стоянки |
shape | Форма участка |
house_number | Номер дома |
flat_house_type | Тип дома |
images | Изображения |
user | Создатель |
user_id | Создатель (ID) |
responsible | Отвественный |
responsible_id | Отвественный (ID) |
status | Статус |
status_id | Статус (ID) |
source | Источник |
source_id | Источник (ID) |
image | Обложка |
image_id | Обложка (ID) |
company | Компания |
company_id | Компания (ID) |
contact | Контакт |
contact_id | Контакт (ID) |
custom_* | Свои поля |
Счета
{
"type": "Invoice",
"data": {
"id": 54654,
"number": 1,
"custom_number": "number-1",
"vat_kind": "without",
"vat_rate": 13,
"vat_by_line": false,
"reason": "",
"payer_type": "Contact",
"prefix": null,
"postfix": null,
"amount": 1000,
"paid_amount": null,
"balance": 1000,
"due_date": "2022-09-24 13:01:31",
"issued_at": "2022-09-24 13:01:31",
"status": "",
"status_id": null,
"created_at": null,
"updated_at": null,
"user": null,
"user_id": null,
"responsible": null,
"responsible_id": null,
"payer": null,
"payer_id": null,
"entry": null,
"entry_id": null,
"deal": null,
"deal_id": null,
"order": null,
"order_id": null,
"account_bank_detail": null,
"account_bank_detail_id": null,
"company_bank_detail": null,
"company_bank_detail_id": null,
"positions": [],
"custom_34569": null,
"custom_34570": []
},
"timestamp":1572421245
}
Атрибут | Описание |
---|---|
id | ID |
number | Номер |
custom_number | № ручн. |
vat_kind | НДС |
vat_rate | НДС ставка |
vat_by_line | Считать НДС построчно |
reason | Основание |
payer_type | Тип плательщика |
prefix | Префикс |
postfix | Постфикс |
amount | Сумма |
paid_amount | Оплачено |
balance | Баланс |
due_date | Срок оплаты |
issued_at | Дата выставления |
status | Статус |
status_id | Статус (ID) |
created_at | Дата создания |
updated_at | Обновлено |
user | Создатель |
user_id | Создатель (ID) |
responsible | Ответственный |
responsible_id | Ответственный (ID) |
payer | Плательщик |
payer_id | Плательщик (ID) |
entry | Запись |
entry_id | Запись (ID) |
deal | Сделка |
deal_id | Сделка (ID) |
order | Заявка |
order_id | Заявка (ID) |
account_bank_detail | Получатель |
account_bank_detail_id | Получатель (ID) |
company_bank_detail | Со счета |
company_bank_detail_id | Со счета (ID) |
positions | Позиции счета |
custom_* | Свои поля |
Платежи
{
"type": "InvoicePayment",
"data": {
"id": 23434,
"purpose": "",
"amount": 1000,
"operation_created_at": "2022-09-24 13:01:31",
"operation_accounted_at": "2022-09-24 13:01:31",
"operation_executed_at": "2022-09-24 13:01:31",
"description": "",
"direction": "income",
"custom_number": "number-2",
"status": "",
"payment_type": null,
"user": "Иванов Иван Иванович",
"user_id": 2,
"responsible": "Иванов Иван Иванович",
"responsible_id": 2,
"invoice": "",
"invoice_id": null,
"payer": "",
"payer_id": null,
"payer_bank_detail": "",
"payer_bank_detail_id": null,
"receiver": "",
"receiver_id": null,
"receiver_bank_detail": "",
"receiver_bank_detail_id": null,
"invoice_payment_category": "",
"invoice_payment_category_id": null,
"deal": "",
"deal_id": null,
"order": "",
"order_id": null,
"entry": "",
"entry_id": null,
"contract": "",
"contract_id": null,
"business_type": "",
"business_type_id": null,
"custom_34573": null,
"custom_34574": []
},
"timestamp": 567457457547
}
Атрибут | Описание |
---|---|
id | ID |
purpose | Назначение |
amount | Сумма |
operation_created_at | Когда |
operation_accounted_at | Учесть в |
operation_executed_at | Проведено |
description | Комментарий |
direction | Тип |
custom_number | № ручн. |
status | Статус |
payment_type | Способ оплаты |
user | Создатель |
user_id | Создатель (ID) |
responsible | Ответственный |
responsible_id | Ответственный (ID) |
invoice | Счет |
invoice_id | Счет (ID) |
payer | Плательщик |
payer_id | Плательщик (ID) |
payer_bank_detail | Со счета |
payer_bank_detail_id | Со счета (ID) |
receiver | Получатель |
receiver_id | Получатель (ID) |
receiver_bank_detail | На счет |
receiver_bank_detail_id | На счет (ID) |
invoice_payment_category | Статья |
invoice_payment_category_id | Статья (ID) |
deal | Сделка |
deal_id | Сделка (ID) |
order | Заявка |
order_id | Заявка (ID) |
entry | Запись |
entry_id | Запись (ID) |
contract | Контакт |
contract_id | Контакт (ID) |
business_type | Напр-е бизнеса |
business_type | Напр-е бизнеса (ID) |
custom_* | Свои поля |
Позиции
{
"type": "InvoicePosition",
"data": {
"id": 8765,
"name": "Сетевой фильтр",
"quantity": 2,
"amount": 1000,
"amount_with_discount": 900,
"amount_by_quantity": 2000,
"unit": "шт",
"is_service": false,
"product_id": 1,
"product": "Сетевой фильтр",
"code": 43534,
"discount": 10,
"discount_amount": 100,
"result_vat": null,
"created_at": "2022-09-24 13:01:31",
"updated_at": "2022-09-24 13:01:31"
},
"timestamp": 2142424434
}
Атрибут | Описание |
---|---|
id | ID |
name | Название |
quantity | Количество |
amount | Цена |
amount_with_discount | Цена с учётом скидки |
amount_by_quantity | Сумма |
unit | Ед. изм. |
is_service | Услуга |
product_id | Продукт (ID) |
product | Продукт |
code | Код |
discount | Скидка |
discount_amount | Сумма скидки |
result_vat | Сумма НДС |
created_at | Дата создания |
updated_at | Дата обновления |
Продукты
{
"type": "Product",
"data": {
"id": 8765,
"name": "Сетевой фильтр",
"description": "",
"is_service": false,
"kind": 0,
"created_at": "2022-09-24 13:01:31",
"updated_at": "2022-09-24 13:01:31",
"code": 546546,
"vendor_code": 34234,
"purchase_price": 0,
"cost_price": 0,
"document_id": null,
"document": "",
"duration": null,
"selling_price": 0,
"vat": 0,
"volume": null,
"weight": null,
"ccd": null,
"country": null,
"number": 436,
"exchange_rate": null,
"currency_id": null,
"currency": "",
"spending_price": null,
"available_quantity": null,
"stock_quantity": null,
"reserved_quantity": null,
"waiting_quantity": null,
"country_code": null,
"parent_id": null,
"parent": "",
"type": null,
"discount": null,
"status": null,
"unit": null,
"category": null
},
"timestamp": 234235423
}
Атрибут | Описание |
---|---|
id | ID |
name | Название |
description | Описание |
is_service | Услуга |
kind | Вид |
created_at | Дата создания |
updated_at | Дата обновления |
code | Код |
vendor_code | Артикул |
purchase_price | Цена закупки |
cost_price | Себестоимость |
document_id | Документ (ID) |
document | Документ |
duration | Длительность |
selling_price | Цена продажи |
vat | НДС |
volume | Объём |
weight | Вес, кг |
ccd | ГТД |
country | Страна |
number | Номер |
exchange_rate | Курс обмена |
currency_id | Валюта (ID) |
currency | Валюта |
spending_price | Затраты |
available_quantity | Доступный остаток |
stock_quantity | Фактический остаток |
reserved_quantity | Резерв |
waiting_quantity | Ожидание |
country_code | Код страны |
parent_id | Продукт-родитель (ID) |
parent | Продукт-родитель |
type | Тип |
discount | Скидка |
status | Статус |
unit | Ед. изм. |
category | Категория |
Вложенные продукты
{
"type": "EntityProduct",
"data": {
"id": 657567,
"product_id": 1,
"product": "Розетка",
"quantity": 2,
"purchase_price": 0,
"description": "",
"created_at": "2022-09-24 13:01:31",
"updated_at": "2022-09-24 13:01:31",
"duration": null,
"selling_price": 1000,
"cost_price": 0,
"discount": 10,
"exchange_rate": null,
"currency_id": 3,
"currency": "руб.",
"spending_price": 0,
"vat": null,
"promocode_ids": [],
"unit": "шт",
"status": ""
},
"timestamp": 6785685685
}
Атрибут | Описание |
---|---|
id | ID |
product_id | Продукт (ID) |
product | Продукт |
quantity | Количество |
purchase_price | Цена закупки |
description | Описание |
created_at | Дата создания |
updated_at | Дата обновления |
duration | Длительность |
selling_price | Цена продажи |
cost_price | Себестоимость |
discount | Скидка |
exchange_rate | Курс обмена |
currency_id | Валюта (ID) |
currency | Валюта |
spending_price | Затраты |
vat | НДС |
promocode_ids | Промокоды |
unit | Ед. изм. |
unit_id | Ед. изм. (ID) |
status | Статус |
Сотрудники
{
"type": "User",
"data": {
"id": 34534,
"email": "test@test.ru",
"phone": "89999999999",
"first_name": "Иван",
"last_name": "Иванов",
"middle_name": "Иванович",
"work_position": "Управляющий"
},
"timestamp": 567567567
}
Атрибут | Описание |
---|---|
id | ID |
phone | Телефон |
first_name | Имя |
last_name | Фамилия |
middle_name | Отчество |
work_position | Должность |
Договоры
{
"type": "Contract",
"data": {
"id": 1,
"number": 1,
"name": "Договор 1",
"date": "05.10.2022",
"custom_number": "1",
"created_at": "04.10.2022 13:20:16",
"updated_at": "18.10.2022 14:19:48",
"products_amount": "22000.0",
"user_id": 6,
"user": "Иван Иванов",
"responsible_id": 6,
"responsible": "Иван Иванов",
"first_party_type": "Contact",
"first_party_id": 2,
"first_party": "Алексей",
"second_party_type": "Contact",
"second_party_id": 8,
"second_party": "Не указано"
},
"timestamp": 1666091989
}
Атрибут | Описание |
---|---|
id | ID |
number | Номер |
name | Название |
date | Дата |
custom_number | № ручн. |
created_at | Дата создания |
updated_at | Дата обновления |
products_amount | Сумма продуктов |
user_id | Создатель (ID) |
user | Создатель (ФИО) |
responsible_id | Ответственный (ID) |
responsible | Ответственный (ФИО) |
first_party_id | ID первой стороны |
first_party | Сторона 1 |
first_party_type | Тип первой стороны |
second_party_id | ID второй стороны |
second_party | Сторона 2 |
second_party_type | Тип второй стороны |
Активности
Чтение активности с предустановленным ресурсом контакта
curl "https://app.salesap.ru/api/v1/activities" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[trackable-type]=contacts"
EOF
Создание примечания с предустановленным ресурсом контакта и подтверждением прочтения
curl "https://app.salesap.ru/api/v1/activities" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"activities",
"attributes":{
"key":"message",
"message":"Hello!",
"confirm-read":true,
"user-ids":[1, 2, 3]
},
"relationships":{
"trackable":{
"data":{
"type":"contacts",
"id":"1"
}
}
}
}
}
EOF
Изменение существующего примечания
curl "https://app.salesap.ru/api/v1/activities/1" \
-X PATCH \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"activities",
"attributes":{
"key":"message",
"message":"New text",
"user-ids":[1, 2]
}
}
}
EOF
JSON API type | activities |
URL | /api/v1/activities |
Список | GET /api/v1/activities |
Чтение | GET /api/v1/activities/{id} |
Создание | POST /api/v1/activities |
Редактирование | PATCH /api/v1/activities/{id} |
Удаление | DELETE /api/v1/activities/{id} |
Атрибуты
{
"data": {
"type":"activities",
"id":"1",
"attributes":{
"created-at": "2015-12-21T23:25:30.691+03:00",
"updated-at": "2016-02-25T20:19:21.080+03:00",
"key": "create",
"confirm-read": null,
"user-ids": [1, 2, 3],
"message": "",
"parameters":{
"changes" : {
"Id" : {
"new_name" : 55,
"old_name" : null,
"field" : "id"
},
"Создатель" : {
"old_id" : null,
"new_name" : "Иван Иванов",
"new_id" : 13,
"old_name" : "",
"field" : "user_id"
},
"Сотрудник" : {
"new_id" : 13,
"old_name" : "",
"field" : "responsible_id",
"new_name" : "Иван Иванов",
"old_id" : null
},
"Тема" : {
"new_name" : "test",
"field" : "name",
"old_name" : null
}
},
"creator" : "Иван Иванов",
"object" : "",
"this" : "test"
}
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание | ||
---|---|---|---|---|---|---|
key | string |
Иван | да | Тип активности | ||
parameters | json |
{"editor":"Иван"} | нет | Параметры активности (изменения/описание события) | ||
user-ids | array |
[1, 2, 3] | да | Упомянутые пользователи | ||
confirm-read | boolean|string |
true | '1' | null | да | Уведомлять или нет упомянутых пользователей (только создание) |
message | string |
Продлить подписку | нет | Текст примечания |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"activities",
"id":"1",
"relationships":{
"trackable":{
"links":{
"self":"/api/v1/activities/1/relationships/trackable",
"related":"/api/v1/activities/1/trackable"
}
},
"user":{
"links":{
"self":"/api/v1/activities/1/relationships/user",
"related":"/api/v1/activities/1/user"
}
}
}
}
}
Пример запроса с загруженными автором изменения и изменённым объектом
curl "https://app.salesap.ru/api/v1/activities?include=user,trackable" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Объект активности | trackable | companies , contacts , deals , entries , orders , diaries , products , estate-properties , users , invoices , invoice-payments |
Автор активности | user | users |
Фильтры
Получить список активностей определённого пользователя
curl -G "https://app.salesap.ru/api/v1/activities" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[user_id]=117"
Получить список активностей по определённой компании
curl -G "https://app.salesap.ru/api/v1/activities" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[trackable_type]=companies"
--data-urlencode "filter[trackable_id]=8122"
Фильтр | Описание | Пример |
---|---|---|
trackable_type* | Вывести активности по определённому типу ресурса | filter[trackable_type]=contacts |
trackable_id | Вывести активности по идентификатору объекта | filter[trackable_id]=8122 |
key** | Вывести активности по определённому типу события | filter[key]=create |
user_id | Вывести активности по определённому пользователю | filter[user_id]=113 |
q | Вывести активности по поисковому запросу | filter[q]=some-query |
* Возможные значения: companies, contacts, deals, entries, orders, diaries, products, estate-properties, users, invoices, invoice-payments.
** Возможные значения: sms_sent, restore, create_invoice, create_invoice_payment, import, diary_action, archive, update, destroy, create.
Параметры
Источник запроса и сценарии автоматизаций
{
"source_id": 1,
"source_type": "api",
"source_name": "Test API Key",
"scenario_id": 42,
"scenario_name": "Автоматизация на закрытие сделок"
}
У всех типов активностей могут быть указаны поля, указывающие на источник запроса. Источником может быть api, мобильное приложение, пользовательские приложения или чат.
Если поля не указаны или null, значит запрос поступил через интерфейс S2.
Поле | Описание |
---|---|
source_type | Тип источника запроса, возможные варианты: api, app, mobile, chat |
source_id | ID источника запроса, в зависимости от типа может быть id api-ключа или id приложения |
source_name | Имя приложения, либо название api-ключа |
Аналогично источнику запросов, в параметрах может содержаться информация о сценарии автоматизации, который взаимодействовал с объектом:
Поле | Описание |
---|---|
scenario_id | ID сценария автоматизации |
scenario_name | Название сценария автоматизации |
Создание, обновление и удаление (create, update, destroy)
{
"changes" : {
"Фамилия" : {
"field" : "last_name",
"new_name" : "Иванов",
"old_name" : null
},
"ID" : {
"field" : "id",
"old_name" : null,
"new_name" : 8397
},
"Ответственный" : {
"field" : "responsible_id",
"old_id" : null,
"old_name" : "",
"new_name" : "Лазарев Александр",
"new_id" : 362
},
"Создатель" : {
"new_id" : 362,
"new_name" : "Лазарев Александр",
"old_name" : "",
"old_id" : null,
"field" : "user_id"
}
},
"object" : "",
"this" : "Test",
"creator" : "Лазарев Александр"
}
Поле | Описание |
---|---|
changes | Содержит информацию с изменениями полей объекта |
object | Имя объекта |
creator | Имя автора активности |
this | Имя объекта |
Поля элементов в changes
Именем является наименование поля в самой системе
Поле | Описание |
---|---|
field | Системное наименование поля |
old_id | Идентификатор старого связанного объекта |
old_name | Наименование старого привязанного объекта |
new_id | Идентификатор нового привязанного объекта |
new_name | Имя интеграции |
Импорт (import)
{
"object" : "Contact",
"creator" : "Иванов Иван",
"imported_count" : 1
}
Поле | Описание |
---|---|
object | Класс импортируемых объектов |
creator | Имя автора активности |
imported_count | Количество импортированных объектов |
Экспорт (export)
{
"mode": "background",
"object": "Diary",
"creator": "Владимир Владимирович",
"exported_count": 1,
"operation_name": "Экспорт \"Задачи\"",
"operation_status": "completed",
"operation_progress": 0
}
Поле | Описание |
---|---|
mode | Режим экспорта |
object | Класс экспортируемых объектов |
creator | Имя автора активности |
exported_count | Количество экспортированных объектов |
operation_name | Название операции |
operation_status | Статус операции |
operation_progress | Прогресс операции в процентах |
Архивирование и восстановление из архива (archive, restore)
{
"this": "Сделка века №123",
"creator": "Иванов Иван"
}
Поле | Описание |
---|---|
this | Имя объекта |
creator | Имя автора активности |
Примечание (message)
{
"users": [1, 2, 3],
"confirm-read": true
}
Поле | Описание |
---|---|
users | Упомянутые пользователи, см. user-ids в атрибутах |
confirm-read | Уведомлять о прочтении, см. confirm-read в атрибутах |
Создание счета (create_invoice)
{
"deal" : "Сделка века №123",
"amount" : "2357.0",
"number" : 345,
"object": "ООО Хорошая Компания",
"creator" : "Иванов Андрей"
}
Поле | Описание |
---|---|
number | Номер счета |
deal | Имя сделки |
creator | Имя автора активности |
amount | Сумма платежа |
object | Имя объекта |
Создание платежа (create_invoice_payment)
{
"deal" : "Сделка века №123",
"payer" : "Петров Владимир",
"creator" : "Иванов Андрей",
"receiver" : "ООО \"Рога и Копыта\"№22",
"direction" : "income",
"invoice_number" : 320,
"payment_number" : 10353,
"payer_bank_detail" : null,
"receiver_bank_detail" : "ФИЛИАЛ № 4321 БАНКА"
}
Поле | Описание |
---|---|
deal | Имя сделки |
payer | Имя или название плательщика |
creator | Имя автора активности |
receiver | Имя или название получателя |
direction | Направление платежа |
invoice_number | Номер счета |
payment_number | Номер платежа |
payer_bank_detail | Реквизиты плательщика |
receiver_bank_detail | Реквизиты получателя |
Отправка СМС (sms_sent)
{
"dst": "+7 996 273-12-34",
"entity": "Иван Иванов",
"creator": "Владимир Владимирович",
"message": "Уведомление о готовом решении",
"integration": "SigmaSMS"
}
Поле | Описание |
---|---|
dst | Номер, на который СМС была выслана |
entity | Имя объекта |
creator | Имя автора активности |
message | Содержимое СМС |
integration | Имя интеграции |
Новые связи и удаление связей (add_association, remove_association)
{
"this": "ООО Хорошая Компания",
"creator": "Владимир Владимирович",
"associations": {
"10": "Иван Иванов",
"12": "Михаил Иванов"
},
"association_class": "Contact"
}
Поле | Описание |
---|---|
this | Имя объекта |
creator | Имя автора активности |
associations | Объекты |
association_class | Тип объектов |
Сообщение чата (create_chat_message)
{
"author": "Владимир Владимирович",
"message": "Привет!",
"user_avatar": "https://picsum.photos/id/1/200/200",
"conversation_id": 123,
"conversation_name": "Владимир Владимирович"
}
Поле | Описание |
---|---|
author | Имя автора сообщения |
message | Текст сообщения |
user_avatar | Ссылка на аватар |
conversation_id | id диалога |
conversation_name | Название диалога |
Новый чеклист / элемент чеклиста (create_checklist)
{
"this": "Чеклист",
"object": "Задача №1",
"creator": "Владимир Владимирович"
}
Поле | Описание |
---|---|
this | Имя чеклиста/задачи |
object | Имя объекта |
creator | Имя автора активности |
Действие чеклиста (entity_checklist_item_action)
{
"mode": "finish",
"this": "Элемент чеклиста",
"entity": "deal",
"object": "Сделка №4",
"creator": "Владимир Владимирович"
}
Поле | Описание |
---|---|
this | Имя задачи чеклиста |
object | Имя объекта |
creator | Имя автора активности |
mode | Действие |
entity | Тип сущности |
Табличные фильтры
JSON API type | table-states |
URL | /api/v1/table-states |
Список | GET /api/v1/table-states |
Чтение | GET /api/v1/table-states/{id} |
Атрибуты
Ниже приведен пример формата данных, в реальном ответе будут присутствовать все перечисленные атрибуты
{
"data": {
"id": "95",
"type": "table-states",
"attributes": {
"created-at": "2019-11-08T12:52:26.600+03:00",
"updated-at": "2019-11-08T12:52:40.993+03:00",
"class-name": "Company",
"name": "company-table-filter",
"key": "general",
"temp": "true",
"data": {
"fields": [
"name",
"bank_number",
"email",
"city",
"responsible",
"contacts",
"street",
"custom_27"
],
"search_conditions": {
"city": "Moscow"
}
}
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string |
"company-table-filter" |
да | Название фильтра |
class-name | string |
"Company" |
да | Класс фильтра |
key | string |
"general" |
да | Ключ таблицы ("general" - основная таблица, "contacts" - таблица карточки Контакты) |
temp | boolean |
"true" |
да | Флаг, сигнализирующий о том, что данные поля используются в текущий момент |
data | hash |
{"fields": ["number", "created_at"} |
да | Отображаемые поля и условия выборки |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список табличных фильтров из карточки Сделок
curl -G "https://app.salesap.ru/api/v1/table-states" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[key]=deals"
Фильтр | Описание | Пример |
---|---|---|
key | Вывести объекты по определенному ключу | filter[key]=general |
class-name | Вывести объекты по определенному классу | filter[class-name]=Deals |
temp | Вывести объекты с текущими полями | filter[temp]=true |
Файлы
JSON API type | documents |
URL | /api/v1/documents |
Список | GET /api/v1/documents |
Чтение | GET /api/v1/documents/{id} |
Удаление | DELETE /api/v1/documents/{id} |
Атрибуты
Ниже приведен пример формата данных, в реальном ответе будут присутствовать все перечисленные атрибуты
{
"data": {
"id": "1",
"type": "documents",
"links": {
"self": "http://app.salesap.ru/api/v1/documents/1"
},
"attributes": {
"created-at": "2019-11-27T14:11:55.364+03:00",
"updated-at": "2019-11-27T14:11:55.364+03:00",
"cached-at": "2019-11-27T14:11:55.364+03:00",
"name": "example.jpg",
"size": "103820.0",
"download-link": "https://example-link",
"content-type": "image/jpeg"
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string |
"example.jpg" |
да | Название файла |
size | string |
"103820.0" |
да | Размер файла |
download-link | string |
"https://example-link" |
нет | Ссылка для скачивания |
content-type | string |
"image/jpeg" |
нет | Тип файла |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
cached-at | datetime |
2016-11-26T12:07:51.572+03:00 |
Нет | Закэшировано |
* Обязательные поля
Связи
Пример данных (перечислены не все связи)
{
"data": {
"id": "1",
"type": "documents",
"links": {
"self": "http://app.salesap.ru/api/v1/documents/1"
},
"relationships": {
"company": {
"links": {
"self": "http://app.salesap.ru/api/v1/documents/1/relationships/company",
"related": "http://app.salesap.ru/api/v1/documents/1/company"
}
},
"contact": {
"links": {
"self": "http://app.salesap.ru/api/v1/documents/1/relationships/contact",
"related": "http://app.salesap.ru/api/v1/documents/1/contact"
}
},
"category":{
"links":{
"self":"/api/v1/documents/1/relationships/category",
"related":"/api/v1/documents/1/category"
}
}
}
}
}
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Создатель | user | users |
Компания | company | companies |
Контакт | contact | contacts |
Задача | diary | diary |
Сделки | deals | deals |
Заявки | orders | orders |
Продукты | products | products |
Обложка продукта | product-covers | product-covers |
Категория | category | document-categories |
Фильтры
Получить список документов по определённой компании
curl -G "https://app.salesap.ru/api/v1/documents" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[entity_type]=Company"
--data-urlencode "filter[entity_id]=8122"
Фильтр | Описание | Пример |
---|---|---|
entity_type* | Вывести активности по определённому типу ресурса | filter[entity_type]=Contact |
entity_id** | Вывести активности по идентификатору объекта | filter[entity_id]=8122 |
* Возможные значения: Company, Contact, Deal, Order, User, Diary, Product, EstateProperty, Checkup, Contract, Activity.
** Фильтры entity_type и entity_id можно использовать только вместе. В фильтре должен быть указан только один параметр (1 класс и 1 id).
Трекинг рабочего времени пользователя
Создание рабочего времени
curl "https://app.salesap.ru/api/v1/user-work-times" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"user-work-times",
"attributes":{
"started-at":"2019-02-12T11:32:32+03:00",
"finished-at":"2019-02-12T15:57:10+03:00"
}
}
}
EOF
JSON API type | user-work-times |
URL | /api/v1/user-work-times |
Список | GET /api/v1/user-work-times |
Чтение | GET /api/v1/user-work-times/{id} |
Создание | POST /api/v1/user-work-times |
Редактирование | PATCH /api/v1/user-work-times/{id} |
Удаление | DELETE /api/v1/user-work-times/{id} |
Атрибуты
{
"data": {
"type":"user-work-times",
"id":"1",
"attributes":{
"started-at":"2019-02-12T11:32:32+03:00",
"finished-at":"2019-02-12T15:57:10+03:00",
"created-at":"2019-02-12T11:32:32+03:00",
"updated-at":"2019-02-12T11:32:32+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
started-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Провайдер телефонии |
finished-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата окончания рабочего времени |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
Фильтры
Получить список учтённого рабочего времени по определённому пользователю
curl -G "https://app.salesap.ru/api/v1/user-work-times?filter[user-id]=324" \
-X GET \
-H "Authorization: Bearer api_token"
Фильтр | Описание | Пример |
---|---|---|
user-id | Вывести объекты созданные определённым пользователем | filter[user-id]=324 |
started-at-gte | Вывести объекты начатые после указанного времени | filter[started-at-gte]=2017.08.01 12:00 |
started-at-lte | Вывести объекты начатые до указанного времени | filter[started-at-lte]=2017.08.01 12:00 |
finished-at-gte | Вывести объекты завершенные после указанного времени | filter[finished-at-gte]=2017.08.01 12:00 |
finished-at-lte | Вывести объекты завершенные до указанного времени | filter[finished-at-lte]=2017.08.01 12:00 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
finished-at-null | Вывести незавершенные объекты | filter[finished-at-null]=true |
Загрузка файлов
Загрузка файлов происходит в два действия: Сначала нужно запросить временные ключи по адресу https://upload.app.salesap.ru/ и, после, отправить файл с ключами по адресу хранилища.
Получение временных ключей
Получение ключей и адреса для загрузки файла
curl "https://upload.app.salesap.ru/api/v1/files" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"type": "files",
"data": {
"filename": "document.docx",
"resource-type": "contacts",
"resource-id": 123
}
}
EOF
JSON API type | files |
URL | /api/v1/files |
Создание | POST /api/v1/files |
Атрибуты
Тело запроса
{
"type": "files",
"data": {
"filename": "document.docx",
"resource-type": "contacts",
"resource-id": 1234
}
}
Тело ответа
{
"type": "files",
"data": {
"url": "https://salesapiens.s3.eu-west-1.amazonaws.com",
"form-fields": {
"acl": "public-read",
"key": "documents/api/document.docx",
"Expires": "Thu, 10 Nov 2019 09:00:00 GMT",
"policy": "generated-policy",
"x-amz-credential": "AWS1SIMPLECRED/20191114/eu-west-1/s3/aws4_request",
"x-amz-algorithm": "AWS4-HMAC-SHA256",
"x-amz-date": "20191114T130410Z",
"x-amz-signature": "generated-credential"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
filename | string |
document.txt |
да | Название файла |
resource-type | string |
contacts |
да | Ресурс, в который должен быть добавлен файл ((contacts, companies, deals, orders, products)) |
resource-id | integer |
3245 | да | Идентификатор объекта, в который должен быть добавлен файл |
url | string |
https://s3.amazonaws.com |
нет | URL для загрузки файла |
form-fields* | object |
{ "acl": "public-read" } | нет | Временные данные, которые должны быть переданы отдельными полями вместо с файлом по "url" |
* Время жизни ключей 5 минут с момента запроса, лимит на размер файла - 10 мегабайт.
Загрузка файлов в хранилище
Пример загрузки файла с помощью cURL
curl -X POST \
https://salesapiens.s3.eu-west-1.amazonaws.com \
-H "Content-Type: multipart/form-data" \
-F "key=documents/api/hash/document.txt" \
-F "Expires=Thu, 10 Nov 2019 09:00:00 GMT" \
-F "acl=public-read" \
-F "policy=generated-policy" \
-F "x-amz-credential=generated-cred/20191114/eu-west-1/s3/aws4_request" \
-F "x-amz-algorithm=AWS4-HMAC-SHA256" \
-F "x-amz-date=20191114T130420Z" \
-F "x-amz-signature=amz-signature" \
-F file=@/path/to/file
После полученных ключей необходимо послать документ на файловое хранилище. Все поля из form-fields
должны быть переданы как поля формы. В отличие от остальных запросов, этот должен иметь заголовок Content-Type: multipart/form-data
.
UTM-метки (устарел)
* Данный ресурс устарел и больше не поддерживается. Необходимо информацию о UTM метках компаний, сделок и заявок помещать в атрибуты самого объекта, в момент его создания или редактирования.
Создание UTM-метки
curl "https://app.salesap.ru/api/v1/utm-labels" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"utm-labels",
"attributes":{
"campaign": "discount",
"medium: "email",
"source": "salesap"
}
}
}
EOF
Создание UTM-метки с привязанным контактом, заявкой и звонком
curl "https://app.salesap.ru/api/v1/utm-labels" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"utm-labels",
"attributes":{
"source": "salesap",
"campaign": "discount",
"medium": "email",
"content": "link",
"term": "-30%"
},
"relationships": {
"contacts": {
"data": [
{
"type":"contacts",
"id":1
}
]
},
"telephony-calls": {
"data": [
{
"type": "telephony-calls",
"id": 1
}
]
},
"orders": {
"data": [
{
"type": "orders",
"id": 1
}
]
}
}
}
}
EOF
JSON API type | utm-labels |
URL | /api/v1/utm-labels |
Список | GET /api/v1/utm-labels |
Чтение | GET /api/v1/utm-labels/{id} |
Создание | POST /api/v1/utm-labels |
Редактирование | PATCH /api/v1/utm-labels/{id} |
Удаление | DELETE /api/v1/utm-labels/{id} |
Атрибуты
{
"data": {
"type": "utm-labels",
"id": "1",
"attributes": {
"campaign": "Campaign",
"city": "Samara",
"content" : "Content",
"created-at" : "2020-05-31T22:48:32.765+03:00",
"landing-page" : "Lendos",
"medium" : "Medium",
"search-query" : "crm для бизнеса",
"source" : "salesap.ru",
"term" : "Term",
"u-type" : "utm",
"updated-at" : "2020-05-31T22:48:32.765+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
campaign | string |
promo |
да | Название кампании |
city | string |
Samara |
да | Город кампании |
content | string |
link |
да | Идентификатор объявления |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата создания |
landing-page | string |
landing.page |
да | Идентификатор посадочной страницы |
medium | string |
Broad |
да | Тип трафика |
search-query | string |
crm |
да | Поисковый запрос |
source | string |
salesap.ru |
да | Источник кампании |
term | string |
api |
да | Ключевое слово |
u-type | string |
utm |
да | Тип метки |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"utm-labels",
"id":"1",
"relationships":{
"orders":{
"links":{
"self":"/api/v1/utm-labels/1/relationships/orders",
"related":"/api/v1/utm-labels/1/orders"
}
},
"deals":{
"links":{
"self":"/api/v1/utm-labels/1/relationships/deals",
"related":"/api/v1/utm-labels/1/deals"
}
}
}
}
}
Пример запроса с загруженными статусами и категориями продуктов
curl "https://app.salesap.ru/api/v1/utm-labels?include=deals,contacts" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Компании | companies | companies |
Контакты | contacts | contacts |
Звонки | telephony-calls | telephony-calls |
Заявки | orders | orders |
Сделки | deals | deals |
Фильтры
Получить список меток созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/utm-labels" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Уведомления
Чтение уведомления
curl "https://app.salesap.ru/api/v1/notifications" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
JSON API type | notifications |
URL | /api/v1/notifications |
Список | GET /api/v1/notifications |
Чтение | GET /api/v1/notifications/{id} |
Изменить статус на "прочитано" | POST /api/v1/notifications/read_all |
Атрибуты
{
"data": {
"type":"notifications",
"id":"1",
"attributes":{
"created-at": "2015-12-21T23:25:30.691+03:00",
"updated-at": "2016-02-25T20:19:21.080+03:00",
"text": "Просрочена задача",
"params":{
"time" : "0",
"entity" : null,
"responsible" : ""
},
"key": "diarytask_expired",
"emailed-at": "2016-02-25T20:19:21.080+03:00",
"read-at": "2016-02-25T20:19:21.080+03:00",
"confirm-read": false
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
key | string |
comment |
да | Тип уведомления по объекту |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата обновления |
emailed-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата отправки на email |
read-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата прочтения уведомления |
text | text |
Просрочена задача |
да | Текст уведомления |
confirm-read | boolean |
false |
да | Подтверждение прочтения |
params | hash |
{"time":"0"} |
да | Параметры уведомления |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"notifications",
"id":"1",
"relationships":{
"user":{
"links":{
"self":"/api/v1/notifications/1/relationships/user",
"related":"/api/v1/notifications/1/user"
}
},
"sender":{
"links":{
"self":"/api/v1/notifications/1/relationships/sender",
"related":"/api/v1/notifications/1/sender"
}
},
}
}
}
Пример запроса с пометкой уведомлений (прочитано)
curl "https://app.salesap.ru/api/v1/notifications/read_all" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"ids": [65265, 65266, 65270]
}
EOF
Пример запроса с загруженными автором изменения и объектом уведомления
curl "https://app.salesap.ru/api/v1/notifications?include=user,sender" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Получатель уведомления | user | users |
Отправитель уведомления | sender | users |
Объект уведомления | entity | telephony-calls, estate-finders, orders, checkups, diaries, users, invoice-payments, contracts, estate-properties, contacts, invoices, contact-groups, mail-messages, companies, entries, deals, projects |
Фильтры
Получить список уведомлений по типу уведомления по объекту
curl -G "https://app.salesap.ru/api/v1/notifications" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[key]=change_responsible"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести уведомления созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести уведомления созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести уведомления обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести уведомления обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
key* | Вывести уведомления по определённому типу уведомления по объекту | filter[key]=change_responsible |
* Возможные значения: change_responsible, comment, notification_read, add_performers, diarytask_completed, diaryevent_completed, diaryevent_started, diarytask_expired, new_user, scenario_notify, new_mail, system_update, incoming_call, chat_new_message.
Документы
JSON API type | document-template-renders |
URL | /api/v1/document-template-renders |
Список | GET /api/v1/document-template-renders |
Создание | POST /api/v1/document-template-renders |
Чтение | GET /api/v1/document-template-renders/{id} |
Скачать PDF | GET /api/v1/document-template-renders/{id}.pdf |
Скачать DOCX | GET /api/v1/document-template-renders/{id}.docx |
Удаление | DELETE /api/v1/document-template-renders/{id} |
Чтение документа
curl "https://app.salesap.ru/api/v1/document-template-renders" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Скачать PDF
curl "https://app.salesap.ru/api/v1/document-template-renders/1.pdf" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
--output file.pdf
Скачать DOCX
curl "https://app.salesap.ru/api/v1/document-template-renders/2.docx" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
--output file.docx
Создание документа
curl "https://app.salesap.ru/api/v1/document-template-renders" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"document-template-renders",
"attributes":{
"name":"Документ"
},
"relationships":{
"document-template":{
"data":{
"type":"document-templates",
"id":"2"
}
},
"entity":{
"data":{
"type":"deals",
"id":"3"
}
}
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "document-template-renders",
"links": {
"self": "https://app.salesap.ru/api/v1/document-template-renders/1"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name":"Документ",
"entity-id": "123123",
"entity-type": "Company",
"entity-name": "ООО Компания"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string |
Документ | да | Название |
previous-responsible-id | integer |
100 |
нет | Предыдущий ответственный |
entity-id | integer |
1 | нет | ID привязанного объекта |
entity-type | string |
Company |
нет | Тип привязанного объекта |
entity-name | string |
ООО Компания |
нет | Наименование привязанного объекта |
Фильтры
Получить список категорий документа созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/document-template-renders" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
document-template-id | Вывести объекты по шаблону документа | filter[document-template-id]=1 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Шаблоны документов
Атрибуты
{
"data": {
"id": "1",
"type": "document-templates",
"links": {
"self": "https://app.salesap.ru/api/v1/document-templates/1"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name":"Шаблон",
"description":"Описание",
"template":"<p>тут будет html шаблон</p>",
"active":true,
"options":{},
"file":{}
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Шаблон | да | Название |
description | string |
Описание | да | Описание |
template | text |
<p>тут будет html шаблон</p> |
да | Шаблон HTML |
active | boolean |
true | да | Активность шаблона |
options | hash |
{"mail_subject"=>""} | да | Опции шаблона |
file | hash |
{"url"=>""} | да | Ссылка на файл шаблона |
* Обязательные поля
Фильтры
Получить список шаблонов документов, созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/document-templates" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
document-template-category-id | Вывести объекты по категории шаблона документа | filter[document-template-category-id]=1 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Категории шаблонов документа
JSON API type | document-template-categories |
URL | /api/v1/document-template-categories |
Список | GET /api/v1/document-template-categories |
Создание | POST /api/v1/document-template-categories |
Чтение | GET /api/v1/document-template-categories/{id} |
Удаление | DELETE /api/v1/document-template-categories/{id} |
Создание категории шаблонов документов
curl "https://app.salesap.ru/api/v1/document-template-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"document-template-categories",
"attributes":{
"name":"Категория",
"purpose":"document",
"position":1
}
}
}
EOF
Атрибуты
{
"data": {
"id": "1",
"type": "document-template-categories",
"links": {
"self": "https://app.salesap.ru/api/v1/document-template-categories/1"
},
"attributes": {
"created-at": "2016-01-14T17:18:25.675+03:00",
"updated-at": "2016-07-15T07:29:05.581+03:00",
"name":"Категория",
"purpose":"document",
"position":1
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Категория | да | Название |
purpose | string |
sms |
да | Назначение шаблонов категории (смс, почтовые сообщения, документы) |
position | integer |
1 | да | Позиция категории документа |
* Обязательные поля
Ограничения по значениям
Аттрибут | Варианты |
---|---|
purpose | sms , mail , document |
Фильтры
Получить список категорий шаблонов документов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/document-template-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Чеклисты
Создание чеклиста для задачи
curl "https://app.salesap.ru/api/v1/checklists" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"checklists",
"attributes":{
"name":"Чеклист из API"
},
"relationships":{
"diary":{
"data":{
"type":"diaries",
"id":"11"
}
}
}
}
}
EOF
JSON API type | checklists |
URL | /api/v1/checklists |
Список | GET /api/v1/checklists |
Чтение | GET /api/v1/checklists/{id} |
Создание | POST /api/v1/checklists |
Редактирование | PATCH /api/v1/checklists/{id} |
Удаление | DELETE /api/v1/checklists/{id} |
Атрибуты
{
"data": {
"type":"checklists",
"id": 1,
"attributes":{
"name":"Наименование",
"position": "1",
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string |
Наименование | да | Название товара |
position | integer |
1 | да | Порядковый номер |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"checklists",
"id":"1",
"relationships":{
"diary":{
"links":{
"self":"/api/v1/checklists/1/relationships/diaries",
"related":"/api/v1/checklists/1/diary"
}
},
"items":{
"links":{
"self":"/api/v1/checklists/1/relationships/items",
"related":"/api/v1/checklists/1/items"
}
}
}
}
}
Название | Связь | JSON API type |
---|---|---|
Задача | diary | diaries |
Создатель | user | users |
Пункты чеклиста | items | checklist-items |
Фильтры
Получить список чеклистов по запросу
curl -G "https://app.salesap.ru/api/v1/checklists/?filter[q]=Чеклист" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
Пункты чеклистов
Создание нового пункта чеклиста
curl "https://app.salesap.ru/api/v1/checklist-items" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"checklist-items",
"attributes":{
"description":"Описание"
}
}
}
EOF
JSON API type | checklist-items |
URL | /api/v1/checklist-items |
Список | GET /api/v1/checklist-items |
Чтение | GET /api/v1/checklist-items/{id} |
Создание | POST /api/v1/checklist-items |
Редактирование | PATCH /api/v1/checklist-items/{id} |
Удаление | DELETE /api/v1/checklist-items/{id} |
Атрибуты
{
"data": {
"type":"checklist-items",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"description":"Описание",
"position":1,
"completed_at":"2021-01-26T12:07:51.572+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
description* | string |
Описание | да | Описание пункта чеклиста |
position | integer |
1 | да | Порядковый номер |
completed_at | datetime |
2021-01-26T12:07:51.572+03:00 |
да | Дата завершения пункта чеклиста |
created-at | datetime |
2016-11-26T12:07:51.572+03:00 |
да | Дата создания |
updated-at | datetime |
2016-11-26T12:07:51.572+03:00 |
нет | Дата обновления |
* Обязательные поля
Группа контактов
JSON API type | contact-groups |
URL | /api/v1/contact-groups |
Список | GET /api/v1/contact-groups |
Создание | POST /api/v1/contact-groups |
Чтение | GET /api/v1/contact-groups/{id} |
Удаление | DELETE /api/v1/contact-groups/{id} |
Чтение группы
curl "https://app.salesap.ru/api/v1/contact-groups" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Создание группы
curl "https://app.salesap.ru/api/v1/contact-groups" \
-X POS