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

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

Email: sas@ati.su

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

Методы

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

Передать нам обезличенные сделки. Массив 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"
}
}
]
}