# Площадки ATI.SU

«Площадки ATI.SU — это сервис для распределения грузов между доверенными перевозчиками и экспедиторами. Создайте Площадку, пригласите на нее контрагентов и размещайте грузы. Никто, кроме участников Площадки не увидит ваш Заказ.
Вы можете размещать грузы на одной или сразу на нескольких Площадках. Размещение груза на сайте ATI.SU для всех участников считается размещением на Общей Площадке.

## Возможности Площадок

- Распределение грузов среди доверенных контрагентов.
- Автоматическое получение данных о перевозчике, водителе и машине без звонков при бронировании и создании Заказа;
- Проведение Торгов и Сквозных Торгов, а также их гибкая настройка.
- Разделение партнеров на группы. Создав разные Площадки, вы можете выбирать, какие партнеры увидят груз первыми, а какие — последними.
- Автоматическое перевыставление на Площадке грузов с Площадки партнера с учетом вашей маржи с помощью механизма Копирования грузов.
- Анализ эффективности работы с контрагентами с помощью множества отчетов.
- Копирование грузов из системы ATrucks.
- Тестирование. Если на Площадке нет участников, никто не увидит грузы размещенные на ней.
- Поиск новых партнеров. Создайте Открытую Площадку и дайте участникам ATI.SU возможность вступать на нее по вашему разрешению.

## Типичный жизненный цикл Площадки

- Создание и выбор типа Площадки: публичная или закрытая.
- Настройка прав доступа: кто может видеть грузы, добавлять грузы, видеть список участников Площадки.
- Приглашение контрагентов на Площадку.
- Если Площадка открытая, вы будете получать заявки на вступление на Площадку.
- Добавление грузов на Площадку.
- Автоматическое оповещение участников Площадки о новых грузах.
- Удаление Площадки, если она больше не нужна.

## API Площадок. Используемые термины

Площадка `Board` — пользователи, имеющие доступ к грузам или машинам Площадки;
Участие `Participant`, `Participation` — запись об участии пользователя на Площадке.
`Participant` появляется в момент приглашения пользователя на Площадку и имеет `Type=invited`.
Если контрагент принял приглашение, он становится полноправным участником `Type=user`.

## Возможности работы с Площадками через API:

- [Создание и получение Площадок](#создание-и-получение-площадок)
- [Добавление и настройка пользователей на Площадках](#добавление-и-настройка-пользователей-на-площадках)
- [Использование Площадок в грузах](#использование-площадок-в-грузах)

## Создание и получение Площадок

### Создание

Фирма может создать до 100 Площадок. Контакт фирмы, создавший Площадку, считается ответственным за нее.

### Важные параметры Площадки:

- `BoardType` на текущий момент принимает только значение `loads` — Площадки для грузов. В дальнейшем планируется запуск Площадок для машин.
- `BoardExchangeDirection` — направление обмена грузами на Площадке, определяет права доступа к участникам Площадки по умолчанию. Права можно перенастроить персонально для каждого.
  - `Input` — грузы публикуются участниками Площадки для её владельца. Участники видят только свои грузы, а владелец Площадки видит всё.
  - `Output` — владелец Площадки публикует грузы для участников. Участники видят опубликованные грузы, но не могут их добавлять.
  - `Exchange` — участники Площадки могут добавлять и просматривать грузы.
- `Public`.
  - На скрытые Площадки участник может попасть только по приглашению invite.
  - На открытую Площадку участник ATI.SU может подать заявку на вступление Application, которую владелец может одобрить или отклонить.

### Создание Площадки

<a id="post-v2-boards-public-boards-create"></a>

**Версия: 2**

Создать площадку

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/boards/create' \
  -X 'POST' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "all_departments_allowed": false,
  "board_exchange_direction": "input",
  "board_type": "loads",
  "color": "string",
  "departments_ids": [
    0
  ],
  "description": "string",
  "name_for_users": "string",
  "private_name": "string",
  "public": false,
  "responsible_contact_id": 0,
  "rules": "string"
}'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Описание полей запроса**
- `all_departments_allowed` — Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения Если передано true, то DepartmentsIds должен быть null или пустым Пример: true
- `board_exchange_direction` — Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию) * `exchange` — Обмен грузами/машинами * `input` — Грузы/машины для владельца площадки * `output` - Грузы/машины от владельца площадки
- `board_type` — Тип площадки * `loads` - Площадка с грузами * `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
- `color` — Цвет плашки площадки Пример: `"#FF00FF"`
- `departments_ids` — Перечень подразделений компании, которым доступна площадка. В случае, если передан не пустой перечень значение AllDepartmentsAllowed должно быть false. Ответственный контакт ResponsibleContactId должен состоять (принадлежать) хотя бы одному из указанных подразделений Пример: `[100302, 100303]`
- `description` — Описание площадки (можно использовать тэги "b", "i", "span", "u", "ul", "li", "br") Пример: `"Лучшая площадка из всех созданных"`
- `name_for_users` — Публичное имя, видимое участникам площадки (до 50 символов) Пример: `"Приходите, покупайте"`
- `private_name` — Имя, которое видит только владелец площадки (до 50 символов) Пример: `"Покупайте, приходите"`
- `public` — Открытая площадка или закрытая. На открытую может подать заявку на вступление любой пользователь. На закрытую можно попасть только по приглашению владельца. Пример: `true`
- `responsible_contact_id` — ID контакта ответственного пользователя Пример: `1`
- `rules` — Правила участия, которые требуется принять участникам при вступлении (можно использовать тэги "b", "i", "span", "u", "ul", "li", "br") Пример: `"Только красные машины"`

**Пример ответа (200)**

```json
{
  "all_departments_allowed": false,
  "available_for_contact": false,
  "board_exchange_direction": "input",
  "board_type": "loads",
  "color": "string",
  "created_on": "1970-01-01T00:00:00.000Z",
  "departments_ids": [
    0
  ],
  "id": "string",
  "name": "string",
  "owner_firm": 0,
  "updated_on": "1970-01-01T00:00:00.000Z",
  "view_only_own": false
}
```

**Описание полей ответа**
- `all_departments_allowed` — Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения Пример: true
- `available_for_contact` — Площадка доступна для данного контакта Пример: `true`
- `board_exchange_direction` — Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию) * `exchange` — Обмен грузами/машинами * `input` — Грузы/машины для владельца площадки * `output` - Грузы/машины от владельца площадки
- `board_type` — Тип площадки * `loads` - Площадка с грузами * `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
- `color` — Цвет площадки Пример: `"#FF00FF"`
- `created_on` — Время создания площадки (timestamp) Пример: `1556201954901`
- `departments_ids` — Перечень подразделений компании, которым доступна площадка Пример: `[100302, 100303]`
- `id` — ID площадки (строка 24 символа) Пример: `"507f1f77bcf86cd799439011"`
- `name` — Название площадки Пример: `"Образцово-показательная площадка"`
- `owner_firm` — Код участника ATI.SU создавшего площадку Пример: `1111111`
- `updated_on` — Последнее время изменения площадки (Timestamp) Пример: `1556201954901`
- `view_only_own` — Участник может видеть только свои грузы/машины Пример: `true`

**Пример ответа (400)**

```json
{
  "error": "string",
  "reason": "string",
  "details": {
    "any-key": null
  },
  "errors_list": [
    "string"
  ]
}
```

**Описание полей ответа**
- `error` — Код ошибки
- `reason` — Текст ошибки
- `details` — Детали ошибки при валидации запроса. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено
- `errors_list` — Список ошибок. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено


### Получение заданной Площадки по её ID.

У каждой Площадки есть свой идентификатор. Идентификатор Площадки — строка из 24 символов.

<a id="get-v2-boards-public-boards-{id}"></a>

**Версия: 2**

Загрузить информацию по площадке

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/boards/string' \
  -X 'GET' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Пример ответа (200)**

```json
{
  "all_departments_allowed": false,
  "available_for_contact": false,
  "board_exchange_direction": "input",
  "board_type": "loads",
  "color": "string",
  "created_on": "1970-01-01T00:00:00.000Z",
  "departments_ids": [
    0
  ],
  "id": "string",
  "name": "string",
  "owner_firm": 0,
  "updated_on": "1970-01-01T00:00:00.000Z",
  "view_only_own": false
}
```

**Описание полей ответа**
- `all_departments_allowed` — Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения Пример: true
- `available_for_contact` — Площадка доступна для данного контакта Пример: `true`
- `board_exchange_direction` — Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию) * `exchange` — Обмен грузами/машинами * `input` — Грузы/машины для владельца площадки * `output` - Грузы/машины от владельца площадки
- `board_type` — Тип площадки * `loads` - Площадка с грузами * `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
- `color` — Цвет площадки Пример: `"#FF00FF"`
- `created_on` — Время создания площадки (timestamp) Пример: `1556201954901`
- `departments_ids` — Перечень подразделений компании, которым доступна площадка Пример: `[100302, 100303]`
- `id` — ID площадки (строка 24 символа) Пример: `"507f1f77bcf86cd799439011"`
- `name` — Название площадки Пример: `"Образцово-показательная площадка"`
- `owner_firm` — Код участника ATI.SU создавшего площадку Пример: `1111111`
- `updated_on` — Последнее время изменения площадки (Timestamp) Пример: `1556201954901`
- `view_only_own` — Участник может видеть только свои грузы/машины Пример: `true`

**Пример ответа (400)**

```json
{
  "error": "string",
  "reason": "string",
  "details": {
    "any-key": null
  },
  "errors_list": [
    "string"
  ]
}
```

**Описание полей ответа**
- `error` — Код ошибки
- `reason` — Текст ошибки
- `details` — Детали ошибки при валидации запроса. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено
- `errors_list` — Список ошибок. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено


### Получение списка всех актуальных Площадок

Данный метод возвращает все Площадки: созданные вами и те, где вы являетесь участником.

<a id="get-v2-boards-public-boards-list"></a>

**Версия: 2**

Список площадок, на которые пользователь может добавлять грузы или машины

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/boards/list' \
  -X 'GET' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Пример ответа (200)**

```json
[
  {
    "all_departments_allowed": false,
    "available_for_contact": false,
    "board_exchange_direction": "input",
    "board_type": "loads",
    "color": "string",
    "created_on": "1970-01-01T00:00:00.000Z",
    "departments_ids": [
      0
    ],
    "id": "string",
    "name": "string",
    "owner_firm": 0,
    "updated_on": "1970-01-01T00:00:00.000Z",
    "view_only_own": false,
    "auctions_count": 0,
    "can_add": false,
    "can_view": false,
    "content_count": 0,
    "participants_count": 0,
    "tenders_count": 0
  }
]
```

**Описание полей ответа**
- `[].all_departments_allowed` — Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения Пример: true
- `[].available_for_contact` — Площадка доступна для данного контакта Пример: `true`
- `[].board_exchange_direction` — Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию) * `exchange` — Обмен грузами/машинами * `input` — Грузы/машины для владельца площадки * `output` - Грузы/машины от владельца площадки
- `[].board_type` — Тип площадки * `loads` - Площадка с грузами * `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
- `[].color` — Цвет площадки Пример: `"#FF00FF"`
- `[].created_on` — Время создания площадки (timestamp) Пример: `1556201954901`
- `[].departments_ids` — Перечень подразделений компании, которым доступна площадка Пример: `[100302, 100303]`
- `[].id` — ID площадки (строка 24 символа) Пример: `"507f1f77bcf86cd799439011"`
- `[].name` — Название площадки Пример: `"Образцово-показательная площадка"`
- `[].owner_firm` — Код участника ATI.SU создавшего площадку Пример: `1111111`
- `[].updated_on` — Последнее время изменения площадки (Timestamp) Пример: `1556201954901`
- `[].view_only_own` — Участник может видеть только свои грузы/машины Пример: `true`
- `[].auctions_count` — Количество содержимого (грузов) с аукционами на площадке Пример: `5`
- `[].can_add` — Есть ли право добавлять грузы Пример: `false`
- `[].can_view` — Есть ли право просматривать грузы Пример: `true`
- `[].content_count` — Количество грузов или машин на площадке Пример: `34`
- `[].participants_count` — Количество участников площадки Пример: `15`
- `[].tenders_count` — Количество тендеров на площадке Пример: `2`


### Получение Площадок для добавления груза canAdd.

Этот метод предоставит список Площадок, на которые вы можете добавлять грузы.

<a id="get-v2-boards-public-boards-canAdd"></a>

**Версия: 2**

Список площадок, на которые пользователь может добавлять грузы или машины

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/boards/canAdd' \
  -X 'GET' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Пример ответа (200)**

```json
[
  {
    "all_departments_allowed": false,
    "available_for_contact": false,
    "board_exchange_direction": "input",
    "board_type": "loads",
    "color": "string",
    "created_on": "1970-01-01T00:00:00.000Z",
    "departments_ids": [
      0
    ],
    "id": "string",
    "name": "string",
    "owner_firm": 0,
    "updated_on": "1970-01-01T00:00:00.000Z",
    "view_only_own": false
  }
]
```

**Описание полей ответа**
- `[].all_departments_allowed` — Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения Пример: true
- `[].available_for_contact` — Площадка доступна для данного контакта Пример: `true`
- `[].board_exchange_direction` — Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию) * `exchange` — Обмен грузами/машинами * `input` — Грузы/машины для владельца площадки * `output` - Грузы/машины от владельца площадки
- `[].board_type` — Тип площадки * `loads` - Площадка с грузами * `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
- `[].color` — Цвет площадки Пример: `"#FF00FF"`
- `[].created_on` — Время создания площадки (timestamp) Пример: `1556201954901`
- `[].departments_ids` — Перечень подразделений компании, которым доступна площадка Пример: `[100302, 100303]`
- `[].id` — ID площадки (строка 24 символа) Пример: `"507f1f77bcf86cd799439011"`
- `[].name` — Название площадки Пример: `"Образцово-показательная площадка"`
- `[].owner_firm` — Код участника ATI.SU создавшего площадку Пример: `1111111`
- `[].updated_on` — Последнее время изменения площадки (Timestamp) Пример: `1556201954901`
- `[].view_only_own` — Участник может видеть только свои грузы/машины Пример: `true`


### Получение Площадок для поиска груза canView.

Этот метод позволяет узнать, на каких Площадках вы можете видеть грузы.

<a id="get-v2-boards-public-boards-canView"></a>

**Версия: 2**

Получает список площадок, на которых участник может видеть грузы/машины

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/boards/canView' \
  -X 'GET' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Пример ответа (200)**

```json
[
  {
    "all_departments_allowed": false,
    "available_for_contact": false,
    "board_exchange_direction": "input",
    "board_type": "loads",
    "color": "string",
    "created_on": "1970-01-01T00:00:00.000Z",
    "departments_ids": [
      0
    ],
    "id": "string",
    "name": "string",
    "owner_firm": 0,
    "updated_on": "1970-01-01T00:00:00.000Z",
    "view_only_own": false
  }
]
```

**Описание полей ответа**
- `[].all_departments_allowed` — Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения Пример: true
- `[].available_for_contact` — Площадка доступна для данного контакта Пример: `true`
- `[].board_exchange_direction` — Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию) * `exchange` — Обмен грузами/машинами * `input` — Грузы/машины для владельца площадки * `output` - Грузы/машины от владельца площадки
- `[].board_type` — Тип площадки * `loads` - Площадка с грузами * `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
- `[].color` — Цвет площадки Пример: `"#FF00FF"`
- `[].created_on` — Время создания площадки (timestamp) Пример: `1556201954901`
- `[].departments_ids` — Перечень подразделений компании, которым доступна площадка Пример: `[100302, 100303]`
- `[].id` — ID площадки (строка 24 символа) Пример: `"507f1f77bcf86cd799439011"`
- `[].name` — Название площадки Пример: `"Образцово-показательная площадка"`
- `[].owner_firm` — Код участника ATI.SU создавшего площадку Пример: `1111111`
- `[].updated_on` — Последнее время изменения площадки (Timestamp) Пример: `1556201954901`
- `[].view_only_own` — Участник может видеть только свои грузы/машины Пример: `true`

<a id="get-v1.0-boards-external-board-canView"></a>

**Версия: 1.0**

Получает список площадок, на которых участник может видеть грузы/машины

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v1.0/boards/external/board/canView' \
  -X 'GET' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Пример ответа (200)**

```json
[
  {
    "BoardExchangeDirection": "input",
    "BoardType": "loads",
    "Color": "string",
    "CreatedOn": "1970-01-01T00:00:00.000Z",
    "ID": "string",
    "LogoUrl": "string",
    "Name": "string",
    "OwnerFirm": 0,
    "UpdatedOn": "1970-01-01T00:00:00.000Z",
    "ViewOnlyOwn": false
  }
]
```

**Описание полей ответа**
- `[].BoardExchangeDirection` — Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию) * `exchange` — Обмен грузами/машинами * `input` — Грузы/машины для владельца площадки * `output` - Грузы/машины от владельца площадки
- `[].BoardType` — Тип площадки * `loads` - Площадка с грузами * `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
- `[].Color` — Цвет площадки Пример: `"#FF00FF"`
- `[].CreatedOn` — Время создания площадки (timestamp) Пример: `1556201954901`
- `[].ID` — ID площадки (строка 24 символа) Пример: `"507f1f77bcf86cd799439011"`
- `[].LogoUrl` — Относительный путь к логотипу площадки [устарело] Пример: `"board/defaultlogo/68/5cc1a5c255b56480407c43e1"`
- `[].Name` — Название площадки Пример: `"Образцово-показательная площадка"`
- `[].OwnerFirm` — Код участника ATI.SU создавшего площадку Пример: `1111111`
- `[].UpdatedOn` — Последнее время изменения площадки (Timestamp) Пример: `1556201954901`
- `[].ViewOnlyOwn` — Участник может видеть только свои грузы/машины Пример: `true`


### Получение списка ID моих Площадок.

Этот метод покажет ID всех Площадок, которые были созданы вами.

<a id="get-v2-boards-public-boards-my"></a>

**Версия: 2**

Получает список ID площадок, принадлежащих участнику ATI.SU.

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/boards/my' \
  -X 'GET' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Пример ответа (200)**

```json
[
  "string"
]
```


### Получение списка ID Площадок с вашим участием.

Этот метод покажет ID всех Площадок, на которых вы состоите.

<a id="get-v2-boards-public-boards-participating"></a>

**Версия: 2**

Получает список ID площадок, на которых состоит участник ATI.SU.

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/boards/participating' \
  -X 'GET' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Пример ответа (200)**

```json
[
  "string"
]
```


## Добавление и настройка пользователей на Площадках

### Типы участия пользователей на Площадках

Каждая связь фирмы и Площадки является участием. У участия могут быть разные типы: владелец Площадки, приглашенный, участник. Некоторые типы можно поменять на другие, если это разрешено логикой приложения.

| Тип            | Описание                   | Заметка                                                                                   |
| :------------- | :------------------------- | :---------------------------------------------------------------------------------------- |
| User           | Пользователь               | Полноценный пользователь Площадки                                                         |
| Revoked        | Отозвано                   | Выславший приглашение отозвал его                                                         |
| Rejected       | Отказ                      | Приглашённый отказался от вступления на Площадку                                          |
| Invited        | Приглашение                | Пользователь приглашён на Площадку, но ещё не принял приглашение                          |
| InvitedViewed  | Приглашение просмотрено    | Один из контактов приглашённой фирмы просмотрел приглашение, но не ответил                |
| RejectedViewed | Отказ просмотрен           | Один из контактов приглашающей фирмы открывал страницу, на которой виден отказ от участия |
| Left           | Участник покинул Площадку  | Служебный статус                                                                          |
| Deleted        | Участник удалён с Площадки | Служебный статус                                                                          |
| Owner          | Владелец Площадки          |

### Приглашение участника ATI.SU на Площадку.

Чтобы участник ATI.SU смог пользоваться вашей Площадкой, вышлите ему приглашение.
Приглашение — это один из типов участия на Площадке, запись с типом `Type=invited`.
Принятие приглашения пользователем просто меняет тип участия на `Type=user`.
ID приглашения после принятия приглашения остаётся неизменным и работает как ID участника.

<a id="post-v2-boards-public-participants-invite"></a>

**Версия: 2**

Пригласить участника ATI.SU на площадку (создание участника площадки с типом Invited)

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/participants/invite' \
  -X 'POST' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "ati_id": "string",
  "board_id": "string",
  "contact_id": 0
}'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Описание полей запроса**
- `ati_id` — код участника в ATI.SU
- `board_id` — ID площадки
- `contact_id` — ID контакта

**Пример ответа (200)**

```json
{}
```

**Пример ответа (400)**

```json
{
  "error": "string",
  "reason": "string",
  "details": {
    "any-key": null
  },
  "errors_list": [
    "string"
  ]
}
```

**Описание полей ответа**
- `error` — Код ошибки
- `reason` — Текст ошибки
- `details` — Детали ошибки при валидации запроса. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено
- `errors_list` — Список ошибок. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено


### Как посмотреть, кто приглашает вас на свои Площадки.

Принять или отклонить приглашение можно с помощью [метода модификации участия](#модификация-участника-площадки).

<a id="get-v2-boards-public-participants-invite-my"></a>

**Версия: 2**

Получает список приглашений

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/participants/invite/my' \
  -X 'GET' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Пример ответа (200)**

```json
[
  {
    "board_info": {
      "all_departments_allowed": false,
      "available_for_contact": false,
      "board_exchange_direction": "input",
      "board_type": "loads",
      "color": "string",
      "created_on": "1970-01-01T00:00:00.000Z",
      "departments_ids": [
        0
      ],
      "id": "string",
      "name": "string",
      "owner_firm": 0,
      "updated_on": "1970-01-01T00:00:00.000Z",
      "view_only_own": false
    },
    "participant": {
      "ati_id": "string",
      "board_id": "string",
      "can_add": false,
      "created_on": "1970-01-01T00:00:00.000Z",
      "responsible_contact_id": 0,
      "sender_ati_id": "string",
      "type": "user",
      "type_changed": "1970-01-01T00:00:00.000Z",
      "view_content": false,
      "view_participants": false
    }
  }
]
```

**Описание полей ответа**
- `[].board_info` — Информация о площадке, на которую создано приглашение
- `[].board_info.all_departments_allowed` — Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения Пример: true
- `[].board_info.available_for_contact` — Площадка доступна для данного контакта Пример: `true`
- `[].board_info.board_exchange_direction` — Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию) * `exchange` — Обмен грузами/машинами * `input` — Грузы/машины для владельца площадки * `output` - Грузы/машины от владельца площадки
- `[].board_info.board_type` — Тип площадки * `loads` - Площадка с грузами * `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
- `[].board_info.color` — Цвет площадки Пример: `"#FF00FF"`
- `[].board_info.created_on` — Время создания площадки (timestamp) Пример: `1556201954901`
- `[].board_info.departments_ids` — Перечень подразделений компании, которым доступна площадка Пример: `[100302, 100303]`
- `[].board_info.id` — ID площадки (строка 24 символа) Пример: `"507f1f77bcf86cd799439011"`
- `[].board_info.name` — Название площадки Пример: `"Образцово-показательная площадка"`
- `[].board_info.owner_firm` — Код участника ATI.SU создавшего площадку Пример: `1111111`
- `[].board_info.updated_on` — Последнее время изменения площадки (Timestamp) Пример: `1556201954901`
- `[].board_info.view_only_own` — Участник может видеть только свои грузы/машины Пример: `true`
- `[].participant` — Параметры участия на площадке
- `[].participant.ati_id` — код в ATI.SU участника
- `[].participant.board_id` — ID площадки
- `[].participant.can_add` — Может ли добавлять грузы/машины на площадку
- `[].participant.created_on` — Дата вступления (приглашения) на площадку
- `[].participant.responsible_contact_id` — ID контакта, ответственного за площадку
- `[].participant.sender_ati_id` — код в ATI.SU пригласившего (владельца площадки)
- `[].participant.type` — Тип участия
- `[].participant.type_changed` — Время последней смены типа участия
- `[].participant.view_content` — Может ли видеть грузы/машины площадки
- `[].participant.view_participants` — Может ли видеть других участников площадки

**Пример ответа (400)**

```json
{
  "Code": "string",
  "Message": "string"
}
```

**Описание полей ответа**
- `Code` — В некоторых случаях (валидация) - ID ошибки, например ApplicationAlreadyCreated в случае "вы уже подали заявку на эту площадку"
- `Message` — Человекочитаемый текст ошибки


### Получение списка участников Площадки.

ID — это идентификатор Площадки, а параметры offset и limit используются, чтобы разбить список на страницы. Эти два параметра можно не указывать, тогда все участники Площадки будут отображены без разбивки на страницы.

<a id="post-v2-boards-public-participants-list"></a>

**Версия: 2**

Получить список участников площадки

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/participants/list' \
  -X 'POST' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "board_ids": [
    "string"
  ],
  "limit": 0,
  "offset": 0,
  "only_my": false,
  "type": "user"
}'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Описание полей запроса**
- `board_ids` — Отфильтровать по площадкам
- `limit` — Ограничение количества для постраничных запросов
- `offset` — Отступ для постраничных запросов
- `only_my` — Показывать только свои участия
- `type` — Отфильтровать по типу участия * `user` - Полноценный участник площадки * `revoked` - Приглашение отозвано * `rejected` - Отказ от приглашения * `invited` - Участник приглашён на площадку * `invitedViewed` - Приглашение просмотрено * `rejectedViewed` - Отказ просмотрен * `left` - Участник покинул площадку * `deleted` - Участник удалён с площадки * `firmDeleted` - Участник удалён из ATI.SU * `owner` - Владелец площадки

**Пример ответа (200)**

```json
{
  "result": [
    {
      "ati_id": "string",
      "board_id": "string",
      "can_add": false,
      "created_on": "1970-01-01T00:00:00.000Z",
      "responsible_contact_id": 0,
      "sender_ati_id": "string",
      "type": "user",
      "type_changed": "1970-01-01T00:00:00.000Z",
      "view_content": false,
      "view_participants": false
    }
  ],
  "total_count": 0
}
```

**Описание полей ответа**
- `result` — Массив результатов
- `result[].ati_id` — код в ATI.SU участника
- `result[].board_id` — ID площадки
- `result[].can_add` — Может ли добавлять грузы/машины на площадку
- `result[].created_on` — Дата вступления (приглашения) на площадку
- `result[].responsible_contact_id` — ID контакта, ответственного за площадку
- `result[].sender_ati_id` — код в ATI.SU пригласившего (владельца площадки)
- `result[].type` — Тип участия
- `result[].type_changed` — Время последней смены типа участия
- `result[].view_content` — Может ли видеть грузы/машины площадки
- `result[].view_participants` — Может ли видеть других участников площадки
- `total_count` — Всего результатов, количество

**Пример ответа (400)**

```json
{
  "error": "string",
  "reason": "string",
  "details": {
    "any-key": null
  },
  "errors_list": [
    "string"
  ]
}
```

**Описание полей ответа**
- `error` — Код ошибки
- `reason` — Текст ошибки
- `details` — Детали ошибки при валидации запроса. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено
- `errors_list` — Список ошибок. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено


### Модификация участника Площадки.

С помощью этого метода приглашенный участник может принять приглашение, а владелец Площадки может изменить права доступа участника. Например, удалить с Площадки.

Обязательные параметры — код участника ATI.SU и ID Площадки. Все остальные параметры — опциональны, и будут применены только если у пользователя, отправившего запрос, есть права на данное изменение.

- `Type` меняет тип участия.
- `CanAdd` дает участнику право добавлять грузы на Площадку.
- `ViewParticipants` дает право видеть других участников.
- `ViewContent` дает право видеть грузы других участников Площадки.

<a id="post-v2-boards-public-participants-modify"></a>

**Версия: 2**

Поменять параметры участника площадки

**Пример запроса (curl):**

```bash
curl 'https://api.ati.su/v2/boards/public/participants/modify' \
  -X 'POST' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "ati_id": "string",
  "board_id": "string",
  "can_add": false,
  "type": "user",
  "view_content": false,
  "view_participants": false
}'
```

**OpenAPI схема:** [JSON](https://ati.su/developers/raw/api/boards.openapi.json)

**Описание полей запроса**
- `ati_id` — ID участника ATI
- `board_id` — ID площадки
- `can_add` — Может ли добавлять грузы/машины на площадку
- `type` — Тип участия на площадке * `user` - Полноценный участник площадки * `revoked` - Приглашение отозвано * `rejected` - Отказ от приглашения * `invited` - Участник приглашён на площадку * `invitedViewed` - Приглашение просмотрено * `rejectedViewed` - Отказ просмотрен * `left` - Участник покинул площадку * `deleted` - Участник удалён с площадки * `firmDeleted` - Участник удалён из ATI.SU * `owner` - Владелец площадки
- `view_content` — Может ли видеть грузы/машины площадки
- `view_participants` — Может ли видеть других участников площадки

**Пример ответа (200)**

```json
{}
```

**Пример ответа (400)**

```json
{
  "error": "string",
  "reason": "string",
  "details": {
    "any-key": null
  },
  "errors_list": [
    "string"
  ]
}
```

**Описание полей ответа**
- `error` — Код ошибки
- `reason` — Текст ошибки
- `details` — Детали ошибки при валидации запроса. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено
- `errors_list` — Список ошибок. Поле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено


## Использование Площадок в грузах.

При [добавлении груза](https://ati.su/developers/raw/api/loads/published.md#post-public-v2-cargos) необходимо указывать, на каких Площадок он должен быть опубликован.
Есть два типа Плошадок:

- Общая площадка. Грузы на ней будут доступны всем участникам Биржи [ATI.SU](https://ati.su). Она имеет постоянный идентификатор `a0a0a0a0a0a0a0a0a0a0a0a0`
- Персональная Площадка. На ней грузы доступны только для участников Площадки. Идентификаторы можно получить с помощью любого из методов [получения Площадок](#получение-заданной-площадки-по-её-id)
---

## llms.txt

Индекс ключевых страниц документации для LLM и AI-агентов доступен в [основном llms.txt](https://ati.su/developers/llms.txt).
