Skip to content
ATI.SU MCP NEW Мои токены Поддержка
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя
For LLMs and AI agents: developers documentation index in llms.txt format — ordered list of key documentation URLs for the developers section.

Обезличенные сделки

API обезличенных сделок

Описание

API для отправки ваших сделок или запроса наших сделок в обезличенном виде. Через API мы не получаем информацию о вас и ваших контрагентах. Передаются общие данные по сделке и грузу.

Через API запроса сделок вы сможете получить завершенные сделки за определенный период, совершенные на сайте ATI.SU. Сделка считается завершённой, когда она уже совершена и одна из сторон её завершила на сайте. Это поможет вам сориентироваться по ценам и определить нагрузку определенных направлений.

Подробнее об обмене обезличенными сделками с ATI.SU

Доступ к API

Доступ предоставляется по запросу.

По вопросам обращайтесь к Александру Вильде.

Email: sas@ati.su

Телефон: + 7-812-602-01-04 доб.108

Методы

Демо режим

Для проверки корректности интеграции с данным API, можно указать необязательный параметр, позволяющий получить демо-данные:

  • demo - Флаг демо-режима (Boolean)

При указании этого параметра сервером будет возвращен тестовый набор данных с тем же контрактом ответа, что и в полноценном API.

Получение обезличенных сделок

Получение обезличенных сделок по заданным параметрам. Входные и выходные параметры представлены в схемах ниже.

Получить обезличенные сделки
post /impersonaldeals/v1/get_deals
Параметры
Параметр Тип Расположение Описание
demo boolean query
Вернуть демонстрационные данные вместо реальных сделок (для тестового доступа). Пример: false
Запрос
Модель
{...}

Параметры для получения обезличенных сделок.

StartDate*: date

Начальная дата погрузки, в формате ISO-8601

EndDate*: date

Конечная дата погрузки, в формате ISO-8601

Adr:

Параметр, определяющий степень опасности груза.
Допустимое значение: Null, либо от 0 до 9.

ANY-OF
integer
>=0 and <= 9
null
Weight:

Вес груза в тоннах

ANY-OF
number
>=0 and <= 999999
null
Volume:

Объем груза в кубических метрах

ANY-OF
number
>=0 and <= 999999
null
CarType:

Тип кузова.
Значение поля mask из attributes_dictionary
словаря кузовов ATI.SU.
Словарь нужно запрашивать с параметром attributeFieldFormat=2, иначе attributes_dictionary в ответе не вернётся.
В словаре атрибуты приходят строками, а поле ожидает число: передавайте "1" как 1.
Не передавайте dictionary_item_id — это идентификатор элемента словаря, а не маска кузова.

ANY-OF
integer
>=0
null
GetAlsoRegions:

Получить сделки без точного города, но с указанием региона.
Не во всех сделках есть точный пункт (город),
при передачи этого флага, в выдаче будут сделки с указанием только региона.

ANY-OF
boolean
null
IsExecutor:

Параметр позволяет получить сделки с точным исполнителем
* true — метод вернёт сделки с исполнителем «экспедитор» и «перевозчик»;
* false — метод вернёт сделки с любым исполнителем.

ANY-OF
boolean
null
DealsCount:

Количество запрашиваемых сделок.
Если параметр не передан или указан null, возвращаются все сделки, удовлетворяющие условиям

ANY-OF
integer
>=0
null
}
Пример запроса
curl 'https://api.ati.su/impersonaldeals/v1/get_deals' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"StartDate":"2021-01-01","EndDate":"2021-01-02","From":{"AtiId":{"Id":3611,"Type":2}},"To":{"AtiId":{"Id":3611,"Type":2}},"Adr":0,"Weight":0.5,"Volume":0.5,"CarType":0,"GetAlsoRegions":false,"IsExecutor":false,"DealsCount":0}'
Ответ
200 Обезличенные сделки, удовлетворяющие параметрам
Модель
[{...}]

Обезличенная сделка, отвечающая переданным параметрам.

LoadId*: integer

Уникальный идентификатор отдаваемого груза

Date*: date

Дата погрузки груза в формате ISO-8601

ExtraPointsCitiesCount*: integer

Количество доп. точек маршрута

ExtraPointsCities*:

Доп. точки маршрута — значения поля id в структуре city из словаря городов ATI.SU

ANY-OF
0:[]
null
Distance*: integer

Расстояние маршрута в километрах

CargoTypeId*:

Идентификатор наименования груза.
Значение поля dictionary_item_id из
словаря наименований грузов.
Словарь нужно запрашивать с параметром attributeFieldFormat=2, иначе attributes_dictionary в ответе не вернётся.

ANY-OF
integer
null
ADR*:

Параметр, определяющий степень опасности груза. Допустимое значение от 0 до 9

ANY-OF
integer
null
Weight*:

Вес груза в тоннах

ANY-OF
number
null
Volume*:

Объем груза в кубических метрах

ANY-OF
number
null
PalletCount*:

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

ANY-OF
integer
null
CarType*:

Тип кузова.
Значение поля mask из attributes_dictionary
словаря кузовов ATI.SU.
Словарь нужно запрашивать с параметром attributeFieldFormat=2, иначе attributes_dictionary в ответе не вернётся.

ANY-OF
integer
null
DogruzType*: integer

Вариант перевозки:

  • 1 - отдельной машиной
  • 2 - только догрузом
Rate*: number

Ставка, по которой совершена сделка

CurrencyId*: integer

Валюта ставки в сделке. Значение поля dictionary_item_id из словаря валют ATI.SU. Словарь нужно запрашивать с параметром attributeFieldFormat=2, иначе attributes_dictionary в ответе не вернётся.

PaymentType*: integer

Параметр, определяющий тип ставки.

  • 1 - нал
  • 2 - с НДС
  • 3 - без НДС
Executor*:

Параметр, определяющий исполнителя перевозки:
* null - неизвестно
* 0 - другое
* 1 - перевозчик
* 2 - экспедитор

ANY-OF
integer
null
}]
Пример
[...]
{...}
"LoadId":123456789,
"Date":"2021-01-01",
"ExtraPointsCitiesCount":2,
"ExtraPointsCities":[...],
"string"
],
"Distance":750,
"CargoTypeId":0,
"ADR":0,
"Weight":0.5,
"Volume":0.5,
"PalletCount":0,
"CarType":0,
"DogruzType":1,
"Rate":27500,
"CurrencyId":1,
"PaymentType":2,
"Executor":0,
"From":{...},
"AtiId":{...}
"Id":3611,
"Type":2
}
},
"To":{...}
"AtiId":{...}
"Id":3611,
"Type":2
}
}
}
]
400 Слишком большой объём данных под запрос. Код: `FACELESS_41_LARGE_DEALS_NUMBER_SIZE`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_41_LARGE_DEALS_NUMBER_SIZE",
"reason":"Данных под запрос больше 20 Мб. Измените параметры поиска.",
"error_list":[]
}
402 Не удалось списать атисы за запрошенные сделки. Возможные коды: `FACELESS_49_GET_DEALS_BILLING_ERROR`, `FACELESS_51_NOT_ENOUGH_MONEY`, `FACELESS_50_PAYMENT_FORBIDDEN`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_49_GET_DEALS_BILLING_ERROR",
"reason":"Мы не смогли списать атисы за запрошенные сделки. Повторите попытку позже.",
"error_list":[]
}
403 Доступ запрещён. Возможные коды: `FACELESS_42_FORBIDDEN`, `FACELESS_48_DATE_BLOCK`, `FACELESS_47_MAX_DEALS_BLOCK`, `FACELESS_46_MIN_DEALS_BLOCK`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_42_FORBIDDEN",
"reason":"У вас нет доступа к этому API!",
"details":{...},
"about":"Доступ к API предоставляется по запросу. По вопросам подключения обращайтесь к Александру Вильде. Email: sas@ati.su Телефон: + 7-812-602-01-04 доб.108"
},
"error_list":[]
}
404 Отсутствуют сделки по данным параметрам. Код: `FACELESS_39_DEALS_NOT_FOUND`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_39_DEALS_NOT_FOUND",
"reason":"Нет сделок по заданным параметрам. Измените параметры поиска.",
"error_list":[]
}
408 Время ожидания истекло. Код: `FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT",
"reason":"Данных под запрос слишком много. Время ожидания истекло. Измените параметры поиска.",
"error_list":[]
}
422 Неверные входные параметры. Возможные коды: `FACELESS_37_FIELD_REQUIRED`, `FACELESS_14_WRONG_DATE_FORMAT`, `FACELESS_45_DATE_OUT_OF_RANGE`, `FACELESS_32_START_DATE_GT_END_DATE`, `FACELESS_31_FROM_OR_TO_NEEDED`, `FACELESS_30_WRONG_ADR`, `FACELESS_25_WRONG_ATI_GEO_POINT_TYPE`, `FACELESS_26_ATI_COUNTRY_NOT_FOUND`, `FACELESS_27_ATI_REGION_NOT_FOUND`, `FACELESS_28_ATI_CITY_NOT_FOUND`, `FACELESS_33_BAD_COUNTRY`, `FACELESS_53_VALIDATION_ERROR`, `FACELESS_54_CONDITION_ERROR`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"validation_errors",
"reason":"Произошли ошибки валидации",
"error_list":[...]
{...},
"error":"FACELESS_37_FIELD_REQUIRED",
"reason":"Отсутствует обязательное поле!",
"details":{...}
"location":"StartDate"
}
},
{...}
"error":"FACELESS_14_WRONG_DATE_FORMAT",
"reason":"Укажите дату в формате ISO-8601 (YYYY-MM-DD).",
"details":{...}
"location":"EndDate"
}
}
]
}

Предоставление обезличенных сделок

Передать нам обезличенные сделки. Массив json-объектов с параметрами, стандартизированными в ATI.SU.

Предоставить обезличенные сделки
post /impersonaldeals/v1/give_deals
Параметры
Параметр Тип Расположение Описание
demo boolean query
Если `true`, сделки проходят ту же валидацию, что и при реальной отправке, но не сохраняются и не тарифицируются (тестовый режим). Пример: false
Запрос
Модель
{...}

Тело запроса на предоставление обезличенных сделок.

}
Пример запроса
curl 'https://api.ati.su/impersonaldeals/v1/give_deals' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"Data":[{"LoadId":"E45CCE73-Q040-6641-A19A-FFFFFFFFFFFF","Date":"2021-01-01","From":{"AtiId":{"Id":3611,"Type":2}},"To":{"AtiId":{"Id":1,"Type":2}},"Distance":750,"Weight":45.5,"CarType":1,"DogruzType":1,"Rate":"27500.00","CurrencyId":1,"PaymentType":2,"Executor":1}]}'
Ответ
200 Ваши данные успешно приняты. Тело ответа — boolean `true`. При `demo=true` означает, что сделки прошли валидацию, но сохранены не были.
Модель
boolean
Пример
true
402 Не удалось начислить атисы, сделки не были загружены. Код: `FACELESS_52_GIVE_DEALS_BILLING_ERROR`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_52_GIVE_DEALS_BILLING_ERROR",
"reason":"Мы не смогли начислить атисы. Сделки не были загружены. Повторите загрузку позже.",
"error_list":[]
}
403 Доступ запрещён. Возможные коды: `FACELESS_42_FORBIDDEN`, `FACELESS_48_DATE_BLOCK`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_42_FORBIDDEN",
"reason":"У вас нет доступа к этому API!",
"details":{...},
"about":"Доступ к API предоставляется по запросу. По вопросам подключения обращайтесь к Александру Вильде. Email: sas@ati.su Телефон: + 7-812-602-01-04 доб.108"
},
"error_list":[]
}
411 Все ошибки в пакете — одного кода: не удалось рассчитать расстояние. Если среди ошибок есть хотя бы одна с другим кодом, возвращается 422. Сделки без ошибок при этом сохраняются. Код: `FACELESS_3_UNCALCULATED_DISTANCE`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"validation_errors",
"reason":"Произошли ошибки валидации",
"error_list":[...]
{...}
"error":"FACELESS_3_UNCALCULATED_DISTANCE",
"reason":"Не удалось рассчитать расстояние между точками. Укажите его самостоятельно.",
"details":{...}
"location":"Data -> 0 -> Distance",
"index":0,
"LoadId":"test001"
}
}
]
}
422 Ошибки валидации переданных сделок. Одна сделка может дать несколько ошибок, все они перечислены в `error_list`: `details.index` и `details.LoadId` указывают на проблемную сделку в массиве `Data`, а `details.location` — на конкретное поле. Возможные значения `error` перечислены в схеме `FacelessErrorCode`. Сделки без ошибок при этом сохраняются: ответ 422 не означает, что не принят весь пакет. При `demo=true` не сохраняется ничего, но состав ошибок тот же.
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"validation_errors",
"reason":"Произошли ошибки валидации",
"error_list":[...]
{...},
"error":"FACELESS_28_ATI_CITY_NOT_FOUND",
"reason":"Данного города нет в списке городов ATI.SU!",
"details":{...}
"location":"Data -> 0 -> From -> AtiId -> Id",
"index":0,
"LoadId":"test001"
}
},
{...}
"error":"FACELESS_15_WEIGHT_OR_VOLUME_NEEDED",
"reason":"Укажите значение Weight или Volume. Один из параметров обязательно должен быть заполнен.",
"details":{...}
"location":"Data -> 1",
"index":1,
"LoadId":"test002"
}
}
]
}

Запрос количества сделок

Метод покажет сколько сделок по вашим параметрам вы получите

Получить количество обезличенных сделок
post /impersonaldeals/v1/get_deals_count
Параметры
Параметров нет
Запрос
Модель
{...}

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

StartDate*: date

Начальная дата погрузки, в формате ISO-8601

EndDate*: date

Конечная дата погрузки, в формате ISO-8601

Adr:

Параметр, определяющий степень опасности груза.
Допустимое значение: Null, либо от 0 до 9.

ANY-OF
integer
>=0 and <= 9
null
Weight:

Вес груза в тоннах

ANY-OF
number
>=0 and <= 999999
null
Volume:

Объем груза в кубических метрах

ANY-OF
number
>=0 and <= 999999
null
CarType:

Тип кузова.
Значение поля mask из attributes_dictionary
словаря кузовов ATI.SU.
Словарь нужно запрашивать с параметром attributeFieldFormat=2, иначе attributes_dictionary в ответе не вернётся.
В словаре атрибуты приходят строками, а поле ожидает число: передавайте "1" как 1.
Не передавайте dictionary_item_id — это идентификатор элемента словаря, а не маска кузова.

ANY-OF
integer
>=0
null
GetAlsoRegions:

Получить сделки без точного города, но с указанием региона.
Не во всех сделках есть точный пункт (город),
при передачи этого флага, в выдаче будут сделки с указанием только региона.

ANY-OF
boolean
null
IsExecutor:

Параметр позволяет получить сделки с точным исполнителем
* true — метод вернёт сделки с исполнителем «экспедитор» и «перевозчик»;
* false — метод вернёт сделки с любым исполнителем.

ANY-OF
boolean
null
}
Пример запроса
curl 'https://api.ati.su/impersonaldeals/v1/get_deals_count' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"StartDate":"2021-01-01","EndDate":"2021-01-02","From":{"AtiId":{"Id":3611,"Type":2}},"To":{"AtiId":{"Id":3611,"Type":2}},"Adr":0,"Weight":0.5,"Volume":0.5,"CarType":0,"GetAlsoRegions":false,"IsExecutor":false}'
Ответ
200 Количество обезличенных сделок, удовлетворяющих параметрам
Модель
{...}

Количество обезличенных сделок, отвечающих переданным параметрам.

DealsCount*: integer

Общее количество обезличенных сделок, отвечающих переданным параметрам

}
Пример
{...}
"DealsCount":1500
}
403 Доступ запрещён. Возможные коды: `FACELESS_42_FORBIDDEN`, `FACELESS_48_DATE_BLOCK`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_42_FORBIDDEN",
"reason":"У вас нет доступа к этому API!",
"details":{...},
"about":"Доступ к API предоставляется по запросу. По вопросам подключения обращайтесь к Александру Вильде. Email: sas@ati.su Телефон: + 7-812-602-01-04 доб.108"
},
"error_list":[]
}
422 Неверные входные параметры. Возможные коды: `FACELESS_37_FIELD_REQUIRED`, `FACELESS_14_WRONG_DATE_FORMAT`, `FACELESS_45_DATE_OUT_OF_RANGE`, `FACELESS_32_START_DATE_GT_END_DATE`, `FACELESS_31_FROM_OR_TO_NEEDED`, `FACELESS_30_WRONG_ADR`, `FACELESS_25_WRONG_ATI_GEO_POINT_TYPE`, `FACELESS_26_ATI_COUNTRY_NOT_FOUND`, `FACELESS_27_ATI_REGION_NOT_FOUND`, `FACELESS_28_ATI_CITY_NOT_FOUND`, `FACELESS_33_BAD_COUNTRY`, `FACELESS_53_VALIDATION_ERROR`, `FACELESS_54_CONDITION_ERROR`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"validation_errors",
"reason":"Произошли ошибки валидации",
"error_list":[...]
{...},
"error":"FACELESS_37_FIELD_REQUIRED",
"reason":"Отсутствует обязательное поле!",
"details":{...}
"location":"StartDate"
}
},
{...}
"error":"FACELESS_14_WRONG_DATE_FORMAT",
"reason":"Укажите дату в формате ISO-8601 (YYYY-MM-DD).",
"details":{...}
"location":"EndDate"
}
}
]
}

Запрос статистики

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

Получить статистику по принятым/отданным сделкам
post /impersonaldeals/v1/get_deals_statistic
Параметры
Параметров нет
Запрос
Модель
{...}

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

StartDate*: date

Начальная дата запрашиваемого периода, в формате ISO-8601.

EndDate*: date

Конечная дата запрашиваемого периода, в формате ISO-8601.

}
Пример запроса
curl 'https://api.ati.su/impersonaldeals/v1/get_deals_statistic' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"StartDate":"2021-06-06","EndDate":"2021-07-07"}'
Ответ
200 Статистика по принятым/отданным сделкам
Модель
{...}

Общая статистика по принятым/отданным сделкам за выбранный период.

AllGivenCount*: integer

Общее количество переданных сделок

AllGivenPrice*: number

Общая сумма переданных сделок

AllTakenCount*: integer

Общее количество взятых сделок

AllTakenPrice*: number

Общая сумма взятых сделок

GivenInLast30Days*: integer

Передано сделок за последние 30 дней

CurrentTakeLimit*:

Текущий лимит на взятие сделок. null, если лимит не задан

ANY-OF
integer
null
CurrentTakenCount*: integer

Текущее количество взятых сделок

}
Пример
{...}
"GivenDealsCityToCity":{...},
"FromNowTo6MonthsAgo":{...},
"Count":120,
"OneDealsPrice":27500,
"TotalSum":3300000
},
"From6MonthsTo12MonthsAgo":{...},
"Count":60,
"OneDealsPrice":27500,
"TotalSum":1650000
},
"From1YearTo2YearsAgo":{...},
"Count":40,
"OneDealsPrice":27500,
"TotalSum":1100000
},
"From2YearsTo4YearsAgo":{...},
"Count":20,
"OneDealsPrice":27500,
"TotalSum":550000
},
"From4YearsAgo":{...}
"Count":10,
"OneDealsPrice":27500,
"TotalSum":275000
}
},
"TakenDealsCityToCity":{...},
"FromNowTo6MonthsAgo":{...},
"Count":70,
"OneDealsPrice":27500,
"TotalSum":1925000
},
"From6MonthsTo12MonthsAgo":{...},
"Count":40,
"OneDealsPrice":27500,
"TotalSum":1100000
},
"From1YearTo2YearsAgo":{...},
"Count":25,
"OneDealsPrice":27500,
"TotalSum":687500
},
"From2YearsTo4YearsAgo":{...},
"Count":15,
"OneDealsPrice":27500,
"TotalSum":412500
},
"From4YearsAgo":{...}
"Count":5,
"OneDealsPrice":27500,
"TotalSum":137500
}
},
"GivenDealsRegionToRegion":{...},
"FromNowTo6MonthsAgo":{...},
"Count":40,
"OneDealsPrice":27500,
"TotalSum":1100000
},
"From6MonthsTo12MonthsAgo":{...},
"Count":25,
"OneDealsPrice":27500,
"TotalSum":687500
},
"From1YearTo2YearsAgo":{...},
"Count":15,
"OneDealsPrice":27500,
"TotalSum":412500
},
"From2YearsTo4YearsAgo":{...},
"Count":7,
"OneDealsPrice":27500,
"TotalSum":192500
},
"From4YearsAgo":{...}
"Count":3,
"OneDealsPrice":27500,
"TotalSum":82500
}
},
"TakenDealsRegionToRegion":{...},
"FromNowTo6MonthsAgo":{...},
"Count":25,
"OneDealsPrice":27500,
"TotalSum":687500
},
"From6MonthsTo12MonthsAgo":{...},
"Count":15,
"OneDealsPrice":27500,
"TotalSum":412500
},
"From1YearTo2YearsAgo":{...},
"Count":8,
"OneDealsPrice":27500,
"TotalSum":220000
},
"From2YearsTo4YearsAgo":{...},
"Count":5,
"OneDealsPrice":27500,
"TotalSum":137500
},
"From4YearsAgo":{...}
"Count":2,
"OneDealsPrice":27500,
"TotalSum":55000
}
},
"AllGivenCount":340,
"AllGivenPrice":9350000,
"AllTakenCount":210,
"AllTakenPrice":5775000,
"GivenInLast30Days":28,
"CurrentTakeLimit":100,
"CurrentTakenCount":15
}
403 Доступ запрещён. Возможные коды: `FACELESS_42_FORBIDDEN`, `FACELESS_48_DATE_BLOCK`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_42_FORBIDDEN",
"reason":"У вас нет доступа к этому API!",
"details":{...},
"about":"Доступ к API предоставляется по запросу. По вопросам подключения обращайтесь к Александру Вильде. Email: sas@ati.su Телефон: + 7-812-602-01-04 доб.108"
},
"error_list":[]
}
404 Нет сделок по заданным параметрам. Код: `FACELESS_39_DEALS_NOT_FOUND`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"FACELESS_39_DEALS_NOT_FOUND",
"reason":"Нет сделок по заданным параметрам. Измените параметры поиска.",
"error_list":[]
}
422 Неверные входные параметры. Возможные коды: `FACELESS_37_FIELD_REQUIRED`, `FACELESS_14_WRONG_DATE_FORMAT`, `FACELESS_45_DATE_OUT_OF_RANGE`, `FACELESS_32_START_DATE_GT_END_DATE`, `FACELESS_53_VALIDATION_ERROR`, `FACELESS_54_CONDITION_ERROR`
Модель
{...}

Формат возвращаемых ошибок.
Сервис возвращает ошибки в двух видах, различать их нужно по error_list:
* error_list пуст — произошла одна ошибка, она описана в полях
error, reason и details;
* error_list не пуст — ошибок несколько, разбирать нужно каждый его
элемент, а верхнеуровневый error в этом случае всегда равен
validation_errors.
Как разбирать ошибку:
1. Ветвите логику по error — это стабильный машинный код.
2. reason предназначен для показа пользователю. Текст может меняться,
разбирать его не нужно.
3. details.location указывает на поле, вызвавшее ошибку.
4. details.index и details.LoadId указывают на конкретную сделку
в массиве Data и заполняются только для /v1/give_deals.

error*:

Машинный код ошибки.
Для ответов с несколькими ошибками (непустой error_list)
принимает фиксированное значение validation_errors.

ANY-OF
enum
[FACELESS_1_UNKNOWN, FACELESS_2_UNRECOGNIZED_ADDRESS, FACELESS_3_UNCALCULATED_DISTANCE, FACELESS_4_DISTANCE_NEEDED_FOR_REGION, FACELESS_5_SPECIFY_EXTRA_POINT, FACELESS_6_PRICE_ABOVE_MARKET, FACELESS_7_WRONG_CARTYPE, FACELESS_8_WRONG_DOGRUZ_TYPE, FACELESS_9_WRONG_PAYMENT_TYPE, FACELESS_10_WRONG_EXECUTOR, FACELESS_11_ZERO_RATE, FACELESS_12_RATE_IS_NOT_A_NUMBER, FACELESS_13_FUTURE_DATE, FACELESS_14_WRONG_DATE_FORMAT, FACELESS_15_WEIGHT_OR_VOLUME_NEEDED, FACELESS_16_NOT_EQUAL_GEO_POINTS, FACELESS_17_INVALID_FIAS_ID, FACELESS_18_FIAS_ID_NOT_FOUND, FACELESS_19_NOT_ENOUGH_GEO_POINTS, FACELESS_20_NEED_EXTRAPOINTS_DISTANCE, FACELESS_21_UNSUPPORTED_GEO_POINT_TYPE, FACELESS_22_NEEDED_GEO_POINT, FACELESS_23_MANY_GEO_TYPES, FACELESS_25_WRONG_ATI_GEO_POINT_TYPE, FACELESS_26_ATI_COUNTRY_NOT_FOUND, FACELESS_27_ATI_REGION_NOT_FOUND, FACELESS_28_ATI_CITY_NOT_FOUND, FACELESS_29_EQUAL_LOAD_ID, FACELESS_30_WRONG_ADR, FACELESS_31_FROM_OR_TO_NEEDED, FACELESS_32_START_DATE_GT_END_DATE, FACELESS_33_BAD_COUNTRY, FACELESS_34_NO_LOAD_ID, FACELESS_35_PRICE_BELOW_MARKET, FACELESS_36_DEAL_IS_TOO_OLD, FACELESS_37_FIELD_REQUIRED, FACELESS_38_JSON_DECODE, FACELESS_39_DEALS_NOT_FOUND, FACELESS_40_LARGE_DEALS_NUMBER_TIMEOUT, FACELESS_41_LARGE_DEALS_NUMBER_SIZE, FACELESS_42_FORBIDDEN, FACELESS_43_UNPROCESSABLE_INPUT, FACELESS_44_SQL_ERROR, FACELESS_45_DATE_OUT_OF_RANGE, FACELESS_46_MIN_DEALS_BLOCK, FACELESS_47_MAX_DEALS_BLOCK, FACELESS_48_DATE_BLOCK, FACELESS_49_GET_DEALS_BILLING_ERROR, FACELESS_50_PAYMENT_FORBIDDEN, FACELESS_51_NOT_ENOUGH_MONEY, FACELESS_52_GIVE_DEALS_BILLING_ERROR, FACELESS_53_VALIDATION_ERROR, FACELESS_54_CONDITION_ERROR, FACELESS_55_WRONG_CAR_TYPE_ID, FACELESS_56_WRONG_CURRENCY_ID, FACELESS_57_WRONG_CARGO_TYPE_ID, FACELESS_58_WRONG_CARTYPE]

Машинный код ошибки сервиса.

enum
[validation_errors]
reason*: string

Человекочитаемое описание ошибки.

details:

Детали ошибки (null, если их нет).
Для ответов с несколькими ошибками всегда null: детали каждой ошибки
лежат в соответствующем элементе error_list.

ANY-OF
null
}
Пример
{...}
"error":"validation_errors",
"reason":"Произошли ошибки валидации",
"error_list":[...]
{...},
"error":"FACELESS_37_FIELD_REQUIRED",
"reason":"Отсутствует обязательное поле!",
"details":{...}
"location":"StartDate"
}
},
{...}
"error":"FACELESS_14_WRONG_DATE_FORMAT",
"reason":"Укажите дату в формате ISO-8601 (YYYY-MM-DD).",
"details":{...}
"location":"EndDate"
}
}
]
}