NAV
shell

Введение

Спасибо за выбор 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 да Факс
email 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 да ВКонтакте
facebook string facebook.com да Facebook
linkedin string ru.linkedin.com да Linked-in
odnoklassniki string   да Одноклассники
instagram string instagram.com да Instagram
twitter string twitter.com да Twitter
whatsapp string   да WhatsApp
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 Вывести объекты по определенному 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 да Факс
email 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 Вывести объекты по определенному 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 Иванович да Отчество
email string test@mail.ru да Email
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 Факс
email E-mail
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 Доп. тел.
email E-mail
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
facebook Facebook
linkedin LinkedIn
odnoklassniki Одноклассники
instagram Instagram
twitter Twitter
whatsapp WhatsApp
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
email E-mail
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