Skip to content
Для ИИ NEW Мои токены Поддержка
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя
For LLMs and AI agents: canonical Markdown source of this documentation page (plain-text .md — fetch this URL to use the page content in tools and RAG). For LLMs and AI agents: developers documentation index in llms.txt format — ordered list of key documentation URLs for the developers section.

Методы для работы со складами

Добавление или изменение склада

Чтобы изменить существующий склад, надо передать поле id с идентификатором склада. Если id не передать, то будет создан новый склад. В ответ на запрос возвращается созданный или изменённый склад.

Создаёт или изменяет склад. Без ненулевого id создаёт склад, с id изменяет неудалённый склад фирмы пользователя. owner задаёт сервер; географические поля заполняются по city_id. При создании передайте terminals или непустое schedule склада: во втором случае создаётся площадка с расписанием и контактами склада. Создание склада и площадок атомарно. При изменении terminals игнорируется — используйте POST /api/v1/terminal. Непустые schedule и contacts заменяют прежние; пустые списки сохраняют их. При создании result содержит warehouse и terminals; при изменении только warehouse. Названия города локализуются по Accept-Language; для en название и адрес склада транслитерируются. После создания используйте ID склада и площадок для бронирования.
post /gw/timeslots/api/v1/warehouse
Параметры
Параметров нет
Запрос
Модель
{...}

Данные склада и его начальных площадок.

name*: string
От (1 до 280 символов)

Название склада

address*: string
От (1 до 400 символов)

Адрес

city_id*: integer
>=-2147483648 and <= 2147483647

Идентификатор населённого пункта в геословаре ATI. Источник: POST /gw/gis-dict/v1/autocomplete/suggestions с suggestion_types=1; подставляйте suggestions[].city.id выбранного города. Проверка известного ID: POST /gw/gis-dict/v1/cities/by-ids, поле cities[].id. Документация: https://ati.su/developers/api/dictionaries/geo/

timeslot_interval_duration: integer
>=1 and <= 2147483647

Шаг сетки бронирования в минутах.

deleted: boolean

Удален

id: integer

ID изменяемого склада. Без id или с 0 создаётся склад.

}
Пример запроса
curl 'https://api.ati.su/gw/timeslots/api/v1/warehouse' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"name":"Склад","address":"Адрес","city_id":1,"contacts":[],"schedule":[{"day_of_week":"1","time_from":"08:00","time_to":"18:00"}]}'
Ответ
200
Модель
{...}

Успешный ответ.

ok: boolean

Признак успешного выполнения запроса.

}
Пример
{...}
"result":{...},
"warehouse":{...},
"schedule":[...],
{...}
"time_from":"08:00",
"time_to":"18:00",
"day_of_week":"1"
}
],
"contacts":[...],
{...}
"name":"string",
"phone":"string",
"country_phone_id":"string",
"warehouse":1
}
],
"name":"string",
"address":"string",
"owner":1,
"city_id":1,
"country_id":1,
"timezone":"string",
"city_verbose":"string",
"timeslot_interval_duration":1,
"utc_offset":1,
"deleted":false,
"is_test":false
},
"terminals":[...]
{...}
"contacts":[...],
{...}
"name":"string",
"phone":"string",
"country_phone_id":"string"
}
],
"name":"string",
"loading_type":"any",
"deleted":false,
"is_test":false,
"warehouse":1
}
]
},
"ok":true
}
400 Некорректный запрос, город, расписание или площадки.
Модель
{...}

Ошибка запроса с подробностями по отдельным полям.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком",
"error_list":[...]
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}
]
}
403 Контекст пользователя отсутствует или некорректен.
Модель
{...}

Ошибка API: код и причина.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}
404 Склад не найден или не принадлежит фирме пользователя.
Модель
{...}

Ошибка API: код и причина.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}

Получение складов

Возвращается список складов, принадлежащих пользователю, а также список партнерских складов.

Получает собственные и партнёрские склады. warehouses содержит неудалённые склады фирмы пользователя. partners_warehouses — чужие склады с принятой неудалённой связью со Справочниками фирмы. Партнёрский склад может иметь deleted=true. Счётчики относятся к соответствующим спискам. Пагинации и фильтров нет, порядок — от новых к старым. По Accept-Language=en город возвращается на английском, название и адрес транслитерируются. ID собственного склада используется для изменения, создания площадок и бронирований.
get /gw/timeslots/api/v1/warehouse
Параметры
Параметров нет
Запрос
Пример запроса
curl 'https://api.ati.su/gw/timeslots/api/v1/warehouse' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200
Модель
{...}

Успешный ответ.

ok: boolean

Признак успешного выполнения запроса.

}
Пример
{...}
"result":{...},
"count":1,
"warehouses":[...],
{...}
"schedule":[...],
{...}
"time_from":"08:00",
"time_to":"18:00",
"day_of_week":"1"
}
],
"contacts":[...],
{...}
"name":"string",
"phone":"string",
"country_phone_id":"string",
"warehouse":1
}
],
"name":"string",
"address":"string",
"owner":1,
"city_id":1,
"country_id":1,
"timezone":"string",
"city_verbose":"string",
"timeslot_interval_duration":1,
"utc_offset":1,
"deleted":false,
"is_test":false
}
],
"partners_warehouses_count":1,
"partners_warehouses":[...]
{...}
"schedule":[...],
{...}
"time_from":"08:00",
"time_to":"18:00",
"day_of_week":"1"
}
],
"contacts":[...],
{...}
"name":"string",
"phone":"string",
"country_phone_id":"string",
"warehouse":1
}
],
"name":"string",
"address":"string",
"owner":1,
"city_id":1,
"country_id":1,
"timezone":"string",
"city_verbose":"string",
"timeslot_interval_duration":1,
"utc_offset":1,
"deleted":false,
"is_test":false
}
]
},
"ok":true
}
403 Контекст пользователя отсутствует или некорректен.
Модель
{...}

Ошибка API: код и причина.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}

Удаление складов

Возвращается список удаленных складов

Удаляет склады фирмы пользователя. Удаляет только неудалённые склады фирмы пользователя. Склад, площадки, брони и статусы пребывания помечаются удалёнными; расписания, контакты и связи площадок с типами груза очищаются. Принятые связи со Справочниками отзываются, прочие неподтверждённые связи помечаются удалёнными. Отправляются события и уведомления. HTTP 200 возможен при частичном или полном отказе: result['200'] содержит удалённые ID, result['400'] — отсутствующие, чужие или уже удалённые. ID обрабатываются последовательно без общей транзакции; при последующей ошибке прежние изменения сохраняются. Числовые строки допустимы и возвращаются строками.
delete /gw/timeslots/api/v1/warehouse
Параметры
Параметров нет
Запрос
Модель
{...}

Список удаляемых складов.

warehouse_ids*: [integer]

ID складов; допускаются числовые строки. Повторы обрабатываются последовательно.

}
Пример запроса
curl 'https://api.ati.su/gw/timeslots/api/v1/warehouse' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"warehouse_ids":[0]}'
Ответ
200
Модель
{...}

Успешный ответ.

ok: boolean

Признак успешного выполнения запроса.

}
Пример
{...}
"result":{...},
"200":[...],
null
],
"400":[...],
null
],
"500":[...]
null
]
},
"ok":true
}
400 Некорректный список или размер ID; предшествующие удаления могут сохраниться.
Модель
{...}

Ошибка запроса с подробностями по отдельным полям.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}
403 Контекст пользователя отсутствует или некорректен.
Модель
{...}

Ошибка API: код и причина.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}
500 Не удалось удалить склад; часть действий могла выполниться.
Модель
{...}

Ошибка API: код и причина.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}

Получение информации о складе

Получает склад по ID. Возвращает только собственный неудалённый склад. Для чужого, удалённого или отсутствующего склада — 404. Партнёрские склады доступны в GET /api/v1/warehouse, но не здесь. Название города зависит от Accept-Language; при en название и адрес склада транслитерируются.
get /gw/timeslots/api/v1/warehouse/{id}
Параметры
Параметр Тип Расположение Описание
id обязательный integer path
ID собственного склада из GET /api/v1/warehouse. Пример: 101
Запрос
Пример запроса
curl 'https://api.ati.su/gw/timeslots/api/v1/warehouse/{id}' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200
Модель
{...}

Успешный ответ.

ok: boolean

Признак успешного выполнения запроса.

}
Пример
{...}
"result":{...},
"warehouse":{...}
"schedule":[...],
{...}
"time_from":"08:00",
"time_to":"18:00",
"day_of_week":"1"
}
],
"contacts":[...],
{...}
"name":"string",
"phone":"string",
"country_phone_id":"string",
"warehouse":1
}
],
"name":"string",
"address":"string",
"owner":1,
"city_id":1,
"country_id":1,
"timezone":"string",
"city_verbose":"string",
"timeslot_interval_duration":1,
"utc_offset":1,
"deleted":false,
"is_test":false
}
},
"ok":true
}
403 Контекст пользователя отсутствует или некорректен.
Модель
{...}

Ошибка API: код и причина.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}
404 Склад не найден или не принадлежит фирме пользователя.
Модель
{...}

Ошибка API: код и причина.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}

Получение информации о загрузке склада

Получает загрузку площадок склада по дням. Склад должен быть неудалённым и принадлежать фирме пользователя либо иметь связь со Справочниками с этой фирмой. Иначе возвращается 404. Расчёт от сегодняшней даты склада до даты +14 дней включительно, с начала рабочего дня. Выходные добавляются только между рабочими днями; при отсутствии подходящих площадок или расписания — workload: []. Дни отсортированы по дате. Владелец видит занятость подтверждёнными бронями; для партнёра учитываются также ожидающие подтверждения. Счётчики относятся к интервалам площадок. У выходных нет счётчиков и loading_level. Это загрузка по дням, а не список конкретных свободных интервалов для создания брони.
get /gw/timeslots/api/v1/warehouse/workload/{warehouse_id}
Параметры
Параметр Тип Расположение Описание
loading_type обязательный string query
Тип загрузки. any — все типы; иной тип включает также универсальные площадки any. * `any` - any * `up` - up * `lateral` - lateral Пример: any
terminal_id integer (int64)[] query
ID площадок: повторяйте terminal_id в query. Без фильтра — все подходящие площадки; дубликаты объединяются, чужие и удалённые ID не учитываются. Пример: [101,205]
warehouse_id обязательный integer path
ID склада из GET /api/v1/warehouse. Пример: 101
Запрос
Пример запроса
curl 'https://api.ati.su/gw/timeslots/api/v1/warehouse/workload/{warehouse_id}' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200
Модель
{...}

Успешный ответ.

ok: boolean

Признак успешного выполнения запроса.

}
Пример
{...}
"result":{...},
"workload":[...]
{...}
"date":"2030-01-01",
"weekday":1,
"weekend":false,
"possible_slots_count":1,
"available_slots_count":1,
"loading_level":"low"
}
]
},
"ok":true
}
400 Не передан loading_type, некорректный тип загрузки или ID.
Модель
{...}

Ошибка запроса с подробностями по отдельным полям.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}
403 Контекст пользователя отсутствует или некорректен.
Модель
{...}

Ошибка API: код и причина.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}
404 Склад не найден или недоступен.
Модель
{...}

Ошибка API: код и причина.

error*: string

Машиночитаемый код ошибки.

reason*: string

Описание причины ошибки.

}
Пример
{...}
"error":"bad_request",
"reason":"warehouse_ids должен быть списком"
}