Тема
Постоматы через платформу
Группа /api/v1/integrations/postomat даёт доступ к сети постоматов InLog с API-ключом платформы — без отдельного токена Postomat. Платформа передаёт запросы в сервис постоматов от имени учётной записи Postomat, привязанной к вашей компании, и возвращает его ответы.
- Все запросы требуют заголовок
x-api-token: YOUR_API_KEY. - Доступ к постоматам для компании подключает InLog — обратитесь к менеджеру.
- Форма объектов в ответах (постомат, заявка, код, город) совпадает с API постоматов — см. раздел InLog Postomat.
Постоматы
Список постоматов
GET /api/v1/integrations/postomat/list| Параметр | Тип | Обязательный | Ограничения | Описание |
|---|---|---|---|---|
page | integer | да | ≥ 1 | Страница |
pageSize | integer | да | 1–500 | Размер страницы |
ids | string[] | нет | — | Отбор по ID постоматов; повторяйте параметр |
cityId | string | нет | — | Город (ID из GET /api/v1/integrations/postomat/city) |
districtId | string | нет | — | Район |
withCity | boolean | нет | — | Добавить city |
withDistrict | boolean | нет | — | Добавить district |
latitude, longitude | number | нет | — | Сортировка по расстоянию до точки, поле distance в км |
bash
curl "https://api.inlog.ai/api/v1/integrations/postomat/list?page=1&pageSize=20&withCity=true" \
-H "x-api-token: YOUR_API_KEY"js
const url = new URL('https://api.inlog.ai/api/v1/integrations/postomat/list')
url.searchParams.set('page', '1')
url.searchParams.set('pageSize', '20')
url.searchParams.set('withCity', 'true')
const { total, data } = await (await fetch(url, { headers: { 'x-api-token': 'YOUR_API_KEY' } })).json()Ответ: { "total": number, "data": [Postomat] } — см. поля постомата.
Постомат по ID
GET /api/v1/integrations/postomat/{id}| Параметр | Где | Тип | Описание |
|---|---|---|---|
id | path | string | ID постомата |
withCity | query | boolean | Добавить city |
withCells | query | boolean | Добавить ячейки cells |
withBoards | query | boolean | Добавить блоки ячеек boards |
Города
GET /api/v1/integrations/postomat/city
GET /api/v1/integrations/postomat/city/{id}| Параметр | Эндпоинт | Тип | Обязательный | Описание |
|---|---|---|---|---|
page | список | integer, ≥ 1 | да | Страница |
pageSize | список | integer, 1–500 | да | Размер страницы |
withCountry | оба | boolean | нет | Добавить страну country |
id | по ID (path) | string | да | ID города |
Ответ списка — { "total": number, "data": [City] }.
Заявки
Создание заявки
POST /api/v1/integrations/postomat/order/create
Content-Type: application/jsonВременно недоступно
Сейчас создание заявки через этот эндпоинт завершается ошибкой 502. Пока это не исправлено, создавайте заявки напрямую через API постоматов или через API маркетплейса.
| Поле | Тип | Обязательное | Ограничения | Описание |
|---|---|---|---|---|
toUserPhone | string | да | не короче 5 символов | Телефон получателя, например +996700000000 |
postomatId | string | да | — | ID постомата |
weight | number | да | ≥ 0.001 | Вес |
days | integer | да | ≥ 1 | Срок хранения в днях |
customData | string | нет | — | Ваши данные, например внешний ID заказа |
pay | boolean | нет | — | Оплатить с баланса |
Заголовок Idempotency-Key, если он передан, пересылается в сервис постоматов. Дедупликации заявок по нему нет — см. Ошибки и ретраи Postomat.
Успешный ответ — 201 с объектом заявки.
Список и получение заявок
GET /api/v1/integrations/postomat/order/list
GET /api/v1/integrations/postomat/order/{id}| Параметр | Эндпоинт | Тип | Обязательный | Описание |
|---|---|---|---|---|
page | список | integer, ≥ 1 | да | Страница |
pageSize | список | integer, 1–500 | да | Размер страницы |
status | список | CREATED | DELIVERED | COMPLETED | SUBTRACTED | нет | Фильтр по текущему статусу |
id | по ID (path) | string | да | ID заявки |
withToUser, withCell, withPostomat, withCurrentStatus, withStatuses, withRent, withPasswords | оба | boolean | нет | Состав ответа — как в API постоматов |
bash
curl "https://api.inlog.ai/api/v1/integrations/postomat/order/list?page=1&pageSize=20&status=DELIVERED&withCurrentStatus=true" \
-H "x-api-token: YOUR_API_KEY"js
const url = new URL('https://api.inlog.ai/api/v1/integrations/postomat/order/list')
url.searchParams.set('page', '1')
url.searchParams.set('pageSize', '20')
url.searchParams.set('status', 'DELIVERED')
url.searchParams.set('withCurrentStatus', 'true')
const { total, data } = await (await fetch(url, { headers: { 'x-api-token': 'YOUR_API_KEY' } })).json()Коды заявки
| Эндпоинт | Код |
|---|---|
GET /api/v1/integrations/postomat/order/{id}/down-code | Код закладки — курьер закладывает посылку в ячейку |
GET /api/v1/integrations/postomat/order/{id}/up-code | Код получения — получатель забирает посылку |
GET /api/v1/integrations/postomat/order/{id}/subtract-code | Код изъятия |
Ответ — объект кода { id, type, password, orderId, createdAt, updatedAt }.
Ошибки
| HTTP | Тело | Когда |
|---|---|---|
400 | code: FST_ERR_VALIDATION | Не прошла валидация параметров платформой |
401, 403 | UNAUTHORIZED, TOKEN_NOT_VALID | Проблема с API-ключом, см. Авторизация |
502 | { "message": "..." } | Ошибка сервиса постоматов или доступ к постоматам не подключён. В message — текст или код ошибки сервиса постоматов, например ORDER_NOT_FOUND |
Все ошибки сервиса постоматов, включая «не найдено», возвращаются со статусом 502 — анализируйте поле message.