# Контрагент

## Список контрагентов

<mark style="color:blue;">`GET`</mark> `https://api.livesklad.com/counteragents`

Возвращает массив контрагентов

Для сортировки результата необходимо в параметре **sort** передать строку "**<название\_поля> ASC**" или "**<название\_поля> DESC**". Где **ASC** - сортировать по возрастанию, **DESC** - сортировать по убыванию, **<название\_поля>** - поле по которому осуществляется сортировка, может быть одно из: **id**, **typeCounteragent**, **lastAction**, **name**, **howKnow**, **node**, **address**, **email**, **phones**. По умолчанию контрагенты сортируются по имени\
\
Фильтры по датам передаются в виде массива из двух чисел в формате Unix (**в миллисекундах**), где первый число - это начало диапазона, а второе - конец диапазона. Если какая-то граница диапазона отсутствует, то вместо нее нужно передать null. Например \[1690837200000,1693515599999] или \[null,1693515599999]

Из списка с любым заданным набором фильтров можно получить максимум 10000 элементов, то есть максимальное значение для **page** \* **pageSize** = 10000. Чтобы получить другие элементы, нужно либо изменить фильтр, либо изменить сортировку

#### Query Parameters

| Name               | Type    | Description                                                                   |
| ------------------ | ------- | ----------------------------------------------------------------------------- |
| dateCreate         | array   | Фильтр по дате создания                                                       |
| sort               | string  | Сортировка                                                                    |
| filter             | string  | Текст для поиска по контрагентам                                              |
| lastAction         | array   | Фильтр по дате последнего изменения                                           |
| phone              | string  | Телефон для поиска                                                            |
| page               | number  | Номер страницы выборки (по умолчанию - 1)                                     |
| pageSize           | number  | Количество элементов в выборке (по умолчанию - 10, максимум - 50)             |
| isBuyer            | boolean | Фильтр: "Только покупатели"                                                   |
| isVendor           | boolean | Фильтр: "Только поставщики"                                                   |
| howKnowIds         | array   | Фильтр по источникам рекламы, передается в виде массива id источников рекламы |
| typeCounteragentId |         | Фильтр по типу контрагента                                                    |

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Токен авторизации |

{% tabs %}
{% tab title="200: OK " %}

```json
{
  data: [
    {
      isSendSms: false,
      typeCounteragent: {
        name: "Компания",
        id: "63c015adcce57401c832fc15"
      },
      isSendTelegram: false,
      rating: 0,
      name: "GreenSpark",
      isSendEmail: false,
      phones: [],
      isVendor: true,
      isVisible: true,
      isBuyer: false,
      id: "63c015afcce57401c832fca1"
    },
    {
      isSendSms: true,
      typeCounteragent: {
        name: "Частное лицо",
        id: "63c015adcce57401c832fbf5"
      },
      isSendTelegram: false,
      rating: 0,
      name: "Смирнов Иван Андреевич",
      isSendEmail: false,
      phones: [
        "+7 (944) 444-44-44"
      ],
      isVendor: false,
      isVisible: true,
      isBuyer: true,
      id: "63c015afcce57401c832fc9f"
    }
  ],
  total: 2,
  page: 1,
  pageSize: 10,
  sort: {
    field: "name",
    dir: "ASC"
  },
  version: "2.0.0.0",
  remainRequest: 50,
  expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401: Unauthorized Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}

## Создание контрагента

<mark style="color:green;">`POST`</mark> `https://api.livesklad.com/counteragents`

Создает контрагента и возвращает созданную запись

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Токен авторизации |

#### Request Body

| Name                                                 | Type    | Description                                                              |
| ---------------------------------------------------- | ------- | ------------------------------------------------------------------------ |
| name<mark style="color:red;">\*</mark>               | string  | Имя контрагента                                                          |
| typeCounteragentId<mark style="color:red;">\*</mark> | string  | id типа контрагента                                                      |
| isBuyer<mark style="color:red;">\*</mark>            | boolean | Контрагент является покупателем                                          |
| isVendor<mark style="color:red;">\*</mark>           | boolean | Контрагент является поставщиком                                          |
| email                                                | string  | email контрагента                                                        |
| howKnowId                                            | string  | id источника рекламы контрагента                                         |
| address                                              | string  | Адрес контрагента                                                        |
| phones                                               | array   | Телефоны контрагента, передается в виде массива строк                    |
| node                                                 | string  | Примечание                                                               |
| isSendSms                                            | boolean | Контрагенту можно отправлять смс-сообщения (по умолчанию - false)        |
| rating                                               | number  | Рейтинг контрагента (обычный: 0, негативный клиент: -1, позитивный: 1)   |
| customFields                                         | array   | Массив пользовательских полей                                            |
| isSendTelegram                                       | boolean | Контрагенту можно отправлять сообщения в Telegram (по умолчанию - false) |
| isSendEmail                                          | boolean | Контрагенту можно отправлять письма на email (по умолчанию - false)      |

{% tabs %}
{% tab title="200 " %}

```json
{
    data: {
        isBuyer: true,
        isVendor: false,
        isSendSms: false,
        isSendEmail: false,
        isSendTelegram: false,
        dateCreate: "2022-12-13T12:40:09.553Z",
        lastAction: "2022-12-13T12:40:09.553Z",
        rating: 0,
        name: "Иванов Павел",
        phones: [
            "+7 (999) 123-45-67"
        ],
        isVisible: true,
        id: "63c151296690d34d165b803d",
        balance: 0,
        typeCounteragent: {
            id: "63c015adcce57401c832fbf5",
            name: "Частное лицо"
        }
    },
    version: "2.0.0.0",
    remainRequest: 50,
    expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401 Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}

## Изменение контрагента

<mark style="color:purple;">`PATCH`</mark> `https://api.livesklad.com/counteragents/{id}`

Изменяет информацию в карточке контрагента

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Токен авторизации |

#### Request Body

| Name               | Type    | Description                                                            |
| ------------------ | ------- | ---------------------------------------------------------------------- |
| name               | string  | Имя контрагента                                                        |
| isSendSms          | boolean | Контрагенту можно отправлять смс-сообщения                             |
| node               | string  | Примечание                                                             |
| phones             | array   | Телефоны контрагента, передаются в виде массива строк                  |
| address            | string  | Адрес контрагента                                                      |
| howKnowId          | string  | id источника рекламы                                                   |
| email              | string  | email контрагента                                                      |
| isVendor           | boolean | Контрагент является поставщиком                                        |
| isBuyer            | boolean | Контрагент является покупателем                                        |
| typeCounteragentId | string  | id типа контрагента                                                    |
| isSendEmail        | boolean | Контрагенту можно отправлять письма на email                           |
| isSendTelegram     | boolean | Контрагенту можно отправлять сообщения в Telegram                      |
| rating             | number  | Рейтинг контрагента (обычный: 0, негативный клиент: -1, позитивный: 1) |
| customFields       | array   | Массив пользовательских полей                                          |

{% tabs %}
{% tab title="200: OK " %}

```json
{
    data: {
        isBuyer: true,
        isVendor: false,
        isSendSms: false,
        isSendEmail: false,
        isSendTelegram: false,
        dateCreate: "2022-12-13T12:40:09.553Z",
        lastAction: "2022-12-13T12:40:09.553Z",
        rating: 0,
        name: "Иванов Павел",
        phones: [
            "+7 (999) 123-45-67"
        ],
        isVisible: true,
        id: "63c151296690d34d165b803d",
        balance: 0,
        typeCounteragent: {
            id: "63c015adcce57401c832fbf5",
            name: "Частное лицо"
        }
    },
    version: "2.0.0.0",
    remainRequest: 50,
    expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401: Unauthorized Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}

**customFields** передается в формате:

```
[
  {
    id: "5e0cea8e7ae81e080c8be6d8",
    value: true
  },
  {
    id: "5e0ceaf77ae81e080c8be700",
    value: "Приоритетный клиент"
  }
]
```

По умолчанию обязательными являются только поля **name**, **typeCounteragentId**, **isBuyer**, **isVendor**. Но в случае если для указанного типа контрагента (определяется по **typeCounteragentId**) изменена форма контрагента, то обязательными могут быть так же и другие поля

## Список типов контрагентов

<mark style="color:blue;">`GET`</mark> `https://api.livesklad.com/type-counteragents`

Возвращает массив типов контрагентов

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Токен авторизации |

{% tabs %}
{% tab title="200 " %}

```json
{
  data: [
    {
      name: "Частное лицо",
      sort: 2,
      id: "63c015adcce57401c832fbf5"
    },
    {
      name: "Компания",
      sort: 1,
      id: "63c015adcce57401c832fc15"
    }
  ],
  version: "2.0.0.0",
  remainRequest: 50,
  expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401 Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}

## Список пользовательских полей для типа контрагента

<mark style="color:blue;">`GET`</mark> `https://api.livesklad.com/type-counteragents/{id}/fields`

Возвращает массив пользовательских полей для типа контрагента

#### Path Parameters

| Name                                 | Type   | Description         |
| ------------------------------------ | ------ | ------------------- |
| id<mark style="color:red;">\*</mark> | string | id типа контрагента |

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Токен авторизации |

{% tabs %}
{% tab title="200 " %}

```json
{
  data: [
    {
      id: "5d4c13abcf76126f63994b6e",
      description: "Рабочий адрес",
      type: "counteragent",
      dataType: "string",
      items: null,
      defaultValue: null
    },
    {
      id: "5e0a0dfdb955fb765ad25b3c",
      description: "Договор",
      type: "counteragent",
      dataType: "boolean",
      items: null,
      defaultValue: null
    }
  ],
  version: "2.0.0.0",
  remainRequest: 50,
  expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401 Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}

## Информация о контрагенте

<mark style="color:blue;">`GET`</mark> `https://api.livesklad.com/counteragents/{id}`

Возвращает полную информацию о контрагенте

#### Path Parameters

| Name                                 | Type   | Description    |
| ------------------------------------ | ------ | -------------- |
| id<mark style="color:red;">\*</mark> | string | id контрагента |

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Токен авторизации |

{% tabs %}
{% tab title="200 " %}

```json
{
  data: {
    dateCreate: "2022-12-12T14:14:07.820Z",
    lastAction: "2022-12-12T14:14:07.820Z",
    name: "GreenSpark",
    phones: [],
    isBuyer: false,
    isVendor: true,
    isSendSms: false,
    rating: 0,
    isVisible: true,
    isSendEmail: false,
    isSendTelegram: false,
    id: "63c015afcce57401c832fca1",
    typeCounteragent: {
      name: "Компания",
      id: "63c015adcce57401c832fc15"
    }
  },
  version: "2.0.0.0",
  remainRequest: 50,
  expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401 Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.livesklad.com/api/counteragent.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
