Skip to content
Мои токены Поддержка
Чат для вопросов по API Мгновенно ответим на ваши вопросы
api@ati.su Электронная почта техподдержки
Тикетная система Оставить заявку на отдел "Консультанты по интеграции (API)"
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя

Опубликованные грузы

Методы для работы с грузами

Добавление груза

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

Версия
post /v2/cargos
Запрос
Модель
{...}
}
Пример запроса
curl 'https://api.ati.su/v2/cargos' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"cargo_application":{"external_id":"string","route":{"loading":{"location":{"type":"string"}},"unloading":{"location":{"type":"string"}},"way_points":[{"location":{"type":"string"}}]},"truck":{"trucks_count":0,"load_type":"string","body_types":[0],"body_loading":{"types":[0],"is_all_required":false},"body_unloading":{"types":[0],"is_all_required":false},"temperature":{"from":0,"to":0},"documents":{"tir":false,"cmr":false,"t1":false,"medical_card":false},"requirements":{"logging_truck":false,"road_train":false,"air_suspension":false},"adr":0,"belts_count":0,"is_tracking":false,"required_capacity":0.5},"payment":{"type":"string","hide_counter_offers":false,"direct_offer":false,"prepayment":{"percent":0,"using_fuel":false},"payment_mode":{"type":"string"}},"documents":[{"file_id":"string"}],"boards":[{"id":"string","publication_mode":"string","publication_time":"1970-01-01T00:00:00.000Z","cancel_publish_on_auction_bet":false,"reservation_enabled":false}],"paid_features":{"priority_view":{"rate":0.5,"limit":0.5,"daily_limit":0.5,"only_for_paid_users":false},"stealth":{"list_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","minimal_registration_date":"1970-01-01T00:00:00.000Z","minimal_stars_count":0}},"note":"string","contacts":[0]}}'
Ответ
200 Success
{...}
}

Редактирование груза

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

Ограничения метода

Ограничение частоты запросов — не более 5000 запросов за 24 часа на контакт.
При достижении лимита, сервер ответит статусом 429 Too Many Requests в течение 24 часов.

Версия
put /v2/cargos/{cargoApplicationId}
Запрос
Модель
{...}
}
Пример запроса
curl 'https://api.ati.su/v2/cargos/{cargoApplicationId}' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"cargo_application":{"external_id":"string","route":{"loading":{"location":{"type":"string"}},"unloading":{"location":{"type":"string"}},"way_points":[{"location":{"type":"string"}}]},"truck":{"trucks_count":0,"load_type":"string","body_types":[0],"body_loading":{"types":[0],"is_all_required":false},"body_unloading":{"types":[0],"is_all_required":false},"temperature":{"from":0,"to":0},"documents":{"tir":false,"cmr":false,"t1":false,"medical_card":false},"requirements":{"logging_truck":false,"road_train":false,"air_suspension":false},"adr":0,"belts_count":0,"is_tracking":false,"required_capacity":0.5},"payment":{"type":"string","hide_counter_offers":false,"direct_offer":false,"prepayment":{"percent":0,"using_fuel":false},"payment_mode":{"type":"string"}},"documents":[{"file_id":"string"}],"boards":[{"id":"string","publication_mode":"string","publication_time":"1970-01-01T00:00:00.000Z","cancel_publish_on_auction_bet":false,"reservation_enabled":false}],"paid_features":{"priority_view":{"rate":0.5,"limit":0.5,"daily_limit":0.5,"only_for_paid_users":false},"stealth":{"list_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","minimal_registration_date":"1970-01-01T00:00:00.000Z","minimal_stars_count":0}},"note":"string","contacts":[0]}}'
Ответ
200 Success
{...}
}

Получение одного груза

Версия
get /v2/cargos/{cargoApplicationId}
Запрос
Пример запроса
curl 'https://api.ati.su/v2/cargos/{cargoApplicationId}' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Success
{...}

Контракт заявки груза, ожидаемый в ответах публичного http api работы с грузами

cargo_id: uuid

ID груза OBSOLETE используй поле CargoApplicationId

deprecated
cargo_number: string

Номер груза, автоматически генерируемый ATI.SU OBSOLETE используй поле CargoApplicationNumber

deprecated
source: int32

OBSOLETE используй поле OriginSource

deprecated
contacts: [int32]

Контакты OBSOLETE используй поле ApplicationContacts

distance: int32

Дистанция, км

deprecated
cargo_application_id*: uuid

Id груза

snapshot_id*: int64

Id состояния груза (меняется при каждом редактировании)

cargo_application_number*: string

Номер груза, автоматически генерируемый ATI.SU

department_id*: int32

Подразделение, которому принадлежит заявка.

persistent_user_id*: int32

Идентификатор пользователя, разместившего заявку

actor_contact_id: int32 (nullable)

Идентификатор контакта, разместившего заявку

external_id: string (nullable)

Внешний номер груза или заказа

added_at*: date-time

Время добавления груза, UTC

updated_at*: date-time

Время последнего изменения груза, UTC

origin_source*: string

Использованный api при создания груза:

  • web-cargos-api,
  • mobile-cargos-api,
  • internal-cargos-api,
  • public-cargos-api,
  • internal-atrucks,
  • internal-torgtrans,
  • csv_import,
  • pass-through,
  • unknown
note: string (nullable)

Примечание к грузу

lot_id: uuid (nullable)

Id Лота, к которому прикреплён данный груз

lot_number: int32 (nullable)

Номер Лота, к которому прикреплён данный груз

is_pass_through_copy: boolean (nullable)

Является ли груз сквозной копией

is_archived: boolean (nullable)

Отправлен ли груз в архив

archive_date: date-time (nullable)

Время отправки груза в архив, UTC

}

Получение всех своих грузов

Доступен фильтр по контакту. При передаче значения в contactId будут получены только те грузы, у которых ContactId1 == contactId либо ContactId2 == contactId.
Получать этим методом чужие грузы с общей площадки нельзя. Метод предназначен для работы со своими грузами.

Получение всех грузов фирмы
get /v1.0/loads
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Грузы
[{...}]
ContactId1*: int32

Идентификатор первого выбранного контакта.
Список всех контактов и их идентификаторы можно получить с помощью API для работы с фирмами
Контакт должен быть виден для остальных участников АТИ

ContactId2: int32 (nullable)

Идентификатор второго выбранного контакта, если не выбрано, то null
Контакт должен быть виден для остальных участников АТИ

Note: string

Примечание к грузу
Ограничение по длине: 1000 символов

FirstDate: date-time

Дата, начиная с которой груз актуален, в формате UTC
Минимальное значение равно текущей дате
При значении параметра DateType равным 0, допустимое значение поля - текущая дата
При значении параметра DateType равным 1, допустимое значение поля - от текущей даты до 60 дней вперед
При значении параметра DateType равным 2, допустимое значение поля - текущая дата
При значении параметра DateType равным 3, FirstDate должен принимать значение текущей даты или отсутствовать

LastDate: date-time

Дата, после которой груз не актуален, в формате UTC
Минимальное значение равно значению параметра FirstDate
При значении параметра DateType равным 0, допустимое значение поля - от текущей даты до 1 дня вперед
При значении параметра DateType равным 1, допустимое значение поля - от даты в параметре FirstDate до 9 дней вперед
При значении параметра DateType равным 2, данное поле вычисляется автоматически по формуле FirstDate + 2 месяца, передаваемое значение игнорируется
При значении параметра DateType равным 3, LastDate автоматически устанавливается на значение + 2 дня от текущей даты, передаваемое значение игнорируется

DateType: int32

Выбор типа готовности груза к перевозке

  • 0 - Готов к загрузке
  • 1 - с Х по У
  • 2 - постоянно
  • 3 - груза нет, запрос ставки
PeriodicityId: int32

Периодичность загрузки
Если параметр DateType не равен 2, PeriodicityId равен 0.
Иначе PeriodicityId может принимать следующие значения:

  • 1 - ежедневно
  • 100 - по рабочим дням
OrderNumber: string

Номер заказа
Ограничение по длине: 250 символов

Krugoreis: boolean

Параметр, который определяет, включен ли кругорейс для перевозки груза

UnloadFirstDate: date-time (nullable)

Дата начала разгрузки, в формате UTC.
Может иметь значение null.
Минимальное значение равно текущей дате.
При значении параметра DateType равным 3, UnloadFirstDate принимает значение null

UnloadLastDate: date-time (nullable)

Дата окончания разгрузки, в формате UTC. Может иметь значение null.
Если нет даты начала разгрузки UnloadFirstDate, должна отсутствовать дата окончания разгрузки UnloadLastDate.
При значении параметра DateType равным 3, UnloadFirstDate принимает значение null

ArchiveDate: date-time (nullable)

Дата и время переноса в архив

ArchiveReason: enum (nullable)
[Unknown, System, Manual, Complaints, UnwantedContent, DeleteCsvLoad, MergeLoadsAfterEdit, ContactDoesNotHaveAccessToVirtualPayments, VerticesLoadDelete, StealthStatisticError, CheckDuplicateComplaints, DeleteContact, DeleteFirm, CleanOldLoadsJob]

Причина переноса в архив

TruePrice: int32

Озвученная ставка

TrueCurrencyId: int32

ID валюты озвученной ставки

ResponseCount: int32

Количество отзывов о грузе (без встречных предложений)

OfferCount: int32

Количество встречных предложений (остальные отзывы не учитываются)

CanBeDeleted: boolean

Есть ли доступ на удаление груза.

HasPermissionsToLoad: boolean

Есть ли доступ на работу с грузом (без учета прав).

CanBeEdited: boolean

Есть ли доступ на редактирование груза.

CanBeRenewed: boolean

Есть ли доступ на обновление груза.

CanBeRestored: boolean

Есть ли доступ на восстановление груза

EditRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на редактирование груза:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
DeleteRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на удаление контакта:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
RestoreRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на восстановление груза:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
RenewRestriction: string

Причина отказа в доступе на обновление груза.

Id: guid

Идентификатор груза

LoadNumber: string

Номер груза

UpdatedAt: date-time

Дата последнего изменения груза в формате UTC

AddedAt: date-time

Время добавления груза в формате UTC

Distance: int32

Расстояние по дорогам в км

PlatonRoadsLength: int32

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

TollRoadsLength: int32

Протяженность платных дорог в построенном пути в км

TravelTime: time-span

Время в пути

Zimnik: boolean

Параметр, который определяет, включен ли зимник для перевозки груза

Ferries: boolean

Параметр, который определяет, учитывать ли паромные переправы для перевозки груза

FirmId: string

Идентификатор фирмы

AuctionId: guid (nullable)

Id аукциона

}]
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Обновление одного груза

Позволяет обновить груз с указанным id. Обновление грузов нужно, чтобы ваш груз показывался в списке грузов на более высокой позиции.
put /v1.0/loads/{loadId}/renew
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/{loadId}/renew' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Статус
{...}
}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Обновление нескольких грузов

Позволяет обновить грузы с указанными id. Обновление грузов нужно, чтобы ваш груз показывался в списке грузов на более высокой позиции.
put /v1.0/loads/renew
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/renew' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Статус
{...}
}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Удаление одного груза

Позволяет удалить груз с указанным id.
delete /v1.0/loads/{loadId}
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/{loadId}' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Статус
{...}
}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Удаление нескольких грузов

Позволяет удалить грузы с указанными id.
delete /v1.0/loads
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Статус
{...}
}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

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

Изменение параметров приоритетного показа у груза.
put /v1.0/loads/{loadId}/priority
Запрос
Модель
{...}
DailyLimit: decimal

Суточный лимит списания по услуге

  • Должен иметь длину не более 5 символов
  • Не более 2 символов после запятой
  • Должен быть больше либо равен значению ViewRate или быть равным нулю (если ограничения нет)
  • Должен быть равен 0 или отсутствовать, если параметр ViewRate отсутствует или равен 0
IsForPayedOnly: boolean

Показывать приоритетный показ только платным пользователям

OrderLimit: decimal

Лимит на заявку

  • Должен иметь длину не более 5 символов
  • Не более 2 символов после запятой
  • Должен быть больше либо равен значению ViewRate или быть равным нулю (если ограничения нет)
  • Должен быть равен 0 или отсутствовать, если параметр ViewRate отсутствует или равен 0
ViewRate: decimal

Ставка за просмотр

  • Минимальное значение 0,6
  • Не более 2 символов после запятой
  • Должен иметь длину не более 5 символов
MoneySpentPerDay: decimal

Количество денег, потраченное на заявку за день. Только для чтения

MoneySpentPerOrder: decimal

Количество денег, потраченное на заявку в целом. Только для чтения

}
Пример запроса
curl 'https://api.ati.su/v1.0/loads/{loadId}/priority' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"DailyLimit":0.5,"IsForPayedOnly":false,"OrderLimit":0.5,"ViewRate":0.5,"MoneySpentPerDay":0.5,"MoneySpentPerOrder":0.5}'
Ответ
200 Актуальное состояние груза
{...}
ContactId1*: int32

Идентификатор первого выбранного контакта.
Список всех контактов и их идентификаторы можно получить с помощью API для работы с фирмами
Контакт должен быть виден для остальных участников АТИ

ContactId2: int32 (nullable)

Идентификатор второго выбранного контакта, если не выбрано, то null
Контакт должен быть виден для остальных участников АТИ

Note: string

Примечание к грузу
Ограничение по длине: 1000 символов

FirstDate: date-time

Дата, начиная с которой груз актуален, в формате UTC
Минимальное значение равно текущей дате
При значении параметра DateType равным 0, допустимое значение поля - текущая дата
При значении параметра DateType равным 1, допустимое значение поля - от текущей даты до 60 дней вперед
При значении параметра DateType равным 2, допустимое значение поля - текущая дата
При значении параметра DateType равным 3, FirstDate должен принимать значение текущей даты или отсутствовать

LastDate: date-time

Дата, после которой груз не актуален, в формате UTC
Минимальное значение равно значению параметра FirstDate
При значении параметра DateType равным 0, допустимое значение поля - от текущей даты до 1 дня вперед
При значении параметра DateType равным 1, допустимое значение поля - от даты в параметре FirstDate до 9 дней вперед
При значении параметра DateType равным 2, данное поле вычисляется автоматически по формуле FirstDate + 2 месяца, передаваемое значение игнорируется
При значении параметра DateType равным 3, LastDate автоматически устанавливается на значение + 2 дня от текущей даты, передаваемое значение игнорируется

DateType: int32

Выбор типа готовности груза к перевозке

  • 0 - Готов к загрузке
  • 1 - с Х по У
  • 2 - постоянно
  • 3 - груза нет, запрос ставки
PeriodicityId: int32

Периодичность загрузки
Если параметр DateType не равен 2, PeriodicityId равен 0.
Иначе PeriodicityId может принимать следующие значения:

  • 1 - ежедневно
  • 100 - по рабочим дням
OrderNumber: string

Номер заказа
Ограничение по длине: 250 символов

Krugoreis: boolean

Параметр, который определяет, включен ли кругорейс для перевозки груза

UnloadFirstDate: date-time (nullable)

Дата начала разгрузки, в формате UTC.
Может иметь значение null.
Минимальное значение равно текущей дате.
При значении параметра DateType равным 3, UnloadFirstDate принимает значение null

UnloadLastDate: date-time (nullable)

Дата окончания разгрузки, в формате UTC. Может иметь значение null.
Если нет даты начала разгрузки UnloadFirstDate, должна отсутствовать дата окончания разгрузки UnloadLastDate.
При значении параметра DateType равным 3, UnloadFirstDate принимает значение null

ArchiveDate: date-time (nullable)

Дата и время переноса в архив

ArchiveReason: enum (nullable)
[Unknown, System, Manual, Complaints, UnwantedContent, DeleteCsvLoad, MergeLoadsAfterEdit, ContactDoesNotHaveAccessToVirtualPayments, VerticesLoadDelete, StealthStatisticError, CheckDuplicateComplaints, DeleteContact, DeleteFirm, CleanOldLoadsJob]

Причина переноса в архив

TruePrice: int32

Озвученная ставка

TrueCurrencyId: int32

ID валюты озвученной ставки

ResponseCount: int32

Количество отзывов о грузе (без встречных предложений)

OfferCount: int32

Количество встречных предложений (остальные отзывы не учитываются)

CanBeDeleted: boolean

Есть ли доступ на удаление груза.

HasPermissionsToLoad: boolean

Есть ли доступ на работу с грузом (без учета прав).

CanBeEdited: boolean

Есть ли доступ на редактирование груза.

CanBeRenewed: boolean

Есть ли доступ на обновление груза.

CanBeRestored: boolean

Есть ли доступ на восстановление груза

EditRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на редактирование груза:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
DeleteRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на удаление контакта:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
RestoreRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на восстановление груза:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
RenewRestriction: string

Причина отказа в доступе на обновление груза.

Id: guid

Идентификатор груза

LoadNumber: string

Номер груза

UpdatedAt: date-time

Дата последнего изменения груза в формате UTC

AddedAt: date-time

Время добавления груза в формате UTC

Distance: int32

Расстояние по дорогам в км

PlatonRoadsLength: int32

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

TollRoadsLength: int32

Протяженность платных дорог в построенном пути в км

TravelTime: time-span

Время в пути

Zimnik: boolean

Параметр, который определяет, включен ли зимник для перевозки груза

Ferries: boolean

Параметр, который определяет, учитывать ли паромные переправы для перевозки груза

FirmId: string

Идентификатор фирмы

AuctionId: guid (nullable)

Id аукциона

}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Удаление приоритетного показа

Обнуление параметров приоритетного показа у груза.
delete /v1.0/loads/{loadId}/priority
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/{loadId}/priority' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Актуальное состояние груза
{...}
ContactId1*: int32

Идентификатор первого выбранного контакта.
Список всех контактов и их идентификаторы можно получить с помощью API для работы с фирмами
Контакт должен быть виден для остальных участников АТИ

ContactId2: int32 (nullable)

Идентификатор второго выбранного контакта, если не выбрано, то null
Контакт должен быть виден для остальных участников АТИ

Note: string

Примечание к грузу
Ограничение по длине: 1000 символов

FirstDate: date-time

Дата, начиная с которой груз актуален, в формате UTC
Минимальное значение равно текущей дате
При значении параметра DateType равным 0, допустимое значение поля - текущая дата
При значении параметра DateType равным 1, допустимое значение поля - от текущей даты до 60 дней вперед
При значении параметра DateType равным 2, допустимое значение поля - текущая дата
При значении параметра DateType равным 3, FirstDate должен принимать значение текущей даты или отсутствовать

LastDate: date-time

Дата, после которой груз не актуален, в формате UTC
Минимальное значение равно значению параметра FirstDate
При значении параметра DateType равным 0, допустимое значение поля - от текущей даты до 1 дня вперед
При значении параметра DateType равным 1, допустимое значение поля - от даты в параметре FirstDate до 9 дней вперед
При значении параметра DateType равным 2, данное поле вычисляется автоматически по формуле FirstDate + 2 месяца, передаваемое значение игнорируется
При значении параметра DateType равным 3, LastDate автоматически устанавливается на значение + 2 дня от текущей даты, передаваемое значение игнорируется

DateType: int32

Выбор типа готовности груза к перевозке

  • 0 - Готов к загрузке
  • 1 - с Х по У
  • 2 - постоянно
  • 3 - груза нет, запрос ставки
PeriodicityId: int32

Периодичность загрузки
Если параметр DateType не равен 2, PeriodicityId равен 0.
Иначе PeriodicityId может принимать следующие значения:

  • 1 - ежедневно
  • 100 - по рабочим дням
OrderNumber: string

Номер заказа
Ограничение по длине: 250 символов

Krugoreis: boolean

Параметр, который определяет, включен ли кругорейс для перевозки груза

UnloadFirstDate: date-time (nullable)

Дата начала разгрузки, в формате UTC.
Может иметь значение null.
Минимальное значение равно текущей дате.
При значении параметра DateType равным 3, UnloadFirstDate принимает значение null

UnloadLastDate: date-time (nullable)

Дата окончания разгрузки, в формате UTC. Может иметь значение null.
Если нет даты начала разгрузки UnloadFirstDate, должна отсутствовать дата окончания разгрузки UnloadLastDate.
При значении параметра DateType равным 3, UnloadFirstDate принимает значение null

ArchiveDate: date-time (nullable)

Дата и время переноса в архив

ArchiveReason: enum (nullable)
[Unknown, System, Manual, Complaints, UnwantedContent, DeleteCsvLoad, MergeLoadsAfterEdit, ContactDoesNotHaveAccessToVirtualPayments, VerticesLoadDelete, StealthStatisticError, CheckDuplicateComplaints, DeleteContact, DeleteFirm, CleanOldLoadsJob]

Причина переноса в архив

TruePrice: int32

Озвученная ставка

TrueCurrencyId: int32

ID валюты озвученной ставки

ResponseCount: int32

Количество отзывов о грузе (без встречных предложений)

OfferCount: int32

Количество встречных предложений (остальные отзывы не учитываются)

CanBeDeleted: boolean

Есть ли доступ на удаление груза.

HasPermissionsToLoad: boolean

Есть ли доступ на работу с грузом (без учета прав).

CanBeEdited: boolean

Есть ли доступ на редактирование груза.

CanBeRenewed: boolean

Есть ли доступ на обновление груза.

CanBeRestored: boolean

Есть ли доступ на восстановление груза

EditRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на редактирование груза:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
DeleteRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на удаление контакта:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
RestoreRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на восстановление груза:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
RenewRestriction: string

Причина отказа в доступе на обновление груза.

Id: guid

Идентификатор груза

LoadNumber: string

Номер груза

UpdatedAt: date-time

Дата последнего изменения груза в формате UTC

AddedAt: date-time

Время добавления груза в формате UTC

Distance: int32

Расстояние по дорогам в км

PlatonRoadsLength: int32

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

TollRoadsLength: int32

Протяженность платных дорог в построенном пути в км

TravelTime: time-span

Время в пути

Zimnik: boolean

Параметр, который определяет, включен ли зимник для перевозки груза

Ferries: boolean

Параметр, который определяет, учитывать ли паромные переправы для перевозки груза

FirmId: string

Идентификатор фирмы

AuctionId: guid (nullable)

Id аукциона

}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Методы для работы с комментариями к грузам

Получение всех комментариев ко всем грузам для текущей фирмы

Ответ будет представлен в виде словаря, где ключ - это id груза, а значение - массив структуры “комментарий”.

Получение всех комментариев фирмы ко всем грузам
get /v1.0/loads/comments
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/comments' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Комментарии ко всем грузам фирмы
{...}
}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Получение всех комментариев к грузу для текущей фирмы

Получение всех комментариев к грузу для текущей фирмы.
get /v1.0/loads/{loadId}/comments
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/{loadId}/comments' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Комментарии к грузу
[{...}]
CommentId: guid

Идентификатор комментария

Message: string

Комментарий

ContactId: int32

Контакт фирмы, который оставил комментарий

CommentDateTime: date-time

Время, когда комментарий был оставлен

}]
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Добавление либо редактирование комментария к грузу

При редактировании комментария у изменённого комментария поменяется CommentId.

Требования к комментарию

  • комментарий не может быть пустым
  • длина комментария не более 128 символов
  • если для фирмы включен режим раздельного доступа, то количество комментариев к одному грузу ограничено одним комментарием на контакт, иначе – одним комментарием на фирму
Добавление либо редактирование комментария к грузу
put /v1.0/loads/{loadId}/comments
Запрос
Модель
string
Пример запроса
curl 'https://api.ati.su/v1.0/loads/{loadId}/comments' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '"string"'
Ответ
200 Комментарий к грузу
{...}
CommentId: guid

Идентификатор комментария

Message: string

Комментарий

ContactId: int32

Контакт фирмы, который оставил комментарий

CommentDateTime: date-time

Время, когда комментарий был оставлен

}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Удаление комментария у груза

Удаление комментария у груза.
delete /v1.0/loads/{loadId}/comments
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/{loadId}/comments' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Комментарий к грузу успешно удален
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Методы для работы с отзывами к грузам

Отзыв может быть “Встречным предложением” с одной или несколькими ставками, “Груза нет”, “Озвученная ставка”.

Требования к дате, передаваемой в dateFrom при отправке запросов на получение отзывов:

  • Дата в UTC, начиная с которой необходимо показывать отзывы. Если ничего не передано, значит показываем абсолютно все отзывы
  • Формат даты: yyyy-mm-ddThh:mm:ss<timezone_specifier>, где timezone_specifier обозначает спецификатор часового пояса, например:
    • Z - дата в формате UTC. Пример, 2016-04-28T20:01:57Z;
    • -hh:mm - часовой пояс UTC-hh:mm. Пример UTC-1: 2016-04-28T20:01:57-01:00;
    • %2Bhh:mm - часовой пояс UTC+hh:mm. Пример UTC+1: 2016-04-28T20:01:57%2B01:00;
  • Если модификатора часового пояса нет, дата отправляется в формате UTC+3(Москва)

Получение встречных предложений на грузы фирмы с одной или несколькими ставками

Получение встречных предложений на грузы фирмы с одной или несколькими ставками .
get /v1.0/loads/new/responses
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/new/responses' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Массив отзывов на все грузы фирмы
[{...}]
ResponseId: guid

Id отзыва

LoadId: guid

Id груза, на который оставлен отзыв

LoadNumber: string

Номер груза

LoadFirmId: int32

Id фирмы, которой принадлежит груз

FirmId: int32

Id фирмы, которая оставила отзыв

FirmName: string

Название фирмы

ContactId: int32

Контакт, который сделал встречное предложение

AddedAt: date-time

Дата добавления отзыва

UpdatedAt: date-time

Дата изменения отзыва

Price: decimal

Предложенная цена встречного предложения

CurrencyId: int32

Валюта встречного предложения
Значение из словаря валют АТИ

NdsPrice: decimal

Предложенная цена встречного предложения с ндс

NdsCurrencyId: int32

Валюта ставки встречного предложения б/нал с НДС.Параметр должен быть равен валюте, указанной в грузе, если параметр FixedRate равен True и параметр Torg равен False.
Значение из словаря валют АТИ

NotNdsPrice: decimal

Предложенная цена встречного предложения без ндс

NotNdsCurrencyId: int32

Валюта встречного предложения без ндс

CounterOfferSource: enum
[0, 1, 2, 3, 4, 5, 6]

Обозначение откуда было добавлено встречное предложение

  • 0 - Неизвестный источник
  • 1 - Мобильное приложение
  • 2 - Интегратор
  • 3 - Перехват грузов интегратором
  • 4 - Страница поиска грузов
  • 5 - Перехват машин
  • 6 - Сквозное встречное предложение, добавлено автоматически
Note: string

Примечание к встречному предложению
Максимальная длина - 512 символов

PayAttributes: int32

Атрибуты оплаты, по умолчанию - 0. Битовая сумма следующих параметров:

  • 1 - возможна оплата наличными
  • 2 - возможна оплата по безналичному рассчету
  • 4 - блиц
  • 8 - оплата с НДС
  • 16 - возможна предоплата
  • 32 - оплата на выгрузке
  • 64 - включена ли оплата через некоторое количество банковских дней
PrepayPercent: int32

Процент предоплаты
Должен быть равен 0 или отсутствовать, если PayAttributes не содержит флаг 16 - возможна предоплата. Допустимое значение от 0 до 100

PayAfterMaxBankDays: int32

Оплата через ... банковских дней
Должен быть равен 0 или отсутствовать, если PayAttributes не содержит флаг 64 - включена оплата через некоторое количество банковских дней. Допустимое значение от 0 до 99

LoadingDate: date-time (nullable)

Дата, когда предложивший хочет перевезти ваш груз

IsOutdated: boolean

Определяет, просрочен ли отзыв. Когда груз редактируют, удаляют, обновляют, отзыв помечается просроченным.
Только для чтения.

IsLoadPublished: boolean

Относится ли отзыв к публикующемуся грузу

IsNoLoad: boolean

Параметр "Груза нет"

AnnouncedCurrencyId: int32

Валюта "Озвученной ставки"
Значение из словаря валют АТИ

AnnouncedRate: int32

Озвученная ставка

}]
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Получение отзывов на любой груз по ID

Если груз принадлежит вашей фирме, то вернутся все отзывы на ваш груз с полной информацией. Если груз принадлежит чужой фирме, то вернутся все отзывы на этот груз, но при этом все отзывы, кроме вашего, будут иметь в поле FirmInfo.Contact значение null.

Получение отзывов на конкретный груз фирмы. На данный момент можно получить только встречные предложения.
get /v1.0/loads/new/{loadId}/responses
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/new/{loadId}/responses' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Массив отзывов
[{...}]
ResponseId: guid

Id отзыва

LoadId: guid

Id груза, на который оставлен отзыв

LoadNumber: string

Номер груза

LoadFirmId: int32

Id фирмы, которой принадлежит груз

FirmId: int32

Id фирмы, которая оставила отзыв

FirmName: string

Название фирмы

ContactId: int32

Контакт, который сделал встречное предложение

AddedAt: date-time

Дата добавления отзыва

UpdatedAt: date-time

Дата изменения отзыва

Price: decimal

Предложенная цена встречного предложения

CurrencyId: int32

Валюта встречного предложения
Значение из словаря валют АТИ

NdsPrice: decimal

Предложенная цена встречного предложения с ндс

NdsCurrencyId: int32

Валюта ставки встречного предложения б/нал с НДС.Параметр должен быть равен валюте, указанной в грузе, если параметр FixedRate равен True и параметр Torg равен False.
Значение из словаря валют АТИ

NotNdsPrice: decimal

Предложенная цена встречного предложения без ндс

NotNdsCurrencyId: int32

Валюта встречного предложения без ндс

CounterOfferSource: enum
[0, 1, 2, 3, 4, 5, 6]

Обозначение откуда было добавлено встречное предложение

  • 0 - Неизвестный источник
  • 1 - Мобильное приложение
  • 2 - Интегратор
  • 3 - Перехват грузов интегратором
  • 4 - Страница поиска грузов
  • 5 - Перехват машин
  • 6 - Сквозное встречное предложение, добавлено автоматически
Note: string

Примечание к встречному предложению
Максимальная длина - 512 символов

PayAttributes: int32

Атрибуты оплаты, по умолчанию - 0. Битовая сумма следующих параметров:

  • 1 - возможна оплата наличными
  • 2 - возможна оплата по безналичному рассчету
  • 4 - блиц
  • 8 - оплата с НДС
  • 16 - возможна предоплата
  • 32 - оплата на выгрузке
  • 64 - включена ли оплата через некоторое количество банковских дней
PrepayPercent: int32

Процент предоплаты
Должен быть равен 0 или отсутствовать, если PayAttributes не содержит флаг 16 - возможна предоплата. Допустимое значение от 0 до 100

PayAfterMaxBankDays: int32

Оплата через ... банковских дней
Должен быть равен 0 или отсутствовать, если PayAttributes не содержит флаг 64 - включена оплата через некоторое количество банковских дней. Допустимое значение от 0 до 99

LoadingDate: date-time (nullable)

Дата, когда предложивший хочет перевезти ваш груз

IsOutdated: boolean

Определяет, просрочен ли отзыв. Когда груз редактируют, удаляют, обновляют, отзыв помечается просроченным.
Только для чтения.

IsLoadPublished: boolean

Относится ли отзыв к публикующемуся грузу

IsNoLoad: boolean

Параметр "Груза нет"

AnnouncedCurrencyId: int32

Валюта "Озвученной ставки"
Значение из словаря валют АТИ

AnnouncedRate: int32

Озвученная ставка

}]
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Получение отзывов на заданные грузы фирмы в виде словаря

Ответ будет представлен в виде словаря, где ключ – id груза, а значение - массив структур “отзыв на груз”, содержащий:

  • Result, представляющий набор отзывов для данного груза;
  • Status, представляющий статус груза: если груз с таким id не найден у вашей фирмы, статус равен 1, иначе статус равен 0. Если у груза статус равен 1, то массив отзывов всегда пуст.

Список ключей словаря полностью совпадает со списком грузов, для которых были запрошены отзывы.

Получение отзывов на заданные грузы фирмы в виде словаря. На данный момент можно получить только встречные предложения.
get /v1.0/loads/new/responses/by-ids
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/new/responses/by-ids' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Массив отзывов по заданным грузам в виде словаря
{...}
}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Добавление либо редактирование отзыва на чужой груз

Добавление либо редактирование отзыва на чужой груз.
put /v1.0/loads/new/{loadId}/responses
Запрос
Модель
{...}
ResponseId: guid

Id отзыва
Только для чтения

LoadId: guid

Id груза, на который оставлен отзыв
Только для чтения

LoadNumber: string

Номер груза
Только для чтения

LoadFirmId: int32

Id фирмы, которой принадлежит груз
Только для чтения

FirmId: int32

Id фирмы, которая оставила отзыв
Только для чтения

ContactId: int32

Контакт, который сделал встречное предложение

AddedAt: date-time

Дата добавления отзыва
Только для чтения

UpdatedAt: date-time

Дата изменения отзыва
Только для чтения

Price: decimal

Предложенная ставка встречного предложения не б/нал. Параметр должен быть равен одной из ставок груза: RateSum, SumWithNDS или SumWithoutNDS, если у груза, которому выставляется встречное предложение, параметр FixedRate равен True И параметр Torg равен False. Значение больше 0 и содержит не более 10 символов.

CurrencyId: int32

Валюта встречного предложения. Параметр должен быть равен валюте, указанной в грузе, если параметр FixedRate равен True и параметр Torg равен False
Значение из словаря валют АТИ

NdsPrice: decimal

Предложенная ставка встречного предложения б/нал с НДС

NdsCurrencyId: int32

Валюта ставки встречного предложения б/нал с НДС.Параметр должен быть равен валюте, указанной в грузе, если параметр FixedRate равен True и параметр Torg равен False.
Значение из словаря валют АТИ

NotNdsPrice: decimal

Предложенная ставка встречного предложения б/нал без НДС

NotNdsCurrencyId: int32

Валюта ставки встречного предложения б/нал без НДС. Параметр должен быть равен валюте, указанной в грузе, если параметр FixedRate равен True и параметр Torg равен False
Значение из словаря валют АТИ

Note: string

Примечание к встречному предложению
Максимальная длина - 512 символов

PayAttributes: int32

Атрибуты оплаты, по умолчанию - 0. Битовая сумма следующих параметров:

  • 1 - возможна оплата наличными
  • 2 - возможна оплата по безналичному рассчету
  • 4 - блиц
  • 8 - оплата с НДС
  • 16 - возможна предоплата
  • 32 - оплата на выгрузке
  • 64 - включена ли оплата через некоторое количество банковских дней
PrepayPercent: int32

Процент предоплаты
Должен быть равен 0 или отсутствовать, если PayAttributes не содержит флаг 16 - возможна предоплата. Допустимое значение от 0 до 100

PayAfterMaxBankDays: int32

Оплата через ... банковских дней
Должен быть равен 0 или отсутствовать, если PayAttributes не содержит флаг 64 - включена оплата через некоторое количество банковских дней. Допустимое значение от 0 до 99

LoadingDate: date-time (nullable)

Дата, когда предложивший хочет перевезти ваш груз

IsOutdated: boolean

Определяет, просрочен ли отзыв. Когда груз редактируют, удаляют, обновляют, отзыв помечается просроченным.
Только для чтения.

IsLoadPublished: boolean

Относится ли отзыв к публикующемуся грузу
Только для чтения

IsNoLoad: boolean

Параметр "Груза нет"

AnnouncedCurrencyId: int32

Валюта "Озвученной ставки"
Значение из словаря валют АТИ

AnnouncedRate: int32

Озвученная ставка

}
Пример запроса
curl 'https://api.ati.su/v1.0/loads/new/{loadId}/responses' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"ResponseId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","LoadId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","LoadNumber":"string","LoadFirmId":0,"FirmId":0,"ContactId":0,"AddedAt":"1970-01-01T00:00:00.000Z","UpdatedAt":"1970-01-01T00:00:00.000Z","Price":0.5,"CurrencyId":0,"NdsPrice":0.5,"NdsCurrencyId":0,"NotNdsPrice":0.5,"NotNdsCurrencyId":0,"Note":"string","PayAttributes":0,"PrepayPercent":0,"PayAfterMaxBankDays":0,"LoadingDate":"1970-01-01T00:00:00.000Z","IsOutdated":false,"IsLoadPublished":false,"IsNoLoad":false,"AnnouncedCurrencyId":0,"AnnouncedRate":0}'
Ответ
200 Отзыв на груз
{...}
ResponseId: guid

Id отзыва

LoadId: guid

Id груза, на который оставлен отзыв

LoadNumber: string

Номер груза

LoadFirmId: int32

Id фирмы, которой принадлежит груз

FirmId: int32

Id фирмы, которая оставила отзыв

FirmName: string

Название фирмы

ContactId: int32

Контакт, который сделал встречное предложение

AddedAt: date-time

Дата добавления отзыва

UpdatedAt: date-time

Дата изменения отзыва

Price: decimal

Предложенная цена встречного предложения

CurrencyId: int32

Валюта встречного предложения
Значение из словаря валют АТИ

NdsPrice: decimal

Предложенная цена встречного предложения с ндс

NdsCurrencyId: int32

Валюта ставки встречного предложения б/нал с НДС.Параметр должен быть равен валюте, указанной в грузе, если параметр FixedRate равен True и параметр Torg равен False.
Значение из словаря валют АТИ

NotNdsPrice: decimal

Предложенная цена встречного предложения без ндс

NotNdsCurrencyId: int32

Валюта встречного предложения без ндс

CounterOfferSource: enum
[0, 1, 2, 3, 4, 5, 6]

Обозначение откуда было добавлено встречное предложение

  • 0 - Неизвестный источник
  • 1 - Мобильное приложение
  • 2 - Интегратор
  • 3 - Перехват грузов интегратором
  • 4 - Страница поиска грузов
  • 5 - Перехват машин
  • 6 - Сквозное встречное предложение, добавлено автоматически
Note: string

Примечание к встречному предложению
Максимальная длина - 512 символов

PayAttributes: int32

Атрибуты оплаты, по умолчанию - 0. Битовая сумма следующих параметров:

  • 1 - возможна оплата наличными
  • 2 - возможна оплата по безналичному рассчету
  • 4 - блиц
  • 8 - оплата с НДС
  • 16 - возможна предоплата
  • 32 - оплата на выгрузке
  • 64 - включена ли оплата через некоторое количество банковских дней
PrepayPercent: int32

Процент предоплаты
Должен быть равен 0 или отсутствовать, если PayAttributes не содержит флаг 16 - возможна предоплата. Допустимое значение от 0 до 100

PayAfterMaxBankDays: int32

Оплата через ... банковских дней
Должен быть равен 0 или отсутствовать, если PayAttributes не содержит флаг 64 - включена оплата через некоторое количество банковских дней. Допустимое значение от 0 до 99

LoadingDate: date-time (nullable)

Дата, когда предложивший хочет перевезти ваш груз

IsOutdated: boolean

Определяет, просрочен ли отзыв. Когда груз редактируют, удаляют, обновляют, отзыв помечается просроченным.
Только для чтения.

IsLoadPublished: boolean

Относится ли отзыв к публикующемуся грузу

IsNoLoad: boolean

Параметр "Груза нет"

AnnouncedCurrencyId: int32

Валюта "Озвученной ставки"
Значение из словаря валют АТИ

AnnouncedRate: int32

Озвученная ставка

}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Удаление отзыва на груз

При удалении встречного предложения у своего груза, необходимо заполнить как loadId, так и ids.
При удалении отзыва на чужой груза, необходимо передать loadId.

Позволяет удалить встречные предложения с указанными id для своего груза или удалить отзыв фирмы у чужого груза.
delete /v1.0/loads/new/{loadId}/responses
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/new/{loadId}/responses' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200
{...}
}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Методы для поиска грузов

Поиск грузов на площадках

В теле ответа находится массив грузов, которые опубликованы на выбранных площадках. В грузах будут указаны только те площадки, в которых дата публикации меньше текущей.
Если массив boardIds пуст, будут получены грузы со всех возможных площадок.

Проводит поиск грузов, которые размещены на указанных площадках. В результате присутствуют как ваши грузы, так и грузы других пользователей.
get /v1.0/loads/search/byboards
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/search/byboards' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Массив грузов, которые опубликованы на выбранных площадках
[{...}]
ContactId1*: int32

Идентификатор первого выбранного контакта.
Список всех контактов и их идентификаторы можно получить с помощью API для работы с фирмами
Контакт должен быть виден для остальных участников АТИ

ContactId2: int32 (nullable)

Идентификатор второго выбранного контакта, если не выбрано, то null
Контакт должен быть виден для остальных участников АТИ

Note: string

Примечание к грузу
Ограничение по длине: 1000 символов

FirstDate: date-time

Дата, начиная с которой груз актуален, в формате UTC
Минимальное значение равно текущей дате
При значении параметра DateType равным 0, допустимое значение поля - текущая дата
При значении параметра DateType равным 1, допустимое значение поля - от текущей даты до 60 дней вперед
При значении параметра DateType равным 2, допустимое значение поля - текущая дата
При значении параметра DateType равным 3, FirstDate должен принимать значение текущей даты или отсутствовать

LastDate: date-time

Дата, после которой груз не актуален, в формате UTC
Минимальное значение равно значению параметра FirstDate
При значении параметра DateType равным 0, допустимое значение поля - от текущей даты до 1 дня вперед
При значении параметра DateType равным 1, допустимое значение поля - от даты в параметре FirstDate до 9 дней вперед
При значении параметра DateType равным 2, данное поле вычисляется автоматически по формуле FirstDate + 2 месяца, передаваемое значение игнорируется
При значении параметра DateType равным 3, LastDate автоматически устанавливается на значение + 2 дня от текущей даты, передаваемое значение игнорируется

DateType: int32

Выбор типа готовности груза к перевозке

  • 0 - Готов к загрузке
  • 1 - с Х по У
  • 2 - постоянно
  • 3 - груза нет, запрос ставки
PeriodicityId: int32

Периодичность загрузки
Если параметр DateType не равен 2, PeriodicityId равен 0.
Иначе PeriodicityId может принимать следующие значения:

  • 1 - ежедневно
  • 100 - по рабочим дням
OrderNumber: string

Номер заказа
Ограничение по длине: 250 символов

Krugoreis: boolean

Параметр, который определяет, включен ли кругорейс для перевозки груза

UnloadFirstDate: date-time (nullable)

Дата начала разгрузки, в формате UTC.
Может иметь значение null.
Минимальное значение равно текущей дате.
При значении параметра DateType равным 3, UnloadFirstDate принимает значение null

UnloadLastDate: date-time (nullable)

Дата окончания разгрузки, в формате UTC. Может иметь значение null.
Если нет даты начала разгрузки UnloadFirstDate, должна отсутствовать дата окончания разгрузки UnloadLastDate.
При значении параметра DateType равным 3, UnloadFirstDate принимает значение null

ArchiveDate: date-time (nullable)

Дата и время переноса в архив

ArchiveReason: enum (nullable)
[Unknown, System, Manual, Complaints, UnwantedContent, DeleteCsvLoad, MergeLoadsAfterEdit, ContactDoesNotHaveAccessToVirtualPayments, VerticesLoadDelete, StealthStatisticError, CheckDuplicateComplaints, DeleteContact, DeleteFirm, CleanOldLoadsJob]

Причина переноса в архив

TruePrice: int32

Озвученная ставка

TrueCurrencyId: int32

ID валюты озвученной ставки

ResponseCount: int32

Количество отзывов о грузе (без встречных предложений)

OfferCount: int32

Количество встречных предложений (остальные отзывы не учитываются)

CanBeDeleted: boolean

Есть ли доступ на удаление груза.

HasPermissionsToLoad: boolean

Есть ли доступ на работу с грузом (без учета прав).

CanBeEdited: boolean

Есть ли доступ на редактирование груза.

CanBeRenewed: boolean

Есть ли доступ на обновление груза.

CanBeRestored: boolean

Есть ли доступ на восстановление груза

EditRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на редактирование груза:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
DeleteRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на удаление контакта:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
RestoreRestriction: enum
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

Причины отказа в доступе на восстановление груза:

  • 0 - Вы имеете доступ к работе с грузом
  • 1 - Ваша фирма больше не может размещать грузы из-за нарушения правил АТИ
  • 2 - Груз зарезервирован/взят, операции с грузом запрещены
  • 3 - Превышен лимит актуальных грузов
  • 4 - Вы пытаетесь работать с грузами под общим пользователем. Недостаточно прав
  • 5 - У вашего контакта недостаточно прав для работы с данным грузом
  • 6 - Груз имеет завершенные Торги, операции с грузом запрещены
  • 7 - Сервис сделок временно недоступен
  • 8 - Нельзя изменять или удалять груз из сквозных торгов
  • 9 - У вашего контакта недостаточно прав для создания грузов
  • 10 - У вашего контакта недостаточно прав для работы с виртуальными кошельками
  • 11 - У вашего контакта недостаточно прав для работы с грузами на Общей площадке
  • 12 - У вашего контакта недостаточно прав для работы с грузами на Персональных площадках
  • 13 - У вашего контакта нет доступа для работы с одной или несколькими персональными площадками, указанными в грузе
  • 14 - У вашего контакта нет доступа для работы с подразделением, в которое восстанавливается груз
  • 15 - Ваш контакт должен быть указан первым в грузе
RenewRestriction: string

Причина отказа в доступе на обновление груза.

Id: guid

Идентификатор груза

LoadNumber: string

Номер груза

UpdatedAt: date-time

Дата последнего изменения груза в формате UTC

AddedAt: date-time

Время добавления груза в формате UTC

Distance: int32

Расстояние по дорогам в км

PlatonRoadsLength: int32

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

TollRoadsLength: int32

Протяженность платных дорог в построенном пути в км

TravelTime: time-span

Время в пути

Zimnik: boolean

Параметр, который определяет, включен ли зимник для перевозки груза

Ferries: boolean

Параметр, который определяет, учитывать ли паромные переправы для перевозки груза

FirmId: string

Идентификатор фирмы

AuctionId: guid (nullable)

Id аукциона

}]
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}

Методы для добавления документа к грузу

Создание документа в АТИ-Доках на груз

Данный метод позволяет создавать следующие типы документов:

  • заказ
  • заказ (табличный вид)
  • заявка (к договору)
  • заявка к договору (табличный вид)
  • поручение экспедитору

Тип создаваемого документа должен быть передан в documentType в том же виде, как он указан выше.

Позволяет создавать документ заданного типа в АТИ-Доках на груз с заданным id.
post /v1.0/loads/{loadId}/atidocs/{documentType}
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/loads/{loadId}/atidocs/{documentType}' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Статус
{...}
Id: string

Id документа

Url: string

Ссылка на документ

}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
{...}

Модель ошибки

Reason: string

Причина ошибки

Error: string

Ключ ошибки

}