# API раздела «Ваши машины»

API позволяет управлять вашими машинами — добавлять, изменять и удалять их.

## Терминология

**Машина** — объявление о свободном транспорте. Содержит в себе информацию о машине, датах, в которые машина свободна, направлениях перевозки и комфортной ставке.

**Ваши машины** — раздел на сайте ATI.SU, в котором пользователь может добавлять, удалять и редактировать машины.

**Архив ваших машин** — информация об удаленной машине помещается в архив. Объявление из архива можно восстановить.

**Приоритетный показ** — услуга, закрепляющая объявление вверху поиска машин. [Cтатья про приоритетный показ.](https://help.ati.su/prioritetnyj-pokaz-gruzov-i-transporta)

**Атисы** — валюта виртуального счета в ATI.SU. 1 атис равен 1 российскому рублю. Используется для приоритетного показа и других услуг. [Статья про атисы.](https://help.ati.su/chto-takoe-atisy-i-na-chto-ikh-mozhno-potratit)

**Комментарий к машине** — дополнительная информация, которая может быть добавлена к машине сотрудниками вашей фирмы. Видна только сотрудникам вашей фирмы.

## Пользовательские ошибки в API машин

В API машин может произойти достаточно много пользовательских ошибок, и для идентификации конкретной ошибки не всегда достаточно http кода ошибки. Поэтому при возникновении ошибки в теле ответа всегда будет присутствовать объект ошибки, содержащий 2 поля: error с кодом ошибки в виде строки и reason с пояснением. В групповых операциях поля error и reason будут указаны для каждой машины, с которой произошла ошибка во время выполнения операции.

### Примеры ошибок

#### Ошибка при одиночной операции (на примере добавления машины)

Ошибка при одиночной операции (не обновилась машина, так как уже была обновлена менее 60 минут назад).

```
{
    "error": "truck_duplicate",
    "reason": "Машина имеет дубликат в системе. Операция невозможна.",
    "duplicate_truck_id": "2fb37893-3587-eb11-bb9f-0cc47af30c1b"
}
```

#### Ошибка при групповой операции (на примере группового обновления)

```
{
    "2fb37893-3587-eb11-bb9f-0cc47af30c1b": {
        "error": "truck_renew_delay_not_elapsed_error",
        "reason": "Машина была обновлена менее 60 минут назад. Следующее обновление возможно через 57 минут.",
        "remaining_minutes": 57
    },
    "89d8e0db-3587-eb11-bb9f-0cc47af30c1b": {
        "error": "truck_renew_delay_not_elapsed_error",
        "reason": "Машина была обновлена менее 60 минут назад. Следующее обновление возможно через 59 минут.",
        "remaining_minutes": 59
    }
}
```

#### Ошибка валидации (на примере добавления машины)

В случае ошибки валидации json в теле запроса возникает ошибка _json_validation_error_. В теле ответа будут поля `error` и `reason`, и, кроме того, поле `error_list`, содержащее массив объектов вида `{property;reason}`, где:
`property` – название поля, в котором произошла ошибка;
`reason` – причина ошибки.

```
{
    "error": "json_validation_error",
    "reason": "Одна или несколько машин не прошли проверку. Отредактируйте машину, чтобы исправить ошибки.",
    "details": [
        {
            "property": "priority.view_rate",
            "reason": "Параметр  \"Ставка за просмотр\" должен должен принимать значения от  0.60 атисов до значения вашего баланса включительно"
        },
        {
            "property": "first_date",
            "reason": "Если значение параметра date_type равно 1, допустимое значение параметра first_date - от текущей даты до 60 дней вперед"
        }
    ]
}
```

#### Ошибка доступа (на примере добавления машины)

```
{
    "error": "contact_access_denied_error",
    "reason": "У данного контакта имеются ограничения на данную операцию"
}
```

### Список возможных 4хх ошибок

| **Код ошибки**                      | **Пояснение**                                                                                                            |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| deserialization_error               | Ошибка десериализации json                                                                                               |
| json_validation_error               | Ошибка валидации json из тела запроса                                                                                    |
| validation_error                    | Ошибка валидации. Возникает в случае любой ошибки валидации, кроме ошибки валидации тела запроса (json_validation_error) |
| contact_access_denied_error         | Отказано в доступе                                                                                                       |
| truck_renew_delay_not_elapsed_error | Машина была обновлена менее 60 минут назад                                                                               |
| dictionary_element_not_found_error  | Элемент словаря не найден                                                                                                |
| truck_not_found_error               | Машина не найдена                                                                                                        |

## Список методов

### Работа с машинами

- [Получение одной машины](http://api.ati.su/help/34739958.html)
- [Получение всех машин](http://api.ati.su/help/34739950.html)
- [Получение машин контакта](http://api.ati.su/help/34739952.html)
- [Получение количества машин](http://api.ati.su/help/34740026.html)
- [Получение доступа на добавление машины](http://api.ati.su/help/34741728.html)
- [Добавление машины](http://api.ati.su/help/34739938.html)
- [Обновление машины](http://api.ati.su/help/34739941.html)
- [Редактирование машины](http://api.ati.su/help/34739961.html)
- [Удаление машины](http://api.ati.su/help/34739967.html)

### Работа с архивом ваших машин

- [Получение одной архивной машины](http://api.ati.su/help/34739955.html)
- [Получение всех архивных машин](http://api.ati.su/help/34739948.html)
- [Получение архивных машин для определенного контакта](http://api.ati.su/help/34739944.html)
- [Восстановление архивной машины](http://api.ati.su/help/34739904.html)
- [Удаление машины из архива](http://api.ati.su/help/34739969.html)

### Групповые методы

- [Групповое обновление машин (POST)](http://api.ati.su/help/34740013.html)
- [Групповое обновление машин (PUT)](http://api.ati.su/help/34739932.html)
- [Групповое удаление машин](http://api.ati.su/help/34739934.html)
- [Групповое удаление машин из архива](http://api.ati.su/help/34739969.html)

### Работа с комментариями к машинам

- [Получение комментариев ко всем машинам](http://api.ati.su/help/34739921.html)
- [Получение комментариев к машине](http://api.ati.su/help/34739909.html)
- [Добавление/редактирование комментария к машине (POST)](http://api.ati.su/help/34739981.html)
- [Добавление/редактирование комментария к машине (PUT)](http://api.ati.su/help/34739972.html)
- [Удаление комментария к машине (DELETE)](http://api.ati.su/help/34739964.html)
- [Удаление комментария к машине (POST)](http://api.ati.su/help/34739984.html)
- [Получение комментариев к архивной машине](http://api.ati.su/help/34739977.html)
- [Получение комментариев ко всем архивным машинам](http://api.ati.su/help/34739979.html)
- [Добавление/редактирование комментария к архивной машине (POST)](http://api.ati.su/help/34740016.html)
- [Добавление/редактирование комментария к архивной машине (PUT)](http://api.ati.su/help/34740021.html)
- [Удаление комментария к архивной машине (DELETE)](http://api.ati.su/help/34740024.html)
- [Удаление комментария к архивной машине (POST)](http://api.ati.su/help/34740018.html)

### Работа с приоритетным показом

- [Изменение приоритетного показа в актуальной машине](http://api.ati.su/help/34740006.html)
- [Удаление приоритетного показа в актуальной машине](http://api.ati.su/help/34740010.html)

## API отзывов на машины

API позволяет оставить встречное предложение или жалобу на машину, а также запросить все встречные предложения и отзывы на ваши машины.

## Терминология

**Машина** — объявление о свободном транспорте. Содержит в себе информацию о машине, датах, в которые машина свободна, направлениях перевозки и комфортной ставке.

**Ваши машины** — раздел на сайте ATI.SU, в котором пользователь может добавлять, удалять и редактировать машины.

**Встречное предложение** — предложение перевезти груз.

**Жалоба** — жалоба на объявление о машине. Пользователь может оставить жалобу, если информация в объявлении нарушает правила сайта  ATI.SU, либо содержит устаревшие или ложные сведения.

**Машины нет** — этот тип жалобы используется, если машина, о которой идет речь в объявлении, недоступна.

## Список методов

- [Изменение встречного предложения на машину](http://api.ati.su/help/38601070.html)
- [Изменение жалобы на машину](http://api.ati.su/help/38601075.html)
- [Получение отзывов на машины для адресата](http://api.ati.su/help/38601033.html)
- [Получение отзывов на машины по списку машин](http://api.ati.su/help/38601066.html)
- [Получение своих отзывов на машины](http://api.ati.su/help/38601058.html)
- [Удаление отзывов на машину](http://api.ati.su/help/38601101.html)
- [Установка статуса "машины нет" на машину](http://api.ati.su/help/38601077.html)
