API заявок на транспорт позволяет получать заявки на доставку и возврат товаров по модели FBS, создавать и редактировать заявки dropoff, просматривать транспортный пропуск и отменять pickup-заявки — без ручной работы в Lamoda Seller. Шаг «Обрабатывайте заявки на вывоз» общего потока описан в статье «Продажа со своего склада (FBS)»; здесь — детали работы с заявками.
Эта статья описывает порядок работы с методами и ключевые бизнес-правила. Параметры, полный состав полей и примеры запросов и ответов смотрите в справочнике API на странице соответствующего метода.
Общие правила авторизации и формат ошибок описаны в статье «Начало работы и авторизация». Во всех запросах передавайте JWT в заголовке Authorization: Bearer <token>. Идентификатор sellerId должен соответствовать продавцу, доступному токену.
Как работать с заявками
Определите способ передачи товаров: PICKUP — забор со склада продавца, DROPOFF — самостоятельная доставка на базовый склад. Способ передачи товаров для доставки товаров на склад Lamoda и для забора возвратов может быть разный.
Заявки PICKUP создаются Lamoda автоматически, по настроенному расписанию продавца и при поступлении новых заказов/возвратов. Для заявок DROPOFF есть возможность создать за один раз две заявки — в одной привезти отгрузку, а во второй (связанной) забрать возвраты.
Просмотр заявок:
- Получите общий список заявок и сохраните
idнужной заявки. - Запросите заявку по
id, чтобы проверить статус, возможность редактирования и данные транспортного пропуска.
Создание и редактирование:
- Dropoff-заявки можно создавать через API. При необходимости можно редактировать практически все поля заявки. Основное содержимое заявки — это транспортный пропуск.
- Pickup-заявки нельзя создавать и редактировать через API, всю информацию по ним заполняет Lamoda. Если транспорт на определенный день не нужен, заявку можно отменить.
Методы для работы с заявками
GET /v2/fbs/transport-requests— единый список pickup- и dropoff-заявок с фильтрами, пагинацией и сортировкой.GET /v2/fbs/transport-requests/{requestId}— заявка и транспортный пропуск.POST /v2/fbs/dropoff-requests— создание заявки dropoff.POST /v2/fbs/dropoff-requests/{requestId}— редактирование заявки dropoff.GET /v2/fbs/pickup-requests— расширенный список pickup-заявок, включая информацию о назначенных курьерах Lamoda и статус возможности отмены.POST /v2/fbs/pickup-requests/{requestId}/status— отмена pickup-заявки.GET /v2/fbs/warehouses- получение списка складов продавца
Типы, способы передачи и статусы
Тип заявки
| Значение | Описание |
|---|---|
DELIVERY | Доставка товаров на склад Lamoda. |
RETURN | Возврат товаров продавцу. |
Метод доставки
| Значение | Описание |
|---|---|
PICKUP | Товары забирает транспорт Lamoda со склада продавца. |
DROPOFF | Продавец самостоятельно доставляет товары на базовый склад. |
Статус заявки
| Статус | Метод Доставки | Значение |
|---|---|---|
NEW | DROPOFF | Заявка создана, но обязательные данные для формирования ЭТрН заполнены не полностью. |
ACTIVE | PICKUP, DROPOFF | Заявка активна. Для dropoff обязательные данные для формирования ЭТрН заполнены. Для pickup назначен курьер. |
CANCELLED | PICKUP, DROPOFF | Заявка отменена. |
PAID_CANCELLED | PICKUP, DROPOFF | Заявка отменена в период платной отмены. |
RECOVERED | PICKUP, DROPOFF | Ранее отменённая заявка восстановлена. |
PAID_RECOVERED | PICKUP, DROPOFF | Заявка восстановлена в период платного восстановления. |
Порядок работы
1. Получение общего списка заявок
GET /v2/fbs/transport-requests возвращает pickup- и dropoff-заявки на доставку и возврат. Это основной метод для поиска заявки и восстановления её id.
| Параметр | Назначение |
|---|---|
sellerId | Обязательный идентификатор продавца. |
statuses | Фильтр по одному или нескольким статусам. |
shipmentIds | Фильтр по идентификаторам отгрузок. У заявок RETURN отгрузки отсутствуют. |
types | Фильтр по типам DELIVERY и RETURN. |
deliveryMethods | Фильтр по PICKUP и DROPOFF. |
dateFrom, dateTo | Период по плановой дате: начало включается, верхняя граница не включается. |
page, limit | Страница с 1 и размер страницы. По умолчанию: 1 и 100; максимум limit — 1000. |
sort | date — по возрастанию, -date — по убыванию. По умолчанию: -date. |
Массивы в query передаются повторением параметра, например:
GET /v2/fbs/transport-requests?sellerId=123&statuses=NEW&statuses=ACTIVE
&deliveryMethods=DROPOFF&sort=-date
В каждом элементе ответа приходят id, status, type, deliveryMethod и date. Поле shipmentIds присутствует только у заявок DELIVERY; у RETURN его нет. Данные пагинации находятся в meta.
2. Получение заявки по id
GET /v2/fbs/transport-requests/{requestId}?sellerId={sellerId} возвращает одну заявку и связанный транспортный пропуск.
Перед изменением заявки проверьте:
editability:EDITABLE— заявку можно редактировать,NOT_EDITABLE— нельзя;date— плановую дату заявки;arrivalAtиdepartureAt— время прибытия и отбытия на склад Lamoda; поля могут бытьnull;transportPass— сведения для транспортного пропуска и ЭТрН.
Транспортный пропуск может включать связанные заявки, документы, водителей, транспортное средство с прицепом, договоры на транспорт и компании, участвующие в перевозке.
3. Создание заявки dropoff
POST /v2/fbs/dropoff-requests создаёт заявку на самостоятельную доставку или возврат товаров.
Для создания всегда передавайте:
sellerId— идентификатор продавца;warehouseId— UUID склада, идентификатор склада берется из ответаGET /v2/fbs/warehouses, подходит склад в статусеCREATEDиisActive=true;date— плановую дату приезда в форматеYYYY-MM-DD;requestType—DELIVERYилиRETURN.
Для requestType=DELIVERY дополнительно обязателен непустой shipmentIds. Для RETURN список отгрузок не требуется.
Чтобы сразу заполнить транспортный пропуск, передайте сведения об участии стороннего перевозчика, подписании ЭТрН экспедитором, типе грузоотправителя, документах, водителях, транспортном средстве и компаниях. Полный набор зависит от схемы перевозки; детали обязательности проверяет сервис заявок.
| Поле | Допустимые значения или назначение |
|---|---|
thirdPartyCarrierInvolvement | NOT_INVOLVED, INVOLVED. |
etrnSignedByExpeditor | true/false, ЭТрН создаёт и подписывает экспедитор. |
shipperType | LAMODA, OWN, PERSON, CARRIER, EXPEDITOR. |
linkedRequestOption | NONE или WITH_RETURN — создать связанную заявку на возврат. |
documents | Типы: SELLER_EXPEDITOR_CONTRACT, SELLER_LAMODA_CONTRACT, EZZ. |
vehicle.ownershipType | OWNERSHIP, JOINT_OWNERSHIP, RENT, LEASING, LOAN_FOR_USE. |
companies[].type | CARRIER или EXPEDITOR. |
В успешном ответе возвращаются идентификатор id и состояние status. Если использованоlinkedRequestOption=WITH_RETURN и связанная возвратная заявка создана, ответ также содержит linkedReturnRequestId.
| ℹ️ Статус после создания. Если обязательные данные для формирования ЭТрН заполнены не полностью, заявка создаётся в состоянии NEW. Если данных достаточно — в ACTIVE. NEW не означает ошибку создания: дополните заявку методом редактирования. |
4. Редактирование заявки dropoff
POST /v2/fbs/dropoff-requests/{requestId} изменяет плановую дату и данные транспортного пропуска. В теле обязательны sellerId и date.
| ℹ️ Важно. Это не частичный PATCH. Запрос задаёт новое целевое состояние данных транспортного пропуска. |
- Не переданные необязательные поля считаются незаполненными.
- Не переданные
documents,couriers,companiesи явно переданные пустые массивы очищают соответствующие списки. - Не переданный
vehicleозначает отсутствие данных транспортного средства. etrnSignedByExpeditor: nullобрабатывается как незаполненное значение.linkedRequestAction=UNLINKотвязывает связанную возвратную заявку. Повторно связать эти же заявки через update нельзя.
Заявка в состоянии NEW останется NEW, если после обновления данных по-прежнему недостаточно для ЭТрН. Активную заявку нельзя сделать неполной: сервис вернёт ошибку валидации. В успешном ответе приходят id и новый status.
Перед обновлением получите карточку заявки, убедитесь, что editability=EDITABLE, и отправьте обратно все данные транспортного пропуска, которые должны сохраниться.
5. Получение расширенного списка pickup-заявок
GET /v2/fbs/pickup-requests полезен, когда нужны данные, специфичные для забора со склада: временной интервал прибытия, назначенные курьеры и возможность отмены.
Метод поддерживает фильтры dateFrom, dateTo, точную дату date, тип type, статусы statuses, пагинацию и сортировку по date или -date. Для этого метода обе границы периода dateFrom и dateTo включаются.
| cancellationAvailability | Что означает |
|---|---|
ALLOWED | Заявку можно отменить. |
PAID_ALLOWED | Отмена доступна на платной основе. |
FORBIDDEN_HAS_SHIPMENT | Отмена запрещена: к заявке привязана отгрузка. |
FORBIDDEN_DEPARTURE_SOON | Отмена запрещена: до убытия автомобиля остался один час или меньше. |
6. Отмена pickup-заявки
POST /v2/fbs/pickup-requests/{requestId}/status изменяет статус pickup-заявки. Сейчас поддерживается только целевой статус CANCELLED.
{"sellerId": "123", "status": "CANCELLED"}
При успешной отмене метод возвращает 200 OK без тела. Перед вызовом проверьте cancellationAvailability в расширенном списке pickup-заявок.
7. Получение списка складов продавца
GET /v2/fbs/warehouses возвращает список складов продавца с пагинацией. Для проверки прав доступа необходимо передать sellerId.
| Параметр | Назначение |
|---|---|
sellerId | Обязательный идентификатор продавца. |
page, limit | Номер страницы и размер страницы. По умолчанию: 1 и 100; максимум limit — 1000. |
Ошибки
Все методы используют общий формат ошибки: объект error с полями code, message и, при наличии, details[]. Исправляйте данные по полям details[].field и details[].issue.
| HTTP | code | Причина | Что делать |
|---|---|---|---|
| 400 | VALIDATION_FAILED | Неверный UUID, дата, sellerId, значение перечисления, обязательное поле или бизнес-ограничение. | Проверьте запрос и сведения в details[]. |
| 401 | UNAUTHORIZED | Токен отсутствует или недействителен. | Проверьте заголовок Authorization. |
| 403 | FORBIDDEN | sellerId недоступен переданному токену. | Укажите продавца, доступного токену. |
| 404 | NOT_FOUND | Заявка не найдена или недоступна продавцу. | Проверьте идентификатор заявки и sellerId. |
| 429 | TOO_MANY_REQUESTS | Превышена частота создания drop-off-заявок. | Повторите запрос позже с увеличивающейся задержкой. |
| 503 | SERVICE_UNAVAILABLE | Сервис временно недоступен. | Повторите запрос позже. |
Рекомендации
- Сохраняйте идентификаторы. После создания сохраните
idи, если он пришёл,linkedReturnRequestId. - Используйте единый список для синхронизации. Он возвращает заявки обоих способов передачи и подходит для регулярного обновления локального состояния.
- Перед update получайте карточку. Проверьте
editabilityи сформируйте полное целевое состояние транспортного пропуска, чтобы случайно не очистить данные. - Различайте границы дат. В едином списке
dateToне включается, а в расширенном pickup-списке включается. - Не ожидайте shipmentIds у возврата. Для заявок
RETURNполе отсутствует. - Обрабатывайте временные ошибки. Для
429и503используйте повторные запросы с увеличивающейся задержкой.
Смотри также
Помогла эта информация?
Спасибо за отзыв