# Услуга Перехват грузов — cпециальные предложения для заказчиков

[Абонентский Договор - оферта](https://ati.su/developers/raw/legal/interception.md) (действует с 18 апреля 2024 г.)

[Спецификация API по услуге Перехват груза](http://api.ati.su/help/32018140.html)

С услугой «Перехват грузов» вы мгновенно узнаете о появлении нового груза в ATI.SU и отправите заказчику перевозки ваше предложение.
Услуга ориентирована на средние и крупные транспортные и транспортно-экспедиционные компании (далее - ТК) с большим собственным или привлеченным автопарком. У таких компаний должна быть возможность автоматизировать расчет стоимости перевозки груза и передачу предложений на перевозку в ATI.SU с помощью API.

### Как работает «Перехват грузов»?

Заказчик перевозки добавляет информацию о грузе на сайт ATI.SU.
Система «АТИ» запрашивает цены и условия перевозки для данного груза в нескольких ТК и [показывает предложения](https://help.ati.su/vstrechnye-predlozhenija-new) заказчику.
Заказчик выбирает подходящее предложение. Далее происходит оформление и исполнение заявки на перевозку в выбранной ТК.

### Сколько стоит услуга «Перехват грузов»?

Плата за услугу (способ тарификации) зависит от выбранного [тарифного плана](https://ati.su/developers/raw/legal/interception.md#прейскурант):

- «Только показы» — ATI.SU переадресовывает заказчика на сайт ТК, где происходит оформление и исполнение заявки.
- «Показы и заявки» — заказчик оформляет заявку в ATI.SU. Заполненную заявку ATI.SU отправит в ТК, которая выполнит перевозку. _(В разработке)_
- «Показы и перевозки» — заказчик оформляет заявку в ATI.SU. Заполненную заявку ATI.SU отправит в ТК, которая выполнит перевозку. Информация об исполнении заявки транслируется заказчику в кабинет на сайте ATI.SU. _(В разработке)_

### Как подключить?

- Ознакомьтесь с [абонентским договором — офертой](https://ati.su/developers/raw/legal/interception.md) и выберите тарифный план.
- Реализуйте в своей системе API по «Перехвату грузов» согласно [Спецификации API](http://api.ati.su/help/32018140.html).
- Заполните и отправьте в ATI.SU [заявку на подключение услуги](https://ati.su/developers/raw/legal/interception.md#форма).
- Внесите абонентскую плату за первый месяц обслуживания.

## Методы API для встречных предложений по перехвату грузов

В обоих методах используется `carrierViewId` — идентификатор карточки груза в сценарии перехвата.

### Создание встречного предложения по перехвату

Метод отправляет первичное встречное предложение по грузу из перехвата.

<a id="post-cargo-counter-offers-api-integrator-v1-cargos-interception-{carrierViewId}-counter-offers"></a>

**Версия: Актуальная**

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

```bash
curl 'https://api.ati.su/gw/cargo-counter-offers-api/integrator/v1/cargos/interception/3fa85f64-5717-4562-b3fc-2c963f66afa6/counter-offers' \
  -X 'POST' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "contact_id": 0,
  "price": 120,
  "currency_id": 2,
  "nds_price": 120,
  "nds_currency_id": 2,
  "not_nds_price": 120,
  "not_nds_currency_id": 2,
  "note": "string",
  "prepay_percent": 0,
  "pay_after_max_bank_days": 0,
  "loading_date": "2026-04-28T08:56:55.313Z",
  "pay_attributes": 0
}'
```

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

**Описание полей запроса**
- `contact_id` — Контакт, от лица которого выставляется встречное предложение
- `price` — Предложенная ставка встречного предложения не б/нал. Значение больше 0 и содержит не более 10 символов.
- `currency_id` — Валюта встречного предложения. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `nds_price` — Предложенная ставка встречного предложения б/нал с НДС
- `nds_currency_id` — Валюта ставки встречного предложения б/нал с НДС. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `not_nds_price` — Предложенная ставка встречного предложения б/нал без НДС
- `not_nds_currency_id` — Валюта ставки встречного предложения б/нал без НДС. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `note` — Примечание к встречному предложению\ Максимальная длина - 512 символов
- `prepay_percent` — Процент предоплаты\ Должен быть равен 0 или отсутствовать, если pay_attributes не содержит флаг 16 - возможна предоплата. Допустимое значение от 0 до 100
- `pay_after_max_bank_days` — Оплата через ... банковских дней\ Должен быть равен 0 или отсутствовать, если pay_attributes не содержит флаг 64 - включена оплата через некоторое количество банковских дней. Допустимое значение от 0 до 99
- `loading_date` — Дата, когда предложивший хочет перевезти груз
- `pay_attributes` — Атрибуты оплаты, по умолчанию - 0. Битовая сумма следующих параметров: * `1` - возможна оплата наличными * `2` - возможна оплата по безналичному рассчету * `4` - блиц * `8` - оплата с НДС * `16` - возможна предоплата * `32` - оплата на выгрузке * `64` - включена ли оплата через некоторое количество банковских дней

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

```json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cargo_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cargo_number": "string",
  "cargo_firm_id": 0,
  "firm_id": 0,
  "added_at": "1970-01-01T00:00:00.000Z",
  "updated_at": "1970-01-01T00:00:00.000Z",
  "price": 0.5,
  "currency_id": 0,
  "nds_price": 0.5,
  "nds_currency_id": 0,
  "not_nds_price": 0.5,
  "not_nds_currency_id": 0,
  "counter_offer_source": 0,
  "note": "string",
  "pay_attributes": 0,
  "prepay_percent": 0,
  "pay_after_max_bank_days": 0,
  "loading_date": "1970-01-01T00:00:00.000Z",
  "is_outdated": false,
  "is_cargo_published": false,
  "firm_info": {
    "total_score": 0.5,
    "status": 0,
    "full_firm_name": "string",
    "contact": {
      "id": 0,
      "name": "string",
      "telephone": "string",
      "email": "string",
      "icq": "string",
      "mobile": "string",
      "mobile_operator": "string",
      "skype_name": "string",
      "city_id": 0,
      "location": {
        "city_id": 0,
        "region_id": 0,
        "country_id": 0,
        "full_name": "string",
        "short_name": "string",
        "is_regional_center": false,
        "city_size": 0,
        "fias_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "attributes": 0,
        "city_name": "string",
        "region_name": "string",
        "country_name": "string",
        "country_code_name": "string"
      }
    },
    "inn": "string"
  }
}
```

**Описание полей ответа**
- `id` — Id встречного предложения
- `cargo_id` — Id груза, на который оставлено встречное предложение
- `cargo_number` — Номер груза
- `cargo_firm_id` — Id фирмы, которой принадлежит груз
- `firm_id` — Id фирмы, которая оставила встречное предложение
- `added_at` — Дата добавления встречного предложения
- `updated_at` — Дата изменения встречного предложения
- `price` — Предложенная ставка встречного предложения не б/нал. Значение больше 0 и содержит не более 10 символов.
- `currency_id` — Валюта встречного предложения. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `nds_price` — Предложенная ставка встречного предложения б/нал с НДС
- `nds_currency_id` — Валюта ставки встречного предложения б/нал с НДС. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `not_nds_price` — Предложенная ставка встречного предложения б/нал без НДС
- `not_nds_currency_id` — Валюта ставки встречного предложения б/нал без НДС. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `counter_offer_source` — Обозначение источника, откуда добавлено встречное предложение. * `0` - Неизвестный источник * `1` - Мобильное приложение * `2` - Интегратор * `3` - Перехват грузов интегратором * `4` - Страница поиска грузов * `5` - Перехват машин * `6` - Сквозное встречное предложение, добавлено автоматически
- `note` — Примечание к встречному предложению\ Максимальная длина - 512 символов
- `pay_attributes` — Атрибуты оплаты, по умолчанию - 0. Битовая сумма следующих параметров: * `1` - возможна оплата наличными * `2` - возможна оплата по безналичному рассчету * `4` - блиц * `8` - оплата с НДС * `16` - возможна предоплата * `32` - оплата на выгрузке * `64` - включена ли оплата через некоторое количество банковских дней
- `prepay_percent` — Процент предоплаты\ Должен быть равен 0 или отсутствовать, если pay_attributes не содержит флаг 16 - возможна предоплата. Допустимое значение от 0 до 100
- `pay_after_max_bank_days` — Оплата через ... банковских дней\ Должен быть равен 0 или отсутствовать, если pay_attributes не содержит флаг 64 - включена оплата через некоторое количество банковских дней. Допустимое значение от 0 до 99
- `loading_date` — Дата, когда предложивший хочет перевезти ваш груз
- `is_outdated` — Определяет, просрочено ли встречное предложение. Когда груз редактируют, удаляют, обновляют, встречное предложение помечается просроченным. Только для чтения.
- `is_cargo_published` — Относится ли встречное предложение к публикующемуся грузу. Только для чтения.
- `firm_info` — Информация о фирме, оставившей встречное предложение
- `firm_info.total_score` — Сумма очков фирмы (количество звезд)
- `firm_info.status` — Статус фирмы
- `firm_info.full_firm_name` — Полное название фирмы
- `firm_info.contact` — Информация о контакте фирмы, оставившем встречное предложение
- `firm_info.contact.id` — Id контакта в фирме
- `firm_info.contact.name` — Имя контакта
- `firm_info.contact.telephone` — Телефон
- `firm_info.contact.email` — Электронная почта
- `firm_info.contact.icq` — Аккаунт ICQ
- `firm_info.contact.mobile` — Телефон (мобильный)
- `firm_info.contact.mobile_operator` — Мобильный оператор
- `firm_info.contact.skype_name` — Аккаунт Skype
- `firm_info.contact.city_id` — Id города. Значение из [словаря городов АТИ](https://ati.su/developers/api/dictionaries/geo/)
- `firm_info.contact.location` — Информация о местоположении фирмы
- `firm_info.contact.location.city_id` — Id города. Значение из [словаря городов АТИ](https://ati.su/developers/api/dictionaries/geo/)
- `firm_info.contact.location.region_id` — Id региона. Значение из [словаря регионов АТИ](https://ati.su/developers/api/dictionaries/geo/)
- `firm_info.contact.location.country_id` — Id страны. Значение из [словаря стран АТИ](https://ati.su/developers/api/dictionaries/geo/)
- `firm_info.contact.location.full_name` — Составное название из названий города, региона и страны, разделенных запятой
- `firm_info.contact.location.short_name` — Составное название из города, региона (если город не является областным центром) и буквенного кода страны (если страна отличается от России)
- `firm_info.contact.location.is_regional_center` — Является ли город региональным центром
- `firm_info.contact.location.city_size` — Размер города по числу жителей
- `firm_info.contact.location.fias_id` — Id в базе ФИАС
- `firm_info.contact.location.attributes` — Атрибуты города
- `firm_info.contact.location.city_name` — Название города
- `firm_info.contact.location.region_name` — Название региона
- `firm_info.contact.location.country_name` — Название страны
- `firm_info.contact.location.country_code_name` — Буквенный код страны
- `firm_info.inn` — ИНН

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

```json
{
  "error": "string",
  "reason": "string",
  "details": [
    {
      "property": "string",
      "reason": "string",
      "error": "string"
    }
  ]
}
```

**Описание полей ответа**
- `error` — Ключ ошибки (идентификатор сценария отказа или типа сбоя).
- `reason` — Пояснение: что не так с запросом и при валидации — какие ограничения нарушены.
- `details` — Ошибки валидации по полям: каждый элемент соответствует одному полю JSON-тела.
- `details[].property` — Имя поля в теле запроса, к которому относится ошибка.
- `details[].reason` — Текстовое описание нарушения для этого поля (например, неверный формат или диапазон).
- `details[].error` — Код или класс ошибки валидации для автоматической обработки на стороне клиента.


### Изменение встречного предложения по перехвату

Метод изменяет ранее отправленное встречное предложение.
Требуется `cargoCounterOfferId`.

<a id="put-cargo-counter-offers-api-integrator-v1-cargos-interception-{carrierViewId}-counter-offers-{cargoCounterOfferId}"></a>

**Версия: Актуальная**

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

```bash
curl 'https://api.ati.su/gw/cargo-counter-offers-api/integrator/v1/cargos/interception/3fa85f64-5717-4562-b3fc-2c963f66afa6/counter-offers/3fa85f64-5717-4562-b3fc-2c963f66afa6' \
  -X 'PUT' \
  -H 'Authorization: Bearer {authorizationToken}' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "contact_id": 0,
  "price": 120,
  "currency_id": 2,
  "nds_price": 120,
  "nds_currency_id": 2,
  "not_nds_price": 120,
  "not_nds_currency_id": 2,
  "note": "string",
  "prepay_percent": 0,
  "pay_after_max_bank_days": 0,
  "loading_date": "2026-04-28T08:56:55.313Z",
  "pay_attributes": 0
}'
```

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

**Описание полей запроса**
- `contact_id` — Контакт, от лица которого выставляется встречное предложение
- `price` — Предложенная ставка встречного предложения не б/нал. Значение больше 0 и содержит не более 10 символов.
- `currency_id` — Валюта встречного предложения. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `nds_price` — Предложенная ставка встречного предложения б/нал с НДС
- `nds_currency_id` — Валюта ставки встречного предложения б/нал с НДС. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `not_nds_price` — Предложенная ставка встречного предложения б/нал без НДС
- `not_nds_currency_id` — Валюта ставки встречного предложения б/нал без НДС. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `note` — Примечание к встречному предложению\ Максимальная длина - 512 символов
- `prepay_percent` — Процент предоплаты\ Должен быть равен 0 или отсутствовать, если pay_attributes не содержит флаг 16 - возможна предоплата. Допустимое значение от 0 до 100
- `pay_after_max_bank_days` — Оплата через ... банковских дней\ Должен быть равен 0 или отсутствовать, если pay_attributes не содержит флаг 64 - включена оплата через некоторое количество банковских дней. Допустимое значение от 0 до 99
- `loading_date` — Дата, когда предложивший хочет перевезти груз
- `pay_attributes` — Атрибуты оплаты, по умолчанию - 0. Битовая сумма следующих параметров: * `1` - возможна оплата наличными * `2` - возможна оплата по безналичному рассчету * `4` - блиц * `8` - оплата с НДС * `16` - возможна предоплата * `32` - оплата на выгрузке * `64` - включена ли оплата через некоторое количество банковских дней

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

```json
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cargo_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "cargo_number": "string",
  "cargo_firm_id": 0,
  "firm_id": 0,
  "added_at": "1970-01-01T00:00:00.000Z",
  "updated_at": "1970-01-01T00:00:00.000Z",
  "price": 0.5,
  "currency_id": 0,
  "nds_price": 0.5,
  "nds_currency_id": 0,
  "not_nds_price": 0.5,
  "not_nds_currency_id": 0,
  "counter_offer_source": 0,
  "note": "string",
  "pay_attributes": 0,
  "prepay_percent": 0,
  "pay_after_max_bank_days": 0,
  "loading_date": "1970-01-01T00:00:00.000Z",
  "is_outdated": false,
  "is_cargo_published": false,
  "firm_info": {
    "total_score": 0.5,
    "status": 0,
    "full_firm_name": "string",
    "contact": {
      "id": 0,
      "name": "string",
      "telephone": "string",
      "email": "string",
      "icq": "string",
      "mobile": "string",
      "mobile_operator": "string",
      "skype_name": "string",
      "city_id": 0,
      "location": {
        "city_id": 0,
        "region_id": 0,
        "country_id": 0,
        "full_name": "string",
        "short_name": "string",
        "is_regional_center": false,
        "city_size": 0,
        "fias_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "attributes": 0,
        "city_name": "string",
        "region_name": "string",
        "country_name": "string",
        "country_code_name": "string"
      }
    },
    "inn": "string"
  }
}
```

**Описание полей ответа**
- `id` — Id встречного предложения
- `cargo_id` — Id груза, на который оставлено встречное предложение
- `cargo_number` — Номер груза
- `cargo_firm_id` — Id фирмы, которой принадлежит груз
- `firm_id` — Id фирмы, которая оставила встречное предложение
- `added_at` — Дата добавления встречного предложения
- `updated_at` — Дата изменения встречного предложения
- `price` — Предложенная ставка встречного предложения не б/нал. Значение больше 0 и содержит не более 10 символов.
- `currency_id` — Валюта встречного предложения. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `nds_price` — Предложенная ставка встречного предложения б/нал с НДС
- `nds_currency_id` — Валюта ставки встречного предложения б/нал с НДС. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `not_nds_price` — Предложенная ставка встречного предложения б/нал без НДС
- `not_nds_currency_id` — Валюта ставки встречного предложения б/нал без НДС. Значение из [словаря валют АТИ](https://ati.su/developers/api/dictionaries/cargoes/)
- `counter_offer_source` — Обозначение источника, откуда добавлено встречное предложение. * `0` - Неизвестный источник * `1` - Мобильное приложение * `2` - Интегратор * `3` - Перехват грузов интегратором * `4` - Страница поиска грузов * `5` - Перехват машин * `6` - Сквозное встречное предложение, добавлено автоматически
- `note` — Примечание к встречному предложению\ Максимальная длина - 512 символов
- `pay_attributes` — Атрибуты оплаты, по умолчанию - 0. Битовая сумма следующих параметров: * `1` - возможна оплата наличными * `2` - возможна оплата по безналичному рассчету * `4` - блиц * `8` - оплата с НДС * `16` - возможна предоплата * `32` - оплата на выгрузке * `64` - включена ли оплата через некоторое количество банковских дней
- `prepay_percent` — Процент предоплаты\ Должен быть равен 0 или отсутствовать, если pay_attributes не содержит флаг 16 - возможна предоплата. Допустимое значение от 0 до 100
- `pay_after_max_bank_days` — Оплата через ... банковских дней\ Должен быть равен 0 или отсутствовать, если pay_attributes не содержит флаг 64 - включена оплата через некоторое количество банковских дней. Допустимое значение от 0 до 99
- `loading_date` — Дата, когда предложивший хочет перевезти ваш груз
- `is_outdated` — Определяет, просрочено ли встречное предложение. Когда груз редактируют, удаляют, обновляют, встречное предложение помечается просроченным. Только для чтения.
- `is_cargo_published` — Относится ли встречное предложение к публикующемуся грузу. Только для чтения.
- `firm_info` — Информация о фирме, оставившей встречное предложение
- `firm_info.total_score` — Сумма очков фирмы (количество звезд)
- `firm_info.status` — Статус фирмы
- `firm_info.full_firm_name` — Полное название фирмы
- `firm_info.contact` — Информация о контакте фирмы, оставившем встречное предложение
- `firm_info.contact.id` — Id контакта в фирме
- `firm_info.contact.name` — Имя контакта
- `firm_info.contact.telephone` — Телефон
- `firm_info.contact.email` — Электронная почта
- `firm_info.contact.icq` — Аккаунт ICQ
- `firm_info.contact.mobile` — Телефон (мобильный)
- `firm_info.contact.mobile_operator` — Мобильный оператор
- `firm_info.contact.skype_name` — Аккаунт Skype
- `firm_info.contact.city_id` — Id города. Значение из [словаря городов АТИ](https://ati.su/developers/api/dictionaries/geo/)
- `firm_info.contact.location` — Информация о местоположении фирмы
- `firm_info.contact.location.city_id` — Id города. Значение из [словаря городов АТИ](https://ati.su/developers/api/dictionaries/geo/)
- `firm_info.contact.location.region_id` — Id региона. Значение из [словаря регионов АТИ](https://ati.su/developers/api/dictionaries/geo/)
- `firm_info.contact.location.country_id` — Id страны. Значение из [словаря стран АТИ](https://ati.su/developers/api/dictionaries/geo/)
- `firm_info.contact.location.full_name` — Составное название из названий города, региона и страны, разделенных запятой
- `firm_info.contact.location.short_name` — Составное название из города, региона (если город не является областным центром) и буквенного кода страны (если страна отличается от России)
- `firm_info.contact.location.is_regional_center` — Является ли город региональным центром
- `firm_info.contact.location.city_size` — Размер города по числу жителей
- `firm_info.contact.location.fias_id` — Id в базе ФИАС
- `firm_info.contact.location.attributes` — Атрибуты города
- `firm_info.contact.location.city_name` — Название города
- `firm_info.contact.location.region_name` — Название региона
- `firm_info.contact.location.country_name` — Название страны
- `firm_info.contact.location.country_code_name` — Буквенный код страны
- `firm_info.inn` — ИНН

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

```json
{
  "error": "string",
  "reason": "string",
  "details": [
    {
      "property": "string",
      "reason": "string",
      "error": "string"
    }
  ]
}
```

**Описание полей ответа**
- `error` — Ключ ошибки (идентификатор сценария отказа или типа сбоя).
- `reason` — Пояснение: что не так с запросом и при валидации — какие ограничения нарушены.
- `details` — Ошибки валидации по полям: каждый элемент соответствует одному полю JSON-тела.
- `details[].property` — Имя поля в теле запроса, к которому относится ошибка.
- `details[].reason` — Текстовое описание нарушения для этого поля (например, неверный формат или диапазон).
- `details[].error` — Код или класс ошибки валидации для автоматической обработки на стороне клиента.


### Поддержка

По вопросам подключения обращайтесь к Александру Вильде: sas@ati.su, + 7 (812) 602-01-04 доб.108
---

## llms.txt

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