Skip to content
Мои токены Поддержка
Авторизоваться
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя

Как добавить груз с нужными параметрами

Для того, чтобы найти перевозчика на Бирже грузоперевозок ATI.SU, для начала необходимо добавить груз.

Версия
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
Модель
{...}
}
Пример
{...}
"cargo_application":{...}
"cargo_application_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"snapshot_id":0,
"cargo_application_number":"string",
"department_id":0,
"persistent_user_id":0,
"actor_contact_id":0,
"external_id":"string",
"added_at":"1970-01-01T00:00:00.000Z",
"updated_at":"1970-01-01T00:00:00.000Z",
"origin_source":"string",
"route":{...},
"loading":{...},
"city":{...},
"city_id":0,
"region_id":0,
"country_id":0
},
"coordinates":{...},
"longitude":0.5,
"latitude":0.5
},
"address":"string",
"organization":{...}
"organization_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
"unloading":{...},
"city":{...},
"city_id":0,
"region_id":0,
"country_id":0
},
"coordinates":{...},
"longitude":0.5,
"latitude":0.5
},
"address":"string",
"organization":{...}
"organization_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
},
"way_points":[...],
{...}
"city":{...},
"city_id":0,
"region_id":0,
"country_id":0
},
"coordinates":{...},
"longitude":0.5,
"latitude":0.5
},
"address":"string",
"organization":{...}
"organization_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"address_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
],
"is_round_trip":false
},
"truck":{...},
"trucks_count":0,
"load_type":"string",
"body_types":[...],
0
],
"is_tracking":false,
"adr":0,
"belts_count":0,
"required_capacity":0.5,
"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
}
},
"payment":{...},
"type":"string",
"hide_counter_offers":false,
"direct_offer":false,
"prepayment":{...},
"percent":0,
"using_fuel":false
},
"payment_mode":{...}
"type":"string"
}
},
"boards":[...],
{...}
"id":"string",
"publication_mode":"string",
"publication_time":"1970-01-01T00:00:00.000Z",
"cancel_publish_on_auction_bet":false,
"reservation_enabled":false,
"is_published":false
}
],
"documents":[...],
{...}
"file_id":"string",
"name":"string",
"link":"string"
}
],
"application_contacts":[...],
{...}
"id":0
}
],
"paid_features":{...},
"priority_view":{...},
"rate":0.5,
"only_for_paid_users":false,
"limit":0.5,
"daily_limit":0.5
},
"stealth":{...}
"list_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"minimal_registration_date":"1970-01-01T00:00:00.000Z",
"minimal_stars_count":0
}
},
"note":"string",
"lot_id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"lot_number":0,
"is_pass_through_copy":false,
"is_archived":false,
"archive_date":"1970-01-01T00:00:00.000Z"
}
}

Груз может быть добавлен:

  1. на Общую площадку - тогда он будет виден всем пользователям ATI.SU. При этом он может быть поднят в поиске за счет приоритетного показа, который позволит привлечь больше внимания к грузу и увеличить охват. Метод для добавления и изменения параметров приоритетного показа:
Изменение параметров приоритетного показа у груза.
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 аукциона

}
Пример
{...}
"LoadMeta":{...},
"LoadMetaId":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"MetaData":"string"
},
"ContactId1":0,
"ContactId2":0,
"Note":"string",
"FirstDate":"1970-01-01T00:00:00.000Z",
"LastDate":"1970-01-01T00:00:00.000Z",
"DateType":0,
"PeriodicityId":0,
"OrderNumber":"string",
"Krugoreis":false,
"Loading":{...},
"CityId":0,
"Latitude":0.5,
"Longitude":0.5,
"Street":"string",
"TimeStart":"1970-01-01T00:00:00.000Z",
"TimeEnd":"1970-01-01T00:00:00.000Z",
"IsRoundTheClock":false,
"LargeCities":[...],
0
],
"LoadingCargos":[...]
{...}
"CargoId":0,
"NameId":0,
"Name":"string",
"PackagingType":0,
"PackagingQuantity":0,
"Weight":0.5,
"Volume":0.5,
"Sizes":{...}
"Length":0.5,
"Width":0.5,
"Height":0.5,
"Diameter":0.5,
"LengthHighlight":false,
"WidthHighlight":false,
"HeightHighlight":false
}
}
]
},
"ExtraPoints":[...],
{...}
"CityId":0,
"PointType":0,
"Latitude":0.5,
"Longitude":0.5,
"Street":"string",
"OrdinalId":0,
"IsRoundTheClock":false,
"LoadingDateStart":"1970-01-01T00:00:00.000Z",
"LoadingDateEnd":"1970-01-01T00:00:00.000Z",
"LoadingTimeStart":null,
"LoadingTimeEnd":null,
"LoadingCargos":[...],
{...}
"CargoId":0,
"NameId":0,
"Name":"string",
"PackagingType":0,
"PackagingQuantity":0,
"Weight":0.5,
"Volume":0.5,
"Sizes":{...}
"Length":0.5,
"Width":0.5,
"Height":0.5,
"Diameter":0.5,
"LengthHighlight":false,
"WidthHighlight":false,
"HeightHighlight":false
}
}
],
"UnloadingCargos":[...]
{...}
"CargoId":0,
"Weight":0.5,
"Volume":0.5,
"PackagingQuantity":0,
"IsDefinedByTtn":false
}
]
}
],
"Unloading":{...},
"CityId":0,
"Latitude":0.5,
"Longitude":0.5,
"Street":"string",
"TimeStart":"1970-01-01T00:00:00.000Z",
"TimeEnd":"1970-01-01T00:00:00.000Z",
"IsRoundTheClock":false,
"LargeCities":[...],
0
],
"LoadingCargos":[...]
{...}
"CargoId":0,
"NameId":0,
"Name":"string",
"PackagingType":0,
"PackagingQuantity":0,
"Weight":0.5,
"Volume":0.5,
"Sizes":{...}
"Length":0.5,
"Width":0.5,
"Height":0.5,
"Diameter":0.5,
"LengthHighlight":false,
"WidthHighlight":false,
"HeightHighlight":false
}
}
]
},
"Cargo":{...},
"Weight":0.5,
"Volume":0.5,
"ADR":0,
"CargoTypeId":0,
"CargoType":"string",
"PackType":0,
"PalletCount":0,
"BeltCount":0,
"DogruzType":0,
"SborGruz":false,
"Size":{...}
"Length":0.5,
"Width":0.5,
"Height":0.5,
"Diameter":0.5,
"LengthHighlight":false,
"WidthHighlight":false,
"HeightHighlight":false
}
},
"Transport":{...},
"CarType":0,
"LoadingType":0,
"LoadingLogicalOperator":"string",
"UnloadingType":0,
"UnloadingLogicalOperator":"string",
"TrucksQuantity":0,
"TemperatureFrom":0,
"TemperatureTo":0,
"Stsepka":false,
"Pnevmohod":false,
"Koniki":false,
"TIR":false,
"CMR":false,
"T1":false,
"SanPassport":false,
"IsTracking":false
},
"Payment":{...},
"CurrencyId":0,
"MoneyType":0,
"RateSum":0.5,
"SumWithNDS":0.5,
"SumWithoutNDS":0.5,
"PrepayPercent":0,
"PrepayPercentEnabled":false,
"PayDays":0,
"PayDaysEnabled":false,
"FixedRate":false,
"Torg":false,
"DirectContract":false,
"InFuel":false,
"OnUnloading":false,
"HideResponses":false,
"AcceptPaymentTypes":0
},
"InviteSettings":{...},
"InviteDelayInSeconds":0,
"InviteDurationInSeconds":0
},
"PriorityView":{...},
"DailyLimit":0.5,
"IsForPayedOnly":false,
"OrderLimit":0.5,
"ViewRate":0.5,
"MoneySpentPerDay":0.5,
"MoneySpentPerOrder":0.5
},
"Stealth":{...},
"ListIdToHide":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"FirmRegDateToHide":"1970-01-01T00:00:00.000Z",
"ScoreToHide":0.5
},
"LoadFiles":[...],
{...}
"Id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"FileType":0,
"Attributes":0,
"Name":"string",
"Link":"string",
"Size":0
}
],
"Deal":{...},
"Auction":{...}
"StartRate":0.5,
"Currency":0,
"Step":0.5,
"PaymentType":0,
"AcceptSecondPayType":false,
"StartDate":"1970-01-01T00:00:00.000Z",
"EndDate":"1970-01-01T00:00:00.000Z",
"EndDateBoundary":"1970-01-01T00:00:00.000Z",
"Nds":0.5,
"TimeToProvideDocuments":0.5,
"AutoRenew":false,
"RenewTime":0,
"MaxRenewTime":0,
"RaiseBid":false,
"MaxRate":0.5,
"RaiseBidInterval":0,
"ResponseInMinutes":0,
"Duration":0,
"StartSinceFirstBet":false,
"AuctionRestartParameters":{...},
"AuctionFinishAction":0,
"InitRestartCount":0,
"InitChangeWinnerCount":0,
"DurationAfterRestart":0
},
"AcceptCounterOffersOnlyBeforeFirstBet":false,
"WinnerCriterion":0,
"AuctionId":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"LoadId":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"ActiveDealId":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"State":0,
"Finished":false,
"WinDate":"1970-01-01T00:00:00.000Z",
"AuctionRates":[...]
{...}
"AuctionRateId":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"AddedAt":"1970-01-01T00:00:00.000Z",
"RateFirm":{...},
"Score":0.5,
"Status":0,
"Name":"string",
"ContactName":"string",
"AtiId":"string"
},
"Rate":0.5,
"State":0,
"LoadingDate":"1970-01-01T00:00:00.000Z",
"FirmId":0,
"ContactId":0
}
]
}
},
"Boards":[...],
{...}
"BoardId":"string",
"PublicationTime":"1970-01-01T00:00:00.000Z",
"IsReservationEnabled":false,
"PublicationOption":0,
"IsPublished":false,
"IsCommonBoard":false
}
],
"UnloadFirstDate":"1970-01-01T00:00:00.000Z",
"UnloadLastDate":"1970-01-01T00:00:00.000Z",
"ArchiveDate":"1970-01-01T00:00:00.000Z",
"ArchiveReason":"Unknown",
"TruePrice":0,
"TrueCurrencyId":0,
"ResponseCount":0,
"OfferCount":0,
"CanBeDeleted":false,
"HasPermissionsToLoad":false,
"CanBeEdited":false,
"CanBeRenewed":false,
"CanBeRestored":false,
"EditRestriction":0,
"DeleteRestriction":0,
"RestoreRestriction":0,
"RenewRestriction":"string",
"Id":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
"LoadNumber":"string",
"UpdatedAt":"1970-01-01T00:00:00.000Z",
"AddedAt":"1970-01-01T00:00:00.000Z",
"Distance":0,
"PlatonRoadsLength":0,
"TollRoadsLength":0,
"TravelTime":"?",
"Zimnik":false,
"Ferries":false,
"FirmId":"string",
"AuctionId":"3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
4XX Ошибка запроса. [Подробнее про ошибки API](https://ati.su/developers/api/loads/#loads-title-errors)
Модель
{...}

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

Reason: string

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

Error: string

Ключ ошибки

}
Пример
{...}
"Reason":"string",
"Error":"string"
}
  1. на Персональную площадку - тогда он будет виден только тем пользователям, которые добавлены на данную Площадку. Создать Площадку и пригласить на нее пользователей вы можете через интерфейс на сайте ATI.SU или через API.
Создать площадку
post /v2/boards/public/boards/create
Запрос
Модель
{...}
all_departments_allowed*: boolean

Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения Если передано true, то DepartmentsIds должен быть null или пустым Пример: true

board_exchange_direction*: enum
[input, output, exchange]

Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию)

  • exchange — Обмен грузами/машинами
  • input — Грузы/машины для владельца площадки
  • output - Грузы/машины от владельца площадки
board_type*: enum
[loads, trucks]

Тип содержимого на площадке

  • loads - Площадка с грузами
  • trucks - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
color*: string

Цвет плашки площадки Пример: "#FF00FF"

departments_ids*: [int32]

Перечень подразделений компании, которым доступна площадка. В случае, если передан не пустой перечень значение AllDepartmentsAllowed должно быть false. Ответственный контакт ResponsibleContactId должен состоять (принадлежать) хотя бы одному из указанных подразделений Пример: [100302, 100303]

description*: string

Описание площадки (можно использовать тэги "b", "i", "span", "u", "ul", "li", "br") Пример: "Лучшая площадка из всех созданных"

name_for_users*: string

Публичное имя, видимое участникам площадки (до 50 символов) Пример: "Приходите, покупайте"

private_name*: string

Имя, которое видит только владелец площадки (до 50 символов) Пример: "Покупайте, приходите"

public*: boolean

Открытая площадка или закрытая. На открытую может подать заявку на вступление любой пользователь. На закрытую можно попасть только по приглашению владельца. Пример: true

responsible_contact_id: int32

ID контакта ответственного пользователя Пример: 1

rules*: string

Правила участия, которые требуется принять участникам при вступлении (можно использовать тэги "b", "i", "span", "u", "ul", "li", "br") Пример: "Только красные машины"

}
Пример запроса
curl 'https://api.ati.su/v2/boards/public/boards/create' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"all_departments_allowed":false,"board_exchange_direction":"input","board_type":"loads","color":"string","departments_ids":[0],"description":"string","name_for_users":"string","private_name":"string","public":false,"responsible_contact_id":0,"rules":"string"}'
Ответ
200 Данные о площадке
Модель
{...}

Информация о площадке (api v2)

all_departments_allowed*: boolean

Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения Пример: true

available_for_contact*: boolean

Площадка доступна для данного контакта Пример: true

board_exchange_direction*: enum
[input, output, exchange]

Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию)

  • exchange — Обмен грузами/машинами
  • input — Грузы/машины для владельца площадки
  • output - Грузы/машины от владельца площадки
board_type*: enum
[loads, trucks]

Тип содержимого на площадке

  • loads - Площадка с грузами
  • trucks - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)
color*: string

Цвет площадки Пример: "#FF00FF"

created_on*: date-time

Время создания площадки (timestamp) Пример: 1556201954901

departments_ids*: [int32]

Перечень подразделений компании, которым доступна площадка Пример: [100302, 100303]

id*: string

ID площадки (строка 24 символа) Пример: "507f1f77bcf86cd799439011"

name*: string

Название площадки Пример: "Образцово-показательная площадка"

owner_firm*: int32

Код участника ATI.SU создавшего площадку Пример: 1111111

updated_on*: date-time

Последнее время изменения площадки (Timestamp) Пример: 1556201954901

view_only_own*: boolean

Участник может видеть только свои грузы/машины Пример: true

}
Пример
{...}
"all_departments_allowed":false,
"available_for_contact":false,
"board_exchange_direction":"input",
"board_type":"loads",
"color":"string",
"created_on":"1970-01-01T00:00:00.000Z",
"departments_ids":[...],
0
],
"id":"string",
"name":"string",
"owner_firm":0,
"updated_on":"1970-01-01T00:00:00.000Z",
"view_only_own":false
}
400 Ошибка валидации или другая
Модель
{...}
error*: string

Код ошибки

reason*: string

Текст ошибки

errors_list*: [string]

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

}
Пример
{...}
"error":"string",
"reason":"string",
"details":{...},
"any-key":null
},
"errors_list":[...]
"string"
]
}
Пригласить участника ATI.SU на площадку (создание участника площадки с типом Invited)
post /v2/boards/public/participants/invite
Запрос
Модель
{...}
ati_id*: string

код участника в ATI.SU

board_id*: string

ID площадки

contact_id: int32

ID контакта

}
Пример запроса
curl 'https://api.ati.su/v2/boards/public/participants/invite' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"ati_id":"string","board_id":"string","contact_id":0}'
Ответ
200 ID приглашения
Модель
string
Пример
"string"
400 Ошибка валидации
Модель
{...}
error*: string

Код ошибки

reason*: string

Текст ошибки

errors_list*: [string]

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

}
Пример
{...}
"error":"string",
"reason":"string",
"details":{...},
"any-key":null
},
"errors_list":[...]
"string"
]
}

Полная документация API Площадок.

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

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

  • если опубликовать груз с запросом ставки, то перевозчики будут предлагать вам свои цены - встречные предложения, из которых вы сможете выбрать наиболее интересный для вас вариант;
  • если опубликовать груз с фиксированной ставкой, но с возможностью торга, то перевозчики смогут сделать вам встречные предложения, опираясь на ту цену, которую изначально указали вы. И у вас также будет возможность выбрать наиболее интересный для вас вариант;
  • если опубликовать груз с фиксированной ставкой, без возможности торга, то его смогут взять те перевозчики, которые будут согласны перевезти груз за указанную вами цену;
  • если опубликовать груз с Торгами (Аукционом), то конечная ставка за перевозку будет сформирована после Торгов.

Полная документация API грузов.