{
"error": "error_brand_already_exists",
"localMessage": "Бренд Base уже существует",
"params": {
"name": "Base"
}
}Публичный API · Справочник API
Экспорт
Выгрузка товаров, остатков, заказов и документов в файлы.
Выгрузка различных данных из SelSup.
/api/export
Модель данных
Структуры данных
Поля объектов, которые используются в запросах и ответах этого раздела.
TmsTask25 полей
idinteger · int64Идентификатор задачи
read-onlystatusstringТекущий статус задачи
read-onlytypestringТип задачи
read-onlynamestringДанные задачи в json - могут быть пустыми
clientIdinteger · int64Поле clientId.
entityIdinteger · int64Сущность, к которой относится задача
progressinteger · int32Прогресс выполнения задачи в процентах
processedQuantityinteger · int32Количество обработанных записей задачи
organizationIdinteger · int64Организация задачи, может быть 0, если не зависит от организации
priorityinteger · int32Приоритет задачи - чем выше тем быстрее задача запустится
propertiesstringПараметры задачи
messagestringСообщение с результатом выполнения задачи
messageParamsstringПараметры сообщения с результатом выполнения задачи
createdDatestring · date-timeДата добавления задачи в очередь
startDatestring · date-timeДата запуска задачи
finishDatestring · date-timeДата завершения задачи
urlstringСсылка на скачивание файла с результатом задачи
inputFileUrlstringСсылка на загруженный файл
retryNumberinteger · int32Счётчик перезапуска задачи.
userIdinteger · int32Пользователь запустивший задачу
retryDatestring · date-timeЗапланированная дата перезапуска
debugbooleanЗапуск задачи в режиме отладки с большим логированием
forcedStartbooleanРучной запуск задачи
servicestringСервис в рамках которого выполняется задача
langstringЯзык на котором сейчас запущена таска
MarkTransferRequest3 полей
markIdsinteger[]Поле markIds.
fromOrganizationIdinteger · int64Поле fromOrganizationId.
toOrganizationIdinteger · int64Поле toOrganizationId.
InvoiceFilePreview9 полей
servicestringСервис
documentNumberstringПоле documentNumber.
documentDatestring · dateПоле documentDate.
positionsinteger · int32Поле positions.
codesinteger · int32Поле codes.
quantityinteger · int32Поле quantity.
totalWithoutVatnumberПоле totalWithoutVat.
vatAmountnumberПоле vatAmount.
totalWithVatnumberПоле totalWithVat.
ProductFilter131 полей
limitinteger · int32Ограничение на количество записей. Максимальное значение - 500
pageinteger · int32Номер страницы начиная с 1
countbooleanВозвратить в ответе общее количество записей
sortBystringПоле для сортировки
ascendingbooleanПорядок сортировки - по возрастанию?. Работает только при получении списка.
querystringПоисковый запрос. Может содержать штрих-код, часть названия товара, внешние идентификаторы товаров Wildberries или Ozon
caseInsensitiveProductSearchbooleanНе учитывать регистр при поиске по внутренним артикулам и артикулам маркетплейсов
articlestringПоиск по названию артикула товара
colorstringПоиск по названию цвета товара
viewIdinteger · int64Поиск по идентификатору цвета
skuViewIdinteger · int64Поиск по SKU идентификатору цвета
modelIdinteger · int64Поиск по идентификатору модели
requirementCaseIdinteger · int64Кейс изменения требований к карточкам
requirementParamIdinteger · int64Параметр в кейсе изменения требований
requirementItemStatusstringСтатус исправления параметра в кейсе
requirementChangeTypestringТип изменения требования
requirementRepairMethodstringСпособ исправления требования
groupIdinteger · int64Фильтр по ID групповой карточки
groupIdsinteger[]Фильтр по ID групповых карточек. groupIds=1&groupIds=2
needToBuybooleanТовары, которые нужно показать в списке для заказа?
showProductsWithSufficientStockbooleanПоказывать товары с достаточным остатком в плане закупок?
planDaysinteger · int32Количество дней на которые планировать закупки. По умолчанию 30
daysToSupplyinteger · int32Через сколько дней ожидается поставка. По умолчанию 0
organizationsinteger[]Фильтр по ID организаций. Передается несколько значений organizations=1.organizations=2
needUpdatePricebooleanФильтр по необходимости обновить цену на Wildberries?
testCardbooleanТестовая карточки для создания?
hasImagesbooleanНаличие или отсутствие картинок у товара?
isDuplicatebooleanКарточка является дубликатом?
hasWildberriesIdbooleanНаличие карточки товара в Wildberries?
hasSupplyingQuantitybooleanНаличие поставляемого количества по модели FBM?
noWbImagesbooleanНаличие фото на Wildberries?
noOzonImagesbooleanНаличие фото на Ozon?
noYMImagesbooleanНаличие фото на Яндекс.Маркет?
deletedbooleanПоказать помеченные удаленными товары?
hasGroupbooleanНаличие групповой карточки у товара?
modelDeletedbooleanПоказать помеченные удаленными модели?
viewDeletedbooleanПоказать помеченные удаленными цвета?
inStockbooleanНаличие остатков товаров на маркетплейсе или складе?
noStockbooleanОтсутствие остатков товаров на маркетплейсе и складе?
inFbsStockbooleanНаличие остатков на складах в SelSup?
noFbsStockbooleanОтсутствие остатков на складах в SelSup?
inFboStockbooleanНаличие остатков на складах FBO?
noFboStockbooleanОтсутствие остатков на складах FBO?
hasStockInWarehouseinteger · int64ID склада на котором есть остатки в SelSup
hasQuantitybooleanПоле hasQuantity.
noStockInWarehouseinteger · int64ID склада на котором нет остатков в SelSup
groupedbooleanГруппировать товары по цветам?
uniqViewbooleanОтдавать только товары с уникальными цвета?
uniqViewSkubooleanОтдавать только товары с уникальными цвета без дубликатов по остаткам?
uniqModelbooleanОтдавать только товары с уникальными моделями?
uniqSkubooleanОтдавать только товары с уникальными SKU?
contractorsinteger[]Фильтр по ID поставщикам товара. Передается несколько параметров contractors=1&contractors=2
categoriesinteger[]Фильтр по ID категориям товара.Передается несколько параметров categories=1&categories=2
brandsinteger[]Фильтр по ID брендам товара
stockRefreshDatestring · date-timeПоле stockRefreshDate.
wildberriesRatinginteger[]Фильтр товаров по рейтингу отзывов Вайлдбериз
wildberriesCardDoesNotOpenbooleanФильтр товаров для не открывается карточка в Вайлдбериз: значит не создана карточка, либо не загружены картинки и пр?
productIdinteger · int64Поле productId.
productIdsinteger[]Фильтр по ID товаров. Можно передавать несколько значений productIds=1&productIds=2
sourceOrganizationIdsinteger[]Фильтр товаров, которые были импортрованы в другие организации
needImportWildberriesCardbooleanФильтр товаров для которых нужно обновить карточку в Вайлдбериз?
needImportOzonCardbooleanФильтр товаров для которых нужно обновить карточку в Ozon?
needImportAliexpressCardbooleanФильтр товаров для которых нужно обновить карточку в Aliexpress?
needUpdateFromSimalandbooleanФильтр товаров для которых нужно обновить стоки и цены в Simaland?
favouritebooleanФильтр по избранным товарам, которые клиент пометил избранными?
statusstringФильтр по статусу для WmsItem
modifiedAfterstring · date-timeФильтр по дате модификации для WmsItem
actualbooleanФильтр по показателю актуальности?
skuIdinteger · int64Фильтр по skuId - идентификатору остатка
skuIdsinteger[]Фильтр по skuIds
lastInventoryIdinteger · int32Фильтр по ID инвентаризации для WmsItem
strategyIdinteger · int64Фильтр по стратегии ценообразования
strategyIdsinteger[]Множественный фильтр по стратегии ценообразования
cellIdinteger · int32Фильтр по ID ячейке для WmsItem
itemIdinteger · int64Фильтр по ID остатка для WmsItem
warehouseIdinteger · int64Фильтр ID склада для WmsItem
avitoCategoryIdinteger · int64ID категории Авито
hasAvitoCategorybooleanПоле hasAvitoCategory.
servicesstring[]Список сервисов в которых не создана карточка. Например, services=WILDBERRIES&services=OZON
createdInstring[]Список сервисов в которых создана карточка. Например, createdIn=WILDBERRIES&createdIn=OZON
duplicatebooleanЯвляется ли карточка дубликатом?
orderServicestringПозволяет отфильтровать по маркетплейсу заказа, в закупках из заказов
productTypestringФильтр по типу товара, type=PRODUCT или type=SET
withCategoryAndBrandbooleanПризнак, что грузим категорию и бренд?
allServicesbooleanПризнак, что грузить данные по всем сервисам?
inWarehouseRegionsstring[]Подгружать ФБО остатки/продажи со складов входящих в список регионов
inWarehousesinteger[]Подгружать ФБО остатки/продажи со складов входящих в список
excludeStockWarehousesinteger[]ID складов SelSup, остатки которых не учитывать при планировании закупок
incomeOrderIdinteger · int64Фильтр товаров по ID заказа
incomeIdinteger · int64Фильтр товаров по ID заказа поставщика
itemIncomeOrderIdinteger · int64Фильтр остатков из приемки
dateFromstring · date-timeДата начала
dateTostring · date-timeДата окончания
plannedSupplyDatestring · date-timeПланируемая дата поставки
timeZoneinteger · int32Часовой пояс клиента по UTC
idsinteger[]Фильтр по ID товаров. Можно передавать несколько значений ids=1&ids=2
skipDayWithoutStocksbooleanПропускать дни без остатков?
countByOrdersbooleanДелать расчет по заказам, если true, и по продажам, если false?
requierPlannumber · doubleФильтр по Рекомендации к поставке
forPricesbooleanОтдавать в ответе данные для таблицы цен?
deliveryDatestringФильтр по дате доставки заказа
onlyEmptyParchasePricebooleanВыгружать товары только с пустыми закупочными ценами?
onlyEmptyDeliveryCostPricebooleanВыгружать товары только с пустыми дополнительными расходами?
forFboSupplyPlanbooleanПоказывает для чего идет расчет планирования для фбо или поставок?
ignoreParamsbooleanПризнак для выгрузки карточек без параметров?
ungroupWarehousesbooleanЕсли true - не группировать по складам, то есть вывести список продуктов отдельный для каждого склада. Используется в планировании поставок
replaceSetsByComponentsbooleanПризнак раскрывать ли комплекты?
distributeFbsByWarehousebooleanРаспределять FBS по складам пропорционально FBO
distributeFbsStockbooleanРаспределять остатки FBS между маркетплейсами/складами
ignoreDumpingbooleanИгнорировать слив товара (продажи по заниженной цене)
distributeAllRecommendationsbooleanРаспределять все рекомендации из не попавших в поиск складов
limitByFbsStocksbooleanОграничивать суммарный план поставки текущим остатком FBS
useSalesPlanbooleanСчитать дефицит по плану продаж из отчета План/Факт продаж, а не по фактическим продажам/заказам
packagingTypestringТип упаковки для фильтрации доступных складов WB
notGroupComponentsbooleanПризнак не группировать компоненты?
modelArticlestringФильтр по артикулу модели
serviceArticlestringФильтр по артикулу товара на внешнем сервисе
serviceArticleServicestringСервис для фильтрации или сортировки по артикулу товара
ozonArticlestringФильтр по артикулу Ozon
yandexMarketShopSkustringФильтр по артикулу Яндекс.Маркет
sberArticlestringПоле sberArticle.
wbArticlestringПоле wbArticle.
barcodestringФильтр по штрих-коду
namestringФильтр по названию товара
reportSheetsstringПоле reportSheets.
forSupplyPlanbooleanПоле forSupplyPlan.
tagIdsinteger[]Фильтр по ID тегов. Только товары, привязанные к этим тегам
findirTipTypesstring[]Фильтр по типу рекомендаций AI Финдир
removeFbsStockbooleanФлаг отключения передачи FBS остатков для организаций и сервисов
brandIdinteger · int64Поле brandId.
countByOrdersOrSalesbooleanПоле countByOrdersOrSales.
OrderFilter98 полей
countbooleanВозвратить в ответе общее количество записей
sortBystringПоле для сортировки
ascendingbooleanПорядок сортировки - по возрастанию?. Работает только при получении списка.
columnsOrderFilterНастройки столбцов для экспорта отчета по заказам
actualbooleanОтображать только актуальные заказы - не закрытые?
typestringТип заказа
otherShipmentsbooleanПоле otherShipments.
shipmentMethodstringПоле shipmentMethod.
shipmentPhasestringПоле shipmentPhase.
serviceWarehouseIdstringВнешний номер склада
externalOrderIdstringВнешний номер заказа
invoiceNumberinteger · int64ID Номера счета
articlestringФильтр по артикулу модели товара в заказе
containsArticlestringПоле containsArticle.
productstringФильтр по названию товара в заказе
barcodestringФильтр по точному штрихкоду товара в заказе
organizationsinteger[]Фильтр по ID организации. Можно передавать несколько значений organizations=123&organizations=345
querystringПоисковый запрос для фильтрации заказов по номеру, названию или QR/штрихкоду стикера
userIdinteger · int32ID пользователя который брал на сборку заказ
closeUserIdinteger · int32ID пользователя, указанного в столбце Сборщик
servicestringФильтр заказа по маркетплейсу
servicesstring[]Список маркетплейсов для которых отдать данные
statusstringФильтр по статусу заказа
statusesstring[]Фильтр по статусам заказа. Можно передавать несколько значений statuses=CREATED&statuses=PACKING
withoutSupplybooleanФильтр по заказам не прикрепленным к поставке?
orderProductIdinteger · int64Фильтр по ID позиции в заказе
productIdinteger · int64Фильтр по ID товара из заказа
brandIdinteger · int32Фильтр по ID бренда товара из заказа
supplierIdinteger · int64Фильтр по поставщику
hasCollectTaskbooleanФильтр по наличию у заказа сборочного задания?
organizationIdinteger · int64Фильтр по ID организации заказа
clientOrganizationIdsinteger[]Идентификаторы организаций клиента
fulfillmentClientIdinteger · int64Клиент фулфилмента, которому принадлежат заказы (для кабинета фулфилмента)
updateInServicebooleanЗаказы, которые стоят в очереди на изменение статуса на маркетплейсе?
hasServiceErrorbooleanЗаказы с ошибкой обновления статуса на маркетплейсе?
noLabelbooleanФильтрует заказы без этикетки?
isLegalbooleanФильтрует заказы для бизнеса
noMsOrderbooleanФильтрует по заказам не созданным в Моем складе?
noMsDemandbooleanФильтрует по заказам с несозданными отгрузками в Моем складе?
idsinteger[]ID заказов. Можно передавать несколько значений ids=123&ids=345
supplyIdinteger · int64ID поставки, в которой отгружается заказ
notCollectedbooleanЗаказы, которые не собирались через SelSup?
dbsbooleanDBS заказы?
expressbooleanExpress заказы?
fbsbooleanFBS заказы?
noWarehousebooleanЗаказы без склада?
closeDatestringФильтр по дате сборки заказа - конкретный день
checkedbooleanЗаказ проверен сканированием: true — проверен, false — не проверен
modifiedDatestring · date-timeФильтр по дате изменения заказа - статуса или любой информации о заказе начиная с этой даты
modifiedDateTostring · date-timeФильтр по дате изменения заказа - статуса или любой информации о заказе до этой даты
incomeIdinteger · int64ID закупки из которого создан заказ
bindingOrderIdinteger · int64ID заказа, которому делаем возврат
closeDateFromstring · date-timeФильтр по дате сборки заказа от - ISO
closeDateTostring · date-timeФильтр по дате сборки заказа до - ISO
deliveryTransferDateFromstring · date-timeПоле deliveryTransferDateFrom.
deliveryTransferDateTostring · date-timeПоле deliveryTransferDateTo.
orderDatestringФильтр по дате заказа
deliveryDatestringФильтр по дате доставки заказа
deliveryDateFromstringФильтр по дате доставки заказа от
deliveryDateTostringФильтр по дате доставки заказа до
createdDateFromstringФильтр по дате создания заказа от
createdDateTostringФильтр по дате создания заказа до
forMoySkladbooleanДля создания в МойСклад?
withMoySkladOrderbooleanТолько заказы, у которых уже есть заказ в МойСклад (moy_sklad_id задан)
warehouseIdinteger · int64Фильтр по ID склада, с которого отгружается заказ
categoryIdinteger · int32Фильтр по ID категории SelSup товара в заказе
warehouseIdsinteger[]Фильтр по ID складам, с которого отгружается заказ. Можно передавать несколько значений warehouseIds=123&warehouseIds=345
stockWarehouseIdinteger · int64Фильтр по ID склада фулфилмента, на котором находится заказ (для кабинета фулфилмента)
dateFromstring · date-timeФильтр по дате заказа - от
dateTostring · date-timeФильтр по дате заказа - до
timeZoneinteger · int32ID часового пояса клиента по UTC в часах, например 3
markingStatusstringФильтр по статусу в честном знаке
deletedbooleanПоказать удаленные заказы?
collectLabelbooleanТолько для печати в PDF. Признак необходимости распечатать сборочную этикетку для "умной ленты"?
sortOrdersByDatebooleanТолько для печати в PDF. Признак необходимости распечатать сборочную этикетку для "умной ленты"?
sortBySkubooleanТолько для печати в PDF. Признак необходимости использовать в сортировке данные о товарах объединенных по SKU?
notGroupByOrganizationbooleanТолько для печати в PDF. Признак того, что все организации сортируются одним списком?
notGroupByServicebooleanТолько для печати в PDF. Признак того, что все маркетплейсы сортируются одним списком?
targetCountinteger · int32Только для печати (лист сборки, лента заказов). Сколько первых заказов по фильтру напечатать. Не зависит от пагинации списка (limit/page). Если не указано, печатаются все заказы по фильтру в пределах общего ограничения
productLabelbooleanТолько для печати в PDF. Признак необходимости распечатать этикетку товара в ленте?
productCodeLabelbooleanТолько для печати в PDF. Признак необходимости распечатать этикетку кода маркировки в ленте?
servicesForLabelstring[]Сервисы для которых нужна печать в PDF
infoLabelbooleanТолько для печати в PDF. Признак необходимости распечатать информационную этикетку для ленты заказов?
groupedbooleanОтдает сгруппированные позиции из заказов. Только для выгрузки в Excel?
replaceSetByComponentbooleanЗаменяет в заказах комплекты на компоненты?
replaceSetsByComponentsIncomebooleanЗаменяет в заказах комплекты на компоненты в файле закупки?
collectDeliveryLabelbooleanТолько для печати в PDF. Признак необходимости распечатать накладную службы доставки для "умной ленты"?
shippingServicesForLabelstring[]Сервисы доставки для которых нужна печать накладной в PDF
orderIdinteger · int64ID заказа
hasVideoFixationbooleanИдентификатор была ли видео фиксация?
withProductsbooleanПризнак, что заказы необходимо отдать c товарами?
passageIdsinteger[]Фильтр по ID проходов. Можно передавать несколько значений passageIds=123&passageIds=345
withContractorbooleanВключить информацию о поставщиках в выгрузку?
boxIdinteger · int64Идентификатор короба
sortTypestringФильтр по типу сортировки отправления Ozon FBS (сортируемое/несортируемое)
hasMarkedProductsbooleanФильтр по заказам, в которых есть товары, подлежащие маркировке
hasMissingMarkingCodesbooleanФильтр по заказам, в которых не все обязательные коды маркировки привязаны
withAnalyticsbooleanЗагружать данные аналитики (commission, logistics, totalSellingExpenses, grossProfit) из profit_report? Без флага (по умолчанию false) эти поля не возвращаются в ответе. Замедляет запрос
FileExportColumn5 полей
idinteger · int64ID записи
fileExportIdinteger · int64ID конфигурации экспорта
columnNamestringНазвание столбца
columnOrderinteger · int32Порядок столбца в файле
isEnabledbooleanВключен ли столбец для экспорта
Ошибки
Обработка ошибок
При ошибке API возвращает её код в поле error и сообщение на языке пользователя в localMessage. Проверяйте код error в программе, а localMessage показывайте пользователю.
errorКод ошибки для обработки в программе.
localMessageСообщение на языке пользователя, которому принадлежит токен.
paramsЗначения, которые сервер подставил в сообщение об ошибке.
Язык localMessage определяется полем lang пользователя, которому принадлежит API-токен. Язык страницы документации и заголовок Accept-Language его не переключают; если язык пользователя не указан, используется русский.
{
"error": "error_brand_already_exists",
"localMessage": "Brand Base already exists",
"params": {
"name": "Base"
}
}Методы
Методы
Загрузка фотографий на Вайлдбериз
/api/export/uploadImagesToWildberriesЗапускает задачу по загрузке изображений на Вайлдбериз
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
photographyId |
integer · int64 | Да | Поле photographyId. |
override |
boolean | Нет | Поле override. |
useLinks |
boolean | Нет | Поле useLinks. |
curl --request POST 'https://api.selsup.ru/api/export/uploadImagesToWildberries?photographyId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/uploadImagesToWildberries?photographyId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/uploadImagesToWildberries?photographyId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/uploadImagesToWildberries?photographyId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/uploadImagesToWildberries?photographyId=1001',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/uploadImagesToWildberries?photographyId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/uploadImagesToWildberries?photographyId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки15
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_images_uploadПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_images_upload; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_imagesПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_images; localMessage содержит приведённый выше перевод.
error_no_wildberries_idПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_wildberries_id; localMessage содержит приведённый выше перевод.
error_not_found_viewПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_not_found_view; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_remote_errorПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_remote_error; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_token_expired_or_revokedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_token_expired_or_revoked; localMessage содержит приведённый выше перевод.
error_wb_card_limitПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wb_card_limit; localMessage содержит приведённый выше перевод.
error_wb_internal_errorПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wb_internal_error; localMessage содержит приведённый выше перевод.
Excel с остатками товаров
/api/export/stocksFileВозвращает файл с оригинальными остатками товаров
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
warehouseId |
integer · int64 | Нет | Идентификатор склада |
byCell |
boolean | Нет | Выгружать остатки по ячейкам хранения? |
byExpirationDate |
boolean | Нет | Выгружать вместе со сроком годности? |
byProductionDate |
boolean | Нет | Выгружать с датой производства? |
byGtd |
boolean | Нет | Выгружать с номером ГТД? |
curl --request POST 'https://api.selsup.ru/api/export/stocksFile' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/stocksFile', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/stocksFile', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/stocksFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/stocksFile',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/stocksFile", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/stocksFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
файл для загрузки в ЭДО (УПД по НДС для WB по отчету о выкупах)
/api/export/invoice/wb/nds-updПринимает xlsx отчет WB о выкупах, формирует УПД и возвращает файл
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
clientOrganizationId |
integer · int64 | Да | Поле clientOrganizationId. |
Тело запроса
multipart/form-data| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
file |
string · binary | Да | Поле file. |
curl --request POST 'https://api.selsup.ru/api/export/invoice/wb/nds-upd?clientOrganizationId=1001' \
--header 'Authorization: YOUR_API_TOKEN' \
--form 'file=@./file.bin'
const form = new FormData();
form.append('file', fileInput.files[0]);
const response = await fetch('https://api.selsup.ru/api/export/invoice/wb/nds-upd?clientOrganizationId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
body: form,
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const form: FormData = new FormData();
form.append('file', fileInput.files![0]);
const response: Response = await fetch('https://api.selsup.ru/api/export/invoice/wb/nds-upd?clientOrganizationId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
body: form,
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/invoice/wb/nds-upd?clientOrganizationId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
files={'file': open('./logo.png', 'rb')},
)
response.raise_for_status()
result = response.json()
<?php
$payload = ['file' => new CURLFile('./logo.png')];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/invoice/wb/nds-upd?clientOrganizationId=1001',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
"path/filepath"
)
func main() {
var body bytes.Buffer
writer := multipart.NewWriter(&body)
file, err := os.Open("./logo.png")
if err != nil { panic(err) }
defer file.Close()
part, err := writer.CreateFormFile("file", filepath.Base(file.Name()))
if err != nil { panic(err) }
if _, err = io.Copy(part, file); err != nil { panic(err) }
writer.Close()
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/invoice/wb/nds-upd?clientOrganizationId=1001", &body)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", writer.FormDataContentType())
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
public class SelSupExample {
public static void main(String[] args) throws Exception {
String boundary = "SelSupBoundary" + System.currentTimeMillis();
byte[] file = Files.readAllBytes(Path.of("./logo.png"));
byte[] head = ("--" + boundary + "\r\n" +
"Content-Disposition: form-data; name=\"file\"; filename=\"logo.png\"\r\n" +
"Content-Type: image/png\r\n\r\n").getBytes(StandardCharsets.UTF_8);
byte[] tail = ("\r\n--" + boundary + "--\r\n").getBytes(StandardCharsets.UTF_8);
byte[] payload = new byte[head.length + file.length + tail.length];
System.arraycopy(head, 0, payload, 0, head.length);
System.arraycopy(file, 0, payload, head.length, file.length);
System.arraycopy(tail, 0, payload, head.length + file.length, tail.length);
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/invoice/wb/nds-upd?clientOrganizationId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "multipart/form-data; boundary=" + boundary)
.method("POST", HttpRequest.BodyPublishers.ofByteArray(payload))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки26
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_open_fileПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_open_file; localMessage содержит приведённый выше перевод.
error_column_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_column_not_found; localMessage содержит приведённый выше перевод.
error_contractor_organization_not_linkedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_contractor_organization_not_linked; localMessage содержит приведённый выше перевод.
error_empty_bill_priceПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_bill_price; localMessage содержит приведённый выше перевод.
error_empty_customer_nameПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_customer_name; localMessage содержит приведённый выше перевод.
error_empty_external_order_idПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_external_order_id; localMessage содержит приведённый выше перевод.
error_empty_product_codesПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_product_codes; localMessage содержит приведённый выше перевод.
error_empty_productsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_products; localMessage содержит приведённый выше перевод.
error_empty_taxRateПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_taxRate; localMessage содержит приведённый выше перевод.
error_income_empty_priceПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_income_empty_price; localMessage содержит приведённый выше перевод.
error_incorrect_dateПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_incorrect_date; localMessage содержит приведённый выше перевод.
error_incorrect_excelПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_incorrect_excel; localMessage содержит приведённый выше перевод.
error_incorrect_serviceПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_incorrect_service; localMessage содержит приведённый выше перевод.
error_max_upload_size_exceededПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_max_upload_size_exceeded; localMessage содержит приведённый выше перевод.
error_no_barcodeПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_barcode; localMessage содержит приведённый выше перевод.
error_no_invoice_numberПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_invoice_number; localMessage содержит приведённый выше перевод.
error_no_invoice_organizationПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_invoice_organization; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_unsupported_file_typeПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_unsupported_file_type; localMessage содержит приведённый выше перевод.
error_unsupported_markПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_unsupported_mark; localMessage содержит приведённый выше перевод.
error_user_does_not_have_this_organizationПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_user_does_not_have_this_organization; localMessage содержит приведённый выше перевод.
error_wrong_quantityПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wrong_quantity; localMessage содержит приведённый выше перевод.
Файл ЭДО для передачи кодов маркировки
/api/export/invoice/transferВыгружает ЭДО для передачи кодов маркировки между организациями клиента
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
format |
string | Нет | Поле format. |
Тело запроса
application/jsonПоля объектаMarkTransferRequest
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
markIds |
integer[] | Нет | Поле markIds. |
fromOrganizationId |
integer · int64 | Нет | Поле fromOrganizationId. |
toOrganizationId |
integer · int64 | Нет | Поле toOrganizationId. |
curl --request POST 'https://api.selsup.ru/api/export/invoice/transfer' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"markIds": "string",
"fromOrganizationId": 1001,
"toOrganizationId": 1001
}'
const response = await fetch('https://api.selsup.ru/api/export/invoice/transfer', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"markIds": "string",
"fromOrganizationId": 1001,
"toOrganizationId": 1001
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/invoice/transfer', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"markIds": "string",
"fromOrganizationId": 1001,
"toOrganizationId": 1001
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/invoice/transfer',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'markIds': 'string',
'fromOrganizationId': 1001,
'toOrganizationId': 1001
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"markIds": "string",
"fromOrganizationId": 1001,
"toOrganizationId": 1001
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/invoice/transfer',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/invoice/transfer", strings.NewReader(`{
"markIds": "string",
"fromOrganizationId": 1001,
"toOrganizationId": 1001
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/invoice/transfer"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"markIds": "string",
"fromOrganizationId": 1001,
"toOrganizationId": 1001
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Формирование УПД из файла
/api/export/invoice/from-fileФормирует универсальный УПД из файла маркетплейса
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
clientOrganizationId |
integer · int64 | Да | Поле clientOrganizationId. |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Да | Сервис |
documentNumber |
string | Нет | Поле documentNumber. |
Тело запроса
multipart/form-data| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
file |
string · binary | Да | Поле file. |
curl --request POST 'https://api.selsup.ru/api/export/invoice/from-file?clientOrganizationId=1001&service=NONE' \
--header 'Authorization: YOUR_API_TOKEN' \
--form 'file=@./file.bin'
const form = new FormData();
form.append('file', fileInput.files[0]);
const response = await fetch('https://api.selsup.ru/api/export/invoice/from-file?clientOrganizationId=1001&service=NONE', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
body: form,
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const form: FormData = new FormData();
form.append('file', fileInput.files![0]);
const response: Response = await fetch('https://api.selsup.ru/api/export/invoice/from-file?clientOrganizationId=1001&service=NONE', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
body: form,
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/invoice/from-file?clientOrganizationId=1001&service=NONE',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
files={'file': open('./logo.png', 'rb')},
)
response.raise_for_status()
result = response.json()
<?php
$payload = ['file' => new CURLFile('./logo.png')];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/invoice/from-file?clientOrganizationId=1001&service=NONE',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
"path/filepath"
)
func main() {
var body bytes.Buffer
writer := multipart.NewWriter(&body)
file, err := os.Open("./logo.png")
if err != nil { panic(err) }
defer file.Close()
part, err := writer.CreateFormFile("file", filepath.Base(file.Name()))
if err != nil { panic(err) }
if _, err = io.Copy(part, file); err != nil { panic(err) }
writer.Close()
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/invoice/from-file?clientOrganizationId=1001&service=NONE", &body)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", writer.FormDataContentType())
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
public class SelSupExample {
public static void main(String[] args) throws Exception {
String boundary = "SelSupBoundary" + System.currentTimeMillis();
byte[] file = Files.readAllBytes(Path.of("./logo.png"));
byte[] head = ("--" + boundary + "\r\n" +
"Content-Disposition: form-data; name=\"file\"; filename=\"logo.png\"\r\n" +
"Content-Type: image/png\r\n\r\n").getBytes(StandardCharsets.UTF_8);
byte[] tail = ("\r\n--" + boundary + "--\r\n").getBytes(StandardCharsets.UTF_8);
byte[] payload = new byte[head.length + file.length + tail.length];
System.arraycopy(head, 0, payload, 0, head.length);
System.arraycopy(file, 0, payload, head.length, file.length);
System.arraycopy(tail, 0, payload, head.length + file.length, tail.length);
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/invoice/from-file?clientOrganizationId=1001&service=NONE"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "multipart/form-data; boundary=" + boundary)
.method("POST", HttpRequest.BodyPublishers.ofByteArray(payload))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки4
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_max_upload_size_exceededПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_max_upload_size_exceeded; localMessage содержит приведённый выше перевод.
Предпросмотр УПД из файла
/api/export/invoice/from-file/previewПроверяет файл маркетплейса и возвращает рассчитанные итоги УПД
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
clientOrganizationId |
integer · int64 | Да | Поле clientOrganizationId. |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Да | Сервис |
Тело запроса
multipart/form-data| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
file |
string · binary | Да | Поле file. |
curl --request POST 'https://api.selsup.ru/api/export/invoice/from-file/preview?clientOrganizationId=1001&service=NONE' \
--header 'Authorization: YOUR_API_TOKEN' \
--form 'file=@./file.bin'
const form = new FormData();
form.append('file', fileInput.files[0]);
const response = await fetch('https://api.selsup.ru/api/export/invoice/from-file/preview?clientOrganizationId=1001&service=NONE', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
body: form,
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const form: FormData = new FormData();
form.append('file', fileInput.files![0]);
const response: Response = await fetch('https://api.selsup.ru/api/export/invoice/from-file/preview?clientOrganizationId=1001&service=NONE', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
body: form,
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/invoice/from-file/preview?clientOrganizationId=1001&service=NONE',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
files={'file': open('./logo.png', 'rb')},
)
response.raise_for_status()
result = response.json()
<?php
$payload = ['file' => new CURLFile('./logo.png')];
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/invoice/from-file/preview?clientOrganizationId=1001&service=NONE',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"bytes"
"fmt"
"io"
"mime/multipart"
"net/http"
"os"
"path/filepath"
)
func main() {
var body bytes.Buffer
writer := multipart.NewWriter(&body)
file, err := os.Open("./logo.png")
if err != nil { panic(err) }
defer file.Close()
part, err := writer.CreateFormFile("file", filepath.Base(file.Name()))
if err != nil { panic(err) }
if _, err = io.Copy(part, file); err != nil { panic(err) }
writer.Close()
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/invoice/from-file/preview?clientOrganizationId=1001&service=NONE", &body)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", writer.FormDataContentType())
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
public class SelSupExample {
public static void main(String[] args) throws Exception {
String boundary = "SelSupBoundary" + System.currentTimeMillis();
byte[] file = Files.readAllBytes(Path.of("./logo.png"));
byte[] head = ("--" + boundary + "\r\n" +
"Content-Disposition: form-data; name=\"file\"; filename=\"logo.png\"\r\n" +
"Content-Type: image/png\r\n\r\n").getBytes(StandardCharsets.UTF_8);
byte[] tail = ("\r\n--" + boundary + "--\r\n").getBytes(StandardCharsets.UTF_8);
byte[] payload = new byte[head.length + file.length + tail.length];
System.arraycopy(head, 0, payload, 0, head.length);
System.arraycopy(file, 0, payload, head.length, file.length);
System.arraycopy(tail, 0, payload, head.length + file.length, tail.length);
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/invoice/from-file/preview?clientOrganizationId=1001&service=NONE"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "multipart/form-data; boundary=" + boundary)
.method("POST", HttpRequest.BodyPublishers.ofByteArray(payload))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
InvoiceFilePreview
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис |
documentNumber |
string | Нет | Поле documentNumber. |
documentDate |
string · date | Нет | Поле documentDate. |
positions |
integer · int32 | Нет | Поле positions. |
codes |
integer · int32 | Нет | Поле codes. |
quantity |
integer · int32 | Нет | Поле quantity. |
totalWithoutVat |
number | Нет | Поле totalWithoutVat. |
vatAmount |
number | Нет | Поле vatAmount. |
totalWithVat |
number | Нет | Поле totalWithVat. |
{
"service": "NONE",
"documentNumber": "string",
"documentDate": "2026-01-15",
"positions": 1,
"codes": 1,
"quantity": 1
}Ошибки20
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_open_fileПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_open_file; localMessage содержит приведённый выше перевод.
error_column_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_column_not_found; localMessage содержит приведённый выше перевод.
error_empty_bill_priceПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_bill_price; localMessage содержит приведённый выше перевод.
error_empty_product_codesПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_product_codes; localMessage содержит приведённый выше перевод.
error_empty_productsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_products; localMessage содержит приведённый выше перевод.
error_empty_taxRateПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_taxRate; localMessage содержит приведённый выше перевод.
error_incorrect_dateПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_incorrect_date; localMessage содержит приведённый выше перевод.
error_incorrect_excelПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_incorrect_excel; localMessage содержит приведённый выше перевод.
error_incorrect_serviceПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_incorrect_service; localMessage содержит приведённый выше перевод.
error_max_upload_size_exceededПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_max_upload_size_exceeded; localMessage содержит приведённый выше перевод.
error_no_barcodeПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_barcode; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_invoice_numberПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_invoice_number; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_unsupported_file_typeПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_unsupported_file_type; localMessage содержит приведённый выше перевод.
error_user_does_not_have_this_organizationПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_user_does_not_have_this_organization; localMessage содержит приведённый выше перевод.
error_wrong_quantityПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_wrong_quantity; localMessage содержит приведённый выше перевод.
Экспорт товаров для Wildberries в Excel
/api/export/getWildberriesFileВозвращает Excel файл со списком товаров
Тело запроса
application/jsonПоля объектаProductFilter
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
limit |
integer · int32 | Нет | Ограничение на количество записей. Максимальное значение - 500 |
page |
integer · int32 | Нет | Номер страницы начиная с 1 |
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
stringACTUAL, ID, PRODUCTID, NAME, BARCODE, FAVOURITE, INSTOCKQUANTITY, FBSQUANTITY, CALCULATEDINSTOCKQUANTITY, STOCK, OZONSTOCKCOUNT, OZONSUPPLYINGQUANTITY, OZONORDERQUANTITY, OZONFBSORDERSQUANTITY, OZONSTOCKBETWEENWAREHOUSES, OZONUPDATEDPRICE, LASTWILDBERRIESORDERDATE, WILDBERRIESSTOCKCOUNT, WILDBERRIESSUPPLYINGQUANTITY, WILDBERRIESFBSORDERSQUANTITY, WILDBERRIESORDERQUANTITY, WILDBERRIESPROFIT, WILDBERRIESPRICE, WILDBERRIESUPDATEDPRICE, PRICE, PRICEWITHOUTDISCOUNT, AVERAGECOMPETITORPRICE, PURCHASEPRICE, PURCHASECURRENCY, MANUFACTURER, REALSIZE, CATEGORY, VENDORSIZE, DELIVERYCOST, WILDBERRIESSALEQUANTITY, WILDBERRIESQUANTITYINWAY, OZONPRICE, OZONPROFIT, LASTOZONORDERDATE, ARTICLE, COLOR, SIZE, CREATEDUSER, ORGANIZATIONID, BRAND, CREATEDDATE, LASTSTOCKCHANGE, STATUS, CELL, ITEMID, ORDERID, PUTUSERID, PUTDATE, TAKEUSERID, TAKEDATE, INCOMEORDER, NUMBER, TOTALQUANTITY, SUPPLYORDERPRODUCTID, TOTALORDERS, UPDATEDPRICE, QUANTITY, ALIEXPRESSPRICE, YANDEXMARKETPRICE, SKU, SERVICEARTICLE, OZONARTICLE, WBARTICLE, YANDEXMARKETSHOPSKU, YANDEXMARKETSTOCKCOUNT, ALIEXPRESSSKU, SBERARTICLE, ONECARTICLE, ADD, ORDERMINDATE, INCOMEQUANTITY, SBERMEGAMARKETSUPPLYINGQUANTITY, YANDEXMARKETSUPPLYINGQUANTITY, TOTALSUPPLYINGQUANTITY, TOTALFBSORDERSCOUNT, STOCKCOUNTUNITED, FBOSTOCKCOUNT, RECOMENDSALESPLAN, WBTOTALSALESCOUNT, OZONTOTALSALESCOUNT, SBERTOTALSALESCOUNT, YANDEXTOTALSALESCOUNT, EXTERNALARTICLE, FBOSALES, IMAGESUPDATEDAT | Нет | Поле для сортировки |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
query |
string | Нет | Поисковый запрос. Может содержать штрих-код, часть названия товара, внешние идентификаторы товаров Wildberries или Ozon |
caseInsensitiveProductSearch |
boolean | Нет | Не учитывать регистр при поиске по внутренним артикулам и артикулам маркетплейсов |
article |
string | Нет | Поиск по названию артикула товара |
color |
string | Нет | Поиск по названию цвета товара |
viewId |
integer · int64 | Нет | Поиск по идентификатору цвета |
skuViewId |
integer · int64 | Нет | Поиск по SKU идентификатору цвета |
modelId |
integer · int64 | Нет | Поиск по идентификатору модели |
requirementCaseId |
integer · int64 | Нет | Кейс изменения требований к карточкам |
requirementParamId |
integer · int64 | Нет | Параметр в кейсе изменения требований |
requirementItemStatus |
string | Нет | Статус исправления параметра в кейсе |
requirementChangeType |
string | Нет | Тип изменения требования |
requirementRepairMethod |
string | Нет | Способ исправления требования |
groupId |
integer · int64 | Нет | Фильтр по ID групповой карточки |
groupIds |
integer[] | Нет | Фильтр по ID групповых карточек. groupIds=1&groupIds=2 |
needToBuy |
boolean | Нет | Товары, которые нужно показать в списке для заказа? |
showProductsWithSufficientStock |
boolean | Нет | Показывать товары с достаточным остатком в плане закупок? |
planDays |
integer · int32 | Нет | Количество дней на которые планировать закупки. По умолчанию 30 |
daysToSupply |
integer · int32 | Нет | Через сколько дней ожидается поставка. По умолчанию 0 |
organizations |
integer[] | Нет | Фильтр по ID организаций. Передается несколько значений organizations=1.organizations=2 |
needUpdatePrice |
boolean | Нет | Фильтр по необходимости обновить цену на Wildberries? |
testCard |
boolean | Нет | Тестовая карточки для создания? |
hasImages |
boolean | Нет | Наличие или отсутствие картинок у товара? |
isDuplicate |
boolean | Нет | Карточка является дубликатом? |
hasWildberriesId |
boolean | Нет | Наличие карточки товара в Wildberries? |
hasSupplyingQuantity |
boolean | Нет | Наличие поставляемого количества по модели FBM? |
noWbImages |
boolean | Нет | Наличие фото на Wildberries? |
noOzonImages |
boolean | Нет | Наличие фото на Ozon? |
noYMImages |
boolean | Нет | Наличие фото на Яндекс.Маркет? |
deleted |
boolean | Нет | Показать помеченные удаленными товары? |
hasGroup |
boolean | Нет | Наличие групповой карточки у товара? |
modelDeleted |
boolean | Нет | Показать помеченные удаленными модели? |
viewDeleted |
boolean | Нет | Показать помеченные удаленными цвета? |
inStock |
boolean | Нет | Наличие остатков товаров на маркетплейсе или складе? |
noStock |
boolean | Нет | Отсутствие остатков товаров на маркетплейсе и складе? |
inFbsStock |
boolean | Нет | Наличие остатков на складах в SelSup? |
noFbsStock |
boolean | Нет | Отсутствие остатков на складах в SelSup? |
inFboStock |
boolean | Нет | Наличие остатков на складах FBO? |
noFboStock |
boolean | Нет | Отсутствие остатков на складах FBO? |
hasStockInWarehouse |
integer · int64 | Нет | ID склада на котором есть остатки в SelSup |
hasQuantity |
boolean | Нет | Поле hasQuantity. |
noStockInWarehouse |
integer · int64 | Нет | ID склада на котором нет остатков в SelSup |
grouped |
boolean | Нет | Группировать товары по цветам? |
uniqView |
boolean | Нет | Отдавать только товары с уникальными цвета? |
uniqViewSku |
boolean | Нет | Отдавать только товары с уникальными цвета без дубликатов по остаткам? |
uniqModel |
boolean | Нет | Отдавать только товары с уникальными моделями? |
uniqSku |
boolean | Нет | Отдавать только товары с уникальными SKU? |
contractors |
integer[] | Нет | Фильтр по ID поставщикам товара. Передается несколько параметров contractors=1&contractors=2 |
categories |
integer[] | Нет | Фильтр по ID категориям товара.Передается несколько параметров categories=1&categories=2 |
brands |
integer[] | Нет | Фильтр по ID брендам товара |
stockRefreshDate |
string · date-time | Нет | Поле stockRefreshDate. |
wildberriesRating |
integer[] | Нет | Фильтр товаров по рейтингу отзывов Вайлдбериз |
wildberriesCardDoesNotOpen |
boolean | Нет | Фильтр товаров для не открывается карточка в Вайлдбериз: значит не создана карточка, либо не загружены картинки и пр? |
productId |
integer · int64 | Нет | Поле productId. |
productIds |
integer[] | Нет | Фильтр по ID товаров. Можно передавать несколько значений productIds=1&productIds=2 |
sourceOrganizationIds |
integer[] | Нет | Фильтр товаров, которые были импортрованы в другие организации |
needImportWildberriesCard |
boolean | Нет | Фильтр товаров для которых нужно обновить карточку в Вайлдбериз? |
needImportOzonCard |
boolean | Нет | Фильтр товаров для которых нужно обновить карточку в Ozon? |
needImportAliexpressCard |
boolean | Нет | Фильтр товаров для которых нужно обновить карточку в Aliexpress? |
needUpdateFromSimaland |
boolean | Нет | Фильтр товаров для которых нужно обновить стоки и цены в Simaland? |
favourite |
boolean | Нет | Фильтр по избранным товарам, которые клиент пометил избранными? |
status |
stringCREATED, IN_STOCK, LOST, RESERVED, SUPPLIED, REMOVED, SALE, REFUND, INCOME_MARKETPLACE, QUARANTINED | Нет | Фильтр по статусу для WmsItem |
modifiedAfter |
string · date-time | Нет | Фильтр по дате модификации для WmsItem |
actual |
boolean | Нет | Фильтр по показателю актуальности? |
skuId |
integer · int64 | Нет | Фильтр по skuId - идентификатору остатка |
skuIds |
integer[] | Нет | Фильтр по skuIds |
lastInventoryId |
integer · int32 | Нет | Фильтр по ID инвентаризации для WmsItem |
strategyId |
integer · int64 | Нет | Фильтр по стратегии ценообразования |
strategyIds |
integer[] | Нет | Множественный фильтр по стратегии ценообразования |
cellId |
integer · int32 | Нет | Фильтр по ID ячейке для WmsItem |
itemId |
integer · int64 | Нет | Фильтр по ID остатка для WmsItem |
warehouseId |
integer · int64 | Нет | Фильтр ID склада для WmsItem |
avitoCategoryId |
integer · int64 | Нет | ID категории Авито |
hasAvitoCategory |
boolean | Нет | Поле hasAvitoCategory. |
services |
string[] | Нет | Список сервисов в которых не создана карточка. Например, services=WILDBERRIES&services=OZON |
createdIn |
string[] | Нет | Список сервисов в которых создана карточка. Например, createdIn=WILDBERRIES&createdIn=OZON |
duplicate |
boolean | Нет | Является ли карточка дубликатом? |
orderService |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Позволяет отфильтровать по маркетплейсу заказа, в закупках из заказов |
productType |
stringPRODUCT, SET, SERVICE, DIGITAL, CONTAINER | Нет | Фильтр по типу товара, type=PRODUCT или type=SET |
withCategoryAndBrand |
boolean | Нет | Признак, что грузим категорию и бренд? |
allServices |
boolean | Нет | Признак, что грузить данные по всем сервисам? |
inWarehouseRegions |
string[] | Нет | Подгружать ФБО остатки/продажи со складов входящих в список регионов |
inWarehouses |
integer[] | Нет | Подгружать ФБО остатки/продажи со складов входящих в список |
excludeStockWarehouses |
integer[] | Нет | ID складов SelSup, остатки которых не учитывать при планировании закупок |
incomeOrderId |
integer · int64 | Нет | Фильтр товаров по ID заказа |
incomeId |
integer · int64 | Нет | Фильтр товаров по ID заказа поставщика |
itemIncomeOrderId |
integer · int64 | Нет | Фильтр остатков из приемки |
dateFrom |
string · date-time | Нет | Дата начала |
dateTo |
string · date-time | Нет | Дата окончания |
plannedSupplyDate |
string · date-time | Нет | Планируемая дата поставки |
timeZone |
integer · int32 | Нет | Часовой пояс клиента по UTC |
ids |
integer[] | Нет | Фильтр по ID товаров. Можно передавать несколько значений ids=1&ids=2 |
skipDayWithoutStocks |
boolean | Нет | Пропускать дни без остатков? |
countByOrders |
boolean | Нет | Делать расчет по заказам, если true, и по продажам, если false? |
requierPlan |
number · double | Нет | Фильтр по Рекомендации к поставке |
forPrices |
boolean | Нет | Отдавать в ответе данные для таблицы цен? |
deliveryDate |
string | Нет | Фильтр по дате доставки заказа |
onlyEmptyParchasePrice |
boolean | Нет | Выгружать товары только с пустыми закупочными ценами? |
onlyEmptyDeliveryCostPrice |
boolean | Нет | Выгружать товары только с пустыми дополнительными расходами? |
forFboSupplyPlan |
boolean | Нет | Показывает для чего идет расчет планирования для фбо или поставок? |
ignoreParams |
boolean | Нет | Признак для выгрузки карточек без параметров? |
ungroupWarehouses |
boolean | Нет | Если true - не группировать по складам, то есть вывести список продуктов отдельный для каждого склада. Используется в планировании поставок |
replaceSetsByComponents |
boolean | Нет | Признак раскрывать ли комплекты? |
distributeFbsByWarehouse |
boolean | Нет | Распределять FBS по складам пропорционально FBO |
distributeFbsStock |
boolean | Нет | Распределять остатки FBS между маркетплейсами/складами |
ignoreDumping |
boolean | Нет | Игнорировать слив товара (продажи по заниженной цене) |
distributeAllRecommendations |
boolean | Нет | Распределять все рекомендации из не попавших в поиск складов |
limitByFbsStocks |
boolean | Нет | Ограничивать суммарный план поставки текущим остатком FBS |
useSalesPlan |
boolean | Нет | Считать дефицит по плану продаж из отчета План/Факт продаж, а не по фактическим продажам/заказам |
packagingType |
stringBox, Monopallet, Supersafe, BoxOnPallet | Нет | Тип упаковки для фильтрации доступных складов WB |
notGroupComponents |
boolean | Нет | Признак не группировать компоненты? |
modelArticle |
string | Нет | Фильтр по артикулу модели |
serviceArticle |
string | Нет | Фильтр по артикулу товара на внешнем сервисе |
serviceArticleService |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис для фильтрации или сортировки по артикулу товара |
ozonArticle |
string | Нет | Фильтр по артикулу Ozon |
yandexMarketShopSku |
string | Нет | Фильтр по артикулу Яндекс.Маркет |
sberArticle |
string | Нет | Поле sberArticle. |
wbArticle |
string | Нет | Поле wbArticle. |
barcode |
string | Нет | Фильтр по штрих-коду |
name |
string | Нет | Фильтр по названию товара |
reportSheets |
stringBARCODE, COLOR, ARTICLE | Нет | Поле reportSheets. |
forSupplyPlan |
boolean | Нет | Поле forSupplyPlan. |
tagIds |
integer[] | Нет | Фильтр по ID тегов. Только товары, привязанные к этим тегам |
findirTipTypes |
string[] | Нет | Фильтр по типу рекомендаций AI Финдир |
removeFbsStock |
boolean | Нет | Флаг отключения передачи FBS остатков для организаций и сервисов |
brandId |
integer · int64 | Нет | Поле brandId. |
countByOrdersOrSales |
boolean | Нет | Поле countByOrdersOrSales. |
curl --request POST 'https://api.selsup.ru/api/export/getWildberriesFile' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}'
const response = await fetch('https://api.selsup.ru/api/export/getWildberriesFile', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/getWildberriesFile', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/getWildberriesFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'limit': 50,
'page': 1,
'count': False,
'sortBy': 'ACTUAL',
'ascending': False,
'query': 'string'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/getWildberriesFile',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/getWildberriesFile", strings.NewReader(`{
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/getWildberriesFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Асинхронный экспорт товаров из розничных заказов в Excel
/api/export/getRetailOrderProductFileСоздает задачу на формирование Excel-файла по указанному фильтру
Тело запроса
application/jsonПоля объектаOrderFilter
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
stringID, CREATEDDATE, ORDERCREATED, CREATED, CREATEDUSER, STATUS, SERVICE, TYPE, BOXTYPE, NAME, ORGANIZATIONID, WAREHOUSE, INVOICENUMBER, EXTERNALORDERID, QUEUE, SUPPLYID, CLOSEDATE, DELIVERYTRANSFERDATE, CHECKED, STARTCOLLECTDATE, CLOSEUSERID, USERID, PRICE, PRODUCT, COLLECTORDERTASKID, DELIVERYDATE, MARKINGSTATUS, QUANTITY, DATE, SERVICEWAREHOUSEID | Нет | Поле для сортировки |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
columns |
OrderFilter | Нет | Настройки столбцов для экспорта отчета по заказам |
actual |
boolean | Нет | Отображать только актуальные заказы - не закрытые? |
type |
stringFBM, FBS, INCOME, RETAIL, WHOLESALE, FBO, MOVEMENT, WRITE_OFF, PRODUCTION | Нет | Тип заказа |
otherShipments |
boolean | Нет | Поле otherShipments. |
shipmentMethod |
stringPICKUP, DELIVERY | Нет | Поле shipmentMethod. |
shipmentPhase |
stringNEW, REWORK, COLLECTING, COLLECTED, PACKING, READY_PICKUP, READY_DELIVERY, IN_TRANSIT, SHIPPED, CANCELED | Нет | Поле shipmentPhase. |
serviceWarehouseId |
string | Нет | Внешний номер склада |
externalOrderId |
string | Нет | Внешний номер заказа |
invoiceNumber |
integer · int64 | Нет | ID Номера счета |
article |
string | Нет | Фильтр по артикулу модели товара в заказе |
containsArticle |
string | Нет | Поле containsArticle. |
product |
string | Нет | Фильтр по названию товара в заказе |
barcode |
string | Нет | Фильтр по точному штрихкоду товара в заказе |
organizations |
integer[] | Нет | Фильтр по ID организации. Можно передавать несколько значений organizations=123&organizations=345 |
query |
string | Нет | Поисковый запрос для фильтрации заказов по номеру, названию или QR/штрихкоду стикера |
userId |
integer · int32 | Нет | ID пользователя который брал на сборку заказ |
closeUserId |
integer · int32 | Нет | ID пользователя, указанного в столбце Сборщик |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Фильтр заказа по маркетплейсу |
services |
string[] | Нет | Список маркетплейсов для которых отдать данные |
status |
stringCREATED, REVOKING, REVOKED, ORDER_CREATED, CARDS_CREATED, BOX_BARCODES, IMAGES_UPLOADED, INVOICE_UPLOADED, READY_TO_SUPPLY, SUPPLIED, FINISHED, COLLECTED, SEND, DELIVERY, REFUND, COLLECTING, PACKING, PAYMENT_REQUIRED, CANCELED, CONTROVERSIAL, OVERDUE, READY_FOR_PICKUP, WAITING_SUPPLY, PICK_UP_REFUND, REFUND_RECEIVED, DELETED, RESTORE, PRODUCTION_CONFIRMED, REVERSED | Нет | Фильтр по статусу заказа |
statuses |
string[] | Нет | Фильтр по статусам заказа. Можно передавать несколько значений statuses=CREATED&statuses=PACKING |
withoutSupply |
boolean | Нет | Фильтр по заказам не прикрепленным к поставке? |
orderProductId |
integer · int64 | Нет | Фильтр по ID позиции в заказе |
productId |
integer · int64 | Нет | Фильтр по ID товара из заказа |
brandId |
integer · int32 | Нет | Фильтр по ID бренда товара из заказа |
supplierId |
integer · int64 | Нет | Фильтр по поставщику |
hasCollectTask |
boolean | Нет | Фильтр по наличию у заказа сборочного задания? |
organizationId |
integer · int64 | Нет | Фильтр по ID организации заказа |
clientOrganizationIds |
integer[] | Нет | Идентификаторы организаций клиента |
fulfillmentClientId |
integer · int64 | Нет | Клиент фулфилмента, которому принадлежат заказы (для кабинета фулфилмента) |
updateInService |
boolean | Нет | Заказы, которые стоят в очереди на изменение статуса на маркетплейсе? |
hasServiceError |
boolean | Нет | Заказы с ошибкой обновления статуса на маркетплейсе? |
noLabel |
boolean | Нет | Фильтрует заказы без этикетки? |
isLegal |
boolean | Нет | Фильтрует заказы для бизнеса |
noMsOrder |
boolean | Нет | Фильтрует по заказам не созданным в Моем складе? |
noMsDemand |
boolean | Нет | Фильтрует по заказам с несозданными отгрузками в Моем складе? |
ids |
integer[] | Нет | ID заказов. Можно передавать несколько значений ids=123&ids=345 |
supplyId |
integer · int64 | Нет | ID поставки, в которой отгружается заказ |
notCollected |
boolean | Нет | Заказы, которые не собирались через SelSup? |
dbs |
boolean | Нет | DBS заказы? |
express |
boolean | Нет | Express заказы? |
fbs |
boolean | Нет | FBS заказы? |
noWarehouse |
boolean | Нет | Заказы без склада? |
closeDate |
string | Нет | Фильтр по дате сборки заказа - конкретный день |
checked |
boolean | Нет | Заказ проверен сканированием: true — проверен, false — не проверен |
modifiedDate |
string · date-time | Нет | Фильтр по дате изменения заказа - статуса или любой информации о заказе начиная с этой даты |
modifiedDateTo |
string · date-time | Нет | Фильтр по дате изменения заказа - статуса или любой информации о заказе до этой даты |
incomeId |
integer · int64 | Нет | ID закупки из которого создан заказ |
bindingOrderId |
integer · int64 | Нет | ID заказа, которому делаем возврат |
closeDateFrom |
string · date-time | Нет | Фильтр по дате сборки заказа от - ISO |
closeDateTo |
string · date-time | Нет | Фильтр по дате сборки заказа до - ISO |
deliveryTransferDateFrom |
string · date-time | Нет | Поле deliveryTransferDateFrom. |
deliveryTransferDateTo |
string · date-time | Нет | Поле deliveryTransferDateTo. |
orderDate |
string | Нет | Фильтр по дате заказа |
deliveryDate |
string | Нет | Фильтр по дате доставки заказа |
deliveryDateFrom |
string | Нет | Фильтр по дате доставки заказа от |
deliveryDateTo |
string | Нет | Фильтр по дате доставки заказа до |
createdDateFrom |
string | Нет | Фильтр по дате создания заказа от |
createdDateTo |
string | Нет | Фильтр по дате создания заказа до |
forMoySklad |
boolean | Нет | Для создания в МойСклад? |
withMoySkladOrder |
boolean | Нет | Только заказы, у которых уже есть заказ в МойСклад (moy_sklad_id задан) |
warehouseId |
integer · int64 | Нет | Фильтр по ID склада, с которого отгружается заказ |
categoryId |
integer · int32 | Нет | Фильтр по ID категории SelSup товара в заказе |
warehouseIds |
integer[] | Нет | Фильтр по ID складам, с которого отгружается заказ. Можно передавать несколько значений warehouseIds=123&warehouseIds=345 |
stockWarehouseId |
integer · int64 | Нет | Фильтр по ID склада фулфилмента, на котором находится заказ (для кабинета фулфилмента) |
dateFrom |
string · date-time | Нет | Фильтр по дате заказа - от |
dateTo |
string · date-time | Нет | Фильтр по дате заказа - до |
timeZone |
integer · int32 | Нет | ID часового пояса клиента по UTC в часах, например 3 |
markingStatus |
stringUNKNOWN, CARDS_SEND, CARDS_CREATED, SUZ_ORDERS_CREATED, MARKS_RECEIVED, CARDS_SIGNED, DOCUMENT_CREATED, SUCCESS, NO_NEED_MARKING | Нет | Фильтр по статусу в честном знаке |
deleted |
boolean | Нет | Показать удаленные заказы? |
collectLabel |
boolean | Нет | Только для печати в PDF. Признак необходимости распечатать сборочную этикетку для "умной ленты"? |
sortOrdersByDate |
boolean | Нет | Только для печати в PDF. Признак необходимости распечатать сборочную этикетку для "умной ленты"? |
sortBySku |
boolean | Нет | Только для печати в PDF. Признак необходимости использовать в сортировке данные о товарах объединенных по SKU? |
notGroupByOrganization |
boolean | Нет | Только для печати в PDF. Признак того, что все организации сортируются одним списком? |
notGroupByService |
boolean | Нет | Только для печати в PDF. Признак того, что все маркетплейсы сортируются одним списком? |
targetCount |
integer · int32 | Нет | Только для печати (лист сборки, лента заказов). Сколько первых заказов по фильтру напечатать. Не зависит от пагинации списка (limit/page). Если не указано, печатаются все заказы по фильтру в пределах общего ограничения |
productLabel |
boolean | Нет | Только для печати в PDF. Признак необходимости распечатать этикетку товара в ленте? |
productCodeLabel |
boolean | Нет | Только для печати в PDF. Признак необходимости распечатать этикетку кода маркировки в ленте? |
servicesForLabel |
string[] | Нет | Сервисы для которых нужна печать в PDF |
infoLabel |
boolean | Нет | Только для печати в PDF. Признак необходимости распечатать информационную этикетку для ленты заказов? |
grouped |
boolean | Нет | Отдает сгруппированные позиции из заказов. Только для выгрузки в Excel? |
replaceSetByComponent |
boolean | Нет | Заменяет в заказах комплекты на компоненты? |
replaceSetsByComponentsIncome |
boolean | Нет | Заменяет в заказах комплекты на компоненты в файле закупки? |
collectDeliveryLabel |
boolean | Нет | Только для печати в PDF. Признак необходимости распечатать накладную службы доставки для "умной ленты"? |
shippingServicesForLabel |
string[] | Нет | Сервисы доставки для которых нужна печать накладной в PDF |
orderId |
integer · int64 | Нет | ID заказа |
hasVideoFixation |
boolean | Нет | Идентификатор была ли видео фиксация? |
withProducts |
boolean | Нет | Признак, что заказы необходимо отдать c товарами? |
passageIds |
integer[] | Нет | Фильтр по ID проходов. Можно передавать несколько значений passageIds=123&passageIds=345 |
withContractor |
boolean | Нет | Включить информацию о поставщиках в выгрузку? |
boxId |
integer · int64 | Нет | Идентификатор короба |
sortType |
stringsort, non-sort | Нет | Фильтр по типу сортировки отправления Ozon FBS (сортируемое/несортируемое) |
hasMarkedProducts |
boolean | Нет | Фильтр по заказам, в которых есть товары, подлежащие маркировке |
hasMissingMarkingCodes |
boolean | Нет | Фильтр по заказам, в которых не все обязательные коды маркировки привязаны |
withAnalytics |
boolean | Нет | Загружать данные аналитики (commission, logistics, totalSellingExpenses, grossProfit) из profit_report? Без флага (по умолчанию false) эти поля не возвращаются в ответе. Замедляет запрос |
curl --request POST 'https://api.selsup.ru/api/export/getRetailOrderProductFile' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"count": false,
"sortBy": "ID",
"ascending": false,
"columns": "string",
"actual": false,
"type": "FBM"
}'
const response = await fetch('https://api.selsup.ru/api/export/getRetailOrderProductFile', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"count": false,
"sortBy": "ID",
"ascending": false,
"columns": "string",
"actual": false,
"type": "FBM"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/getRetailOrderProductFile', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"count": false,
"sortBy": "ID",
"ascending": false,
"columns": "string",
"actual": false,
"type": "FBM"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/getRetailOrderProductFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'count': False,
'sortBy': 'ID',
'ascending': False,
'columns': 'string',
'actual': False,
'type': 'FBM'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"count": false,
"sortBy": "ID",
"ascending": false,
"columns": "string",
"actual": false,
"type": "FBM"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/getRetailOrderProductFile',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/getRetailOrderProductFile", strings.NewReader(`{
"count": false,
"sortBy": "ID",
"ascending": false,
"columns": "string",
"actual": false,
"type": "FBM"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/getRetailOrderProductFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"count": false,
"sortBy": "ID",
"ascending": false,
"columns": "string",
"actual": false,
"type": "FBM"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Экспорт товаров в Excel
/api/export/getProductsFileВозвращает Excel файл со списком товаров
Тело запроса
application/jsonПоля объектаProductFilter
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
limit |
integer · int32 | Нет | Ограничение на количество записей. Максимальное значение - 500 |
page |
integer · int32 | Нет | Номер страницы начиная с 1 |
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
stringACTUAL, ID, PRODUCTID, NAME, BARCODE, FAVOURITE, INSTOCKQUANTITY, FBSQUANTITY, CALCULATEDINSTOCKQUANTITY, STOCK, OZONSTOCKCOUNT, OZONSUPPLYINGQUANTITY, OZONORDERQUANTITY, OZONFBSORDERSQUANTITY, OZONSTOCKBETWEENWAREHOUSES, OZONUPDATEDPRICE, LASTWILDBERRIESORDERDATE, WILDBERRIESSTOCKCOUNT, WILDBERRIESSUPPLYINGQUANTITY, WILDBERRIESFBSORDERSQUANTITY, WILDBERRIESORDERQUANTITY, WILDBERRIESPROFIT, WILDBERRIESPRICE, WILDBERRIESUPDATEDPRICE, PRICE, PRICEWITHOUTDISCOUNT, AVERAGECOMPETITORPRICE, PURCHASEPRICE, PURCHASECURRENCY, MANUFACTURER, REALSIZE, CATEGORY, VENDORSIZE, DELIVERYCOST, WILDBERRIESSALEQUANTITY, WILDBERRIESQUANTITYINWAY, OZONPRICE, OZONPROFIT, LASTOZONORDERDATE, ARTICLE, COLOR, SIZE, CREATEDUSER, ORGANIZATIONID, BRAND, CREATEDDATE, LASTSTOCKCHANGE, STATUS, CELL, ITEMID, ORDERID, PUTUSERID, PUTDATE, TAKEUSERID, TAKEDATE, INCOMEORDER, NUMBER, TOTALQUANTITY, SUPPLYORDERPRODUCTID, TOTALORDERS, UPDATEDPRICE, QUANTITY, ALIEXPRESSPRICE, YANDEXMARKETPRICE, SKU, SERVICEARTICLE, OZONARTICLE, WBARTICLE, YANDEXMARKETSHOPSKU, YANDEXMARKETSTOCKCOUNT, ALIEXPRESSSKU, SBERARTICLE, ONECARTICLE, ADD, ORDERMINDATE, INCOMEQUANTITY, SBERMEGAMARKETSUPPLYINGQUANTITY, YANDEXMARKETSUPPLYINGQUANTITY, TOTALSUPPLYINGQUANTITY, TOTALFBSORDERSCOUNT, STOCKCOUNTUNITED, FBOSTOCKCOUNT, RECOMENDSALESPLAN, WBTOTALSALESCOUNT, OZONTOTALSALESCOUNT, SBERTOTALSALESCOUNT, YANDEXTOTALSALESCOUNT, EXTERNALARTICLE, FBOSALES, IMAGESUPDATEDAT | Нет | Поле для сортировки |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
query |
string | Нет | Поисковый запрос. Может содержать штрих-код, часть названия товара, внешние идентификаторы товаров Wildberries или Ozon |
caseInsensitiveProductSearch |
boolean | Нет | Не учитывать регистр при поиске по внутренним артикулам и артикулам маркетплейсов |
article |
string | Нет | Поиск по названию артикула товара |
color |
string | Нет | Поиск по названию цвета товара |
viewId |
integer · int64 | Нет | Поиск по идентификатору цвета |
skuViewId |
integer · int64 | Нет | Поиск по SKU идентификатору цвета |
modelId |
integer · int64 | Нет | Поиск по идентификатору модели |
requirementCaseId |
integer · int64 | Нет | Кейс изменения требований к карточкам |
requirementParamId |
integer · int64 | Нет | Параметр в кейсе изменения требований |
requirementItemStatus |
string | Нет | Статус исправления параметра в кейсе |
requirementChangeType |
string | Нет | Тип изменения требования |
requirementRepairMethod |
string | Нет | Способ исправления требования |
groupId |
integer · int64 | Нет | Фильтр по ID групповой карточки |
groupIds |
integer[] | Нет | Фильтр по ID групповых карточек. groupIds=1&groupIds=2 |
needToBuy |
boolean | Нет | Товары, которые нужно показать в списке для заказа? |
showProductsWithSufficientStock |
boolean | Нет | Показывать товары с достаточным остатком в плане закупок? |
planDays |
integer · int32 | Нет | Количество дней на которые планировать закупки. По умолчанию 30 |
daysToSupply |
integer · int32 | Нет | Через сколько дней ожидается поставка. По умолчанию 0 |
organizations |
integer[] | Нет | Фильтр по ID организаций. Передается несколько значений organizations=1.organizations=2 |
needUpdatePrice |
boolean | Нет | Фильтр по необходимости обновить цену на Wildberries? |
testCard |
boolean | Нет | Тестовая карточки для создания? |
hasImages |
boolean | Нет | Наличие или отсутствие картинок у товара? |
isDuplicate |
boolean | Нет | Карточка является дубликатом? |
hasWildberriesId |
boolean | Нет | Наличие карточки товара в Wildberries? |
hasSupplyingQuantity |
boolean | Нет | Наличие поставляемого количества по модели FBM? |
noWbImages |
boolean | Нет | Наличие фото на Wildberries? |
noOzonImages |
boolean | Нет | Наличие фото на Ozon? |
noYMImages |
boolean | Нет | Наличие фото на Яндекс.Маркет? |
deleted |
boolean | Нет | Показать помеченные удаленными товары? |
hasGroup |
boolean | Нет | Наличие групповой карточки у товара? |
modelDeleted |
boolean | Нет | Показать помеченные удаленными модели? |
viewDeleted |
boolean | Нет | Показать помеченные удаленными цвета? |
inStock |
boolean | Нет | Наличие остатков товаров на маркетплейсе или складе? |
noStock |
boolean | Нет | Отсутствие остатков товаров на маркетплейсе и складе? |
inFbsStock |
boolean | Нет | Наличие остатков на складах в SelSup? |
noFbsStock |
boolean | Нет | Отсутствие остатков на складах в SelSup? |
inFboStock |
boolean | Нет | Наличие остатков на складах FBO? |
noFboStock |
boolean | Нет | Отсутствие остатков на складах FBO? |
hasStockInWarehouse |
integer · int64 | Нет | ID склада на котором есть остатки в SelSup |
hasQuantity |
boolean | Нет | Поле hasQuantity. |
noStockInWarehouse |
integer · int64 | Нет | ID склада на котором нет остатков в SelSup |
grouped |
boolean | Нет | Группировать товары по цветам? |
uniqView |
boolean | Нет | Отдавать только товары с уникальными цвета? |
uniqViewSku |
boolean | Нет | Отдавать только товары с уникальными цвета без дубликатов по остаткам? |
uniqModel |
boolean | Нет | Отдавать только товары с уникальными моделями? |
uniqSku |
boolean | Нет | Отдавать только товары с уникальными SKU? |
contractors |
integer[] | Нет | Фильтр по ID поставщикам товара. Передается несколько параметров contractors=1&contractors=2 |
categories |
integer[] | Нет | Фильтр по ID категориям товара.Передается несколько параметров categories=1&categories=2 |
brands |
integer[] | Нет | Фильтр по ID брендам товара |
stockRefreshDate |
string · date-time | Нет | Поле stockRefreshDate. |
wildberriesRating |
integer[] | Нет | Фильтр товаров по рейтингу отзывов Вайлдбериз |
wildberriesCardDoesNotOpen |
boolean | Нет | Фильтр товаров для не открывается карточка в Вайлдбериз: значит не создана карточка, либо не загружены картинки и пр? |
productId |
integer · int64 | Нет | Поле productId. |
productIds |
integer[] | Нет | Фильтр по ID товаров. Можно передавать несколько значений productIds=1&productIds=2 |
sourceOrganizationIds |
integer[] | Нет | Фильтр товаров, которые были импортрованы в другие организации |
needImportWildberriesCard |
boolean | Нет | Фильтр товаров для которых нужно обновить карточку в Вайлдбериз? |
needImportOzonCard |
boolean | Нет | Фильтр товаров для которых нужно обновить карточку в Ozon? |
needImportAliexpressCard |
boolean | Нет | Фильтр товаров для которых нужно обновить карточку в Aliexpress? |
needUpdateFromSimaland |
boolean | Нет | Фильтр товаров для которых нужно обновить стоки и цены в Simaland? |
favourite |
boolean | Нет | Фильтр по избранным товарам, которые клиент пометил избранными? |
status |
stringCREATED, IN_STOCK, LOST, RESERVED, SUPPLIED, REMOVED, SALE, REFUND, INCOME_MARKETPLACE, QUARANTINED | Нет | Фильтр по статусу для WmsItem |
modifiedAfter |
string · date-time | Нет | Фильтр по дате модификации для WmsItem |
actual |
boolean | Нет | Фильтр по показателю актуальности? |
skuId |
integer · int64 | Нет | Фильтр по skuId - идентификатору остатка |
skuIds |
integer[] | Нет | Фильтр по skuIds |
lastInventoryId |
integer · int32 | Нет | Фильтр по ID инвентаризации для WmsItem |
strategyId |
integer · int64 | Нет | Фильтр по стратегии ценообразования |
strategyIds |
integer[] | Нет | Множественный фильтр по стратегии ценообразования |
cellId |
integer · int32 | Нет | Фильтр по ID ячейке для WmsItem |
itemId |
integer · int64 | Нет | Фильтр по ID остатка для WmsItem |
warehouseId |
integer · int64 | Нет | Фильтр ID склада для WmsItem |
avitoCategoryId |
integer · int64 | Нет | ID категории Авито |
hasAvitoCategory |
boolean | Нет | Поле hasAvitoCategory. |
services |
string[] | Нет | Список сервисов в которых не создана карточка. Например, services=WILDBERRIES&services=OZON |
createdIn |
string[] | Нет | Список сервисов в которых создана карточка. Например, createdIn=WILDBERRIES&createdIn=OZON |
duplicate |
boolean | Нет | Является ли карточка дубликатом? |
orderService |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Позволяет отфильтровать по маркетплейсу заказа, в закупках из заказов |
productType |
stringPRODUCT, SET, SERVICE, DIGITAL, CONTAINER | Нет | Фильтр по типу товара, type=PRODUCT или type=SET |
withCategoryAndBrand |
boolean | Нет | Признак, что грузим категорию и бренд? |
allServices |
boolean | Нет | Признак, что грузить данные по всем сервисам? |
inWarehouseRegions |
string[] | Нет | Подгружать ФБО остатки/продажи со складов входящих в список регионов |
inWarehouses |
integer[] | Нет | Подгружать ФБО остатки/продажи со складов входящих в список |
excludeStockWarehouses |
integer[] | Нет | ID складов SelSup, остатки которых не учитывать при планировании закупок |
incomeOrderId |
integer · int64 | Нет | Фильтр товаров по ID заказа |
incomeId |
integer · int64 | Нет | Фильтр товаров по ID заказа поставщика |
itemIncomeOrderId |
integer · int64 | Нет | Фильтр остатков из приемки |
dateFrom |
string · date-time | Нет | Дата начала |
dateTo |
string · date-time | Нет | Дата окончания |
plannedSupplyDate |
string · date-time | Нет | Планируемая дата поставки |
timeZone |
integer · int32 | Нет | Часовой пояс клиента по UTC |
ids |
integer[] | Нет | Фильтр по ID товаров. Можно передавать несколько значений ids=1&ids=2 |
skipDayWithoutStocks |
boolean | Нет | Пропускать дни без остатков? |
countByOrders |
boolean | Нет | Делать расчет по заказам, если true, и по продажам, если false? |
requierPlan |
number · double | Нет | Фильтр по Рекомендации к поставке |
forPrices |
boolean | Нет | Отдавать в ответе данные для таблицы цен? |
deliveryDate |
string | Нет | Фильтр по дате доставки заказа |
onlyEmptyParchasePrice |
boolean | Нет | Выгружать товары только с пустыми закупочными ценами? |
onlyEmptyDeliveryCostPrice |
boolean | Нет | Выгружать товары только с пустыми дополнительными расходами? |
forFboSupplyPlan |
boolean | Нет | Показывает для чего идет расчет планирования для фбо или поставок? |
ignoreParams |
boolean | Нет | Признак для выгрузки карточек без параметров? |
ungroupWarehouses |
boolean | Нет | Если true - не группировать по складам, то есть вывести список продуктов отдельный для каждого склада. Используется в планировании поставок |
replaceSetsByComponents |
boolean | Нет | Признак раскрывать ли комплекты? |
distributeFbsByWarehouse |
boolean | Нет | Распределять FBS по складам пропорционально FBO |
distributeFbsStock |
boolean | Нет | Распределять остатки FBS между маркетплейсами/складами |
ignoreDumping |
boolean | Нет | Игнорировать слив товара (продажи по заниженной цене) |
distributeAllRecommendations |
boolean | Нет | Распределять все рекомендации из не попавших в поиск складов |
limitByFbsStocks |
boolean | Нет | Ограничивать суммарный план поставки текущим остатком FBS |
useSalesPlan |
boolean | Нет | Считать дефицит по плану продаж из отчета План/Факт продаж, а не по фактическим продажам/заказам |
packagingType |
stringBox, Monopallet, Supersafe, BoxOnPallet | Нет | Тип упаковки для фильтрации доступных складов WB |
notGroupComponents |
boolean | Нет | Признак не группировать компоненты? |
modelArticle |
string | Нет | Фильтр по артикулу модели |
serviceArticle |
string | Нет | Фильтр по артикулу товара на внешнем сервисе |
serviceArticleService |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис для фильтрации или сортировки по артикулу товара |
ozonArticle |
string | Нет | Фильтр по артикулу Ozon |
yandexMarketShopSku |
string | Нет | Фильтр по артикулу Яндекс.Маркет |
sberArticle |
string | Нет | Поле sberArticle. |
wbArticle |
string | Нет | Поле wbArticle. |
barcode |
string | Нет | Фильтр по штрих-коду |
name |
string | Нет | Фильтр по названию товара |
reportSheets |
stringBARCODE, COLOR, ARTICLE | Нет | Поле reportSheets. |
forSupplyPlan |
boolean | Нет | Поле forSupplyPlan. |
tagIds |
integer[] | Нет | Фильтр по ID тегов. Только товары, привязанные к этим тегам |
findirTipTypes |
string[] | Нет | Фильтр по типу рекомендаций AI Финдир |
removeFbsStock |
boolean | Нет | Флаг отключения передачи FBS остатков для организаций и сервисов |
brandId |
integer · int64 | Нет | Поле brandId. |
countByOrdersOrSales |
boolean | Нет | Поле countByOrdersOrSales. |
curl --request POST 'https://api.selsup.ru/api/export/getProductsFile' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}'
const response = await fetch('https://api.selsup.ru/api/export/getProductsFile', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/getProductsFile', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/getProductsFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'limit': 50,
'page': 1,
'count': False,
'sortBy': 'ACTUAL',
'ascending': False,
'query': 'string'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/getProductsFile',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/getProductsFile", strings.NewReader(`{
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/getProductsFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"limit": 50,
"page": 1,
"count": false,
"sortBy": "ACTUAL",
"ascending": false,
"query": "string"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки4
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
Экспорт моделей в Excel
/api/export/getModelsFileВозвращает Excel файл со списком моделей
curl --request POST 'https://api.selsup.ru/api/export/getModelsFile' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/getModelsFile', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/getModelsFile', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/getModelsFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/getModelsFile',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/getModelsFile", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/getModelsFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Структура расчетов с поставщиками в Excel
/api/export/exportStructureTurnoverByContractorIdВозвращает Excel файл со структурой оплат за период с контрагентом
Параметры запроса
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
productAnalyticField |
stringBARCODE, COLOR, ARTICLE, BRAND, CATEGORY | Да | Агрегировать данные по сущности | ||||||||||||||||||||||||
query |
string | Нет | Поисковый запрос для фильтрации аналитики | ||||||||||||||||||||||||
withDuplicate |
boolean | Нет | Отдавать аналитику по дубликатам товаров | ||||||||||||||||||||||||
withBonus |
boolean | Нет | Вычитать бонусы Ozon и Яндекс Маркета, а также СПП Wildberries из выручки и расходов | ||||||||||||||||||||||||
distributeUnallocatedExpenses |
boolean | Нет | Распределять расходы без привязки к карточке пропорционально выручке | ||||||||||||||||||||||||
byOrgAndService |
boolean | Нет | Для Excel финансового отчёта: true — колонки по паре организация + маркетплейс, false/null — агрегировать по организации как раньше | ||||||||||||||||||||||||
byCategory |
boolean | Нет | Группировать финансовый отчёт по категории товара | ||||||||||||||||||||||||
byOrderType |
boolean | Нет | Разбивать финансовый отчёт по типу заказа: отдельные строки для маркетплейсов, розницы и опта | ||||||||||||||||||||||||
limit |
integer · int32 | Нет | Количество записей в ответе | ||||||||||||||||||||||||
page |
integer · int32 | Нет | Страница для навигации по страницам, начиная с 1 | ||||||||||||||||||||||||
sortBy |
string | Нет | Поле сортировки | ||||||||||||||||||||||||
ascending |
boolean | Нет | Сортировать по возрастанию по полю sortBy | ||||||||||||||||||||||||
id |
integer · int64 | Нет | Поле id. | ||||||||||||||||||||||||
isMarketPlaceStructure |
boolean | Нет | Идентификатор, получать данные только по маркетплейсу или по всем. | ||||||||||||||||||||||||
isDashboard |
boolean | Нет | Идентификатор, запрос с дашборда или нет. | ||||||||||||||||||||||||
analyticsField |
stringPRODUCT, MODEL, GROUP, ORGANIZATION, CLIENT, CATEGORY, PRODUCT_VIEW, BRAND, REGION, WAREHOUSE | Нет | Агрегировать данные по model/product/view | ||||||||||||||||||||||||
planDayCount |
integer · int32 | Нет | Кол-во дней для отчетов | ||||||||||||||||||||||||
daysToSupply |
integer · int32 | Нет | Через сколько дней ожидается поставка | ||||||||||||||||||||||||
plannedSupplyDate |
string · date-time | Нет | Планируемая дата поставки | ||||||||||||||||||||||||
groupByView |
boolean | Нет | Сгруппировать по цвету | ||||||||||||||||||||||||
warehouses |
integer[] | Нет | Список идентификаторов складов | ||||||||||||||||||||||||
salesModels |
string[] | Нет | Модели продаж для отчёта экономики складов | ||||||||||||||||||||||||
aggregation |
stringWAREHOUSE, WAREHOUSE_PRODUCT | Нет | Уровень агрегации отчёта экономики складов | ||||||||||||||||||||||||
columns |
FileExportColumn[] | Нет | Настроенные пользователем колонки Excel | ||||||||||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | ID записи |
fileExportId |
integer · int64 | Нет | ID конфигурации экспорта |
columnName |
string | Нет | Название столбца |
columnOrder |
integer · int32 | Нет | Порядок столбца в файле |
isEnabled |
boolean | Нет | Включен ли столбец для экспорта |
regionsgroupcalculationByOrdersordersByCreatedDatesourceReportskipDayWithoutStocksreplaceSetsByComponentsdistributeFbsByWarehousedistributeFbsStockignoreDumpingisSaleStructureisAveragePerOneUnitupdateDateuseWeightedGroupisFindirRequestbrandIdscategoryIdsarticlescolorssizesbarcodestagIdspenaltyFrompenaltyTologisticsFromlogisticsTomarginFrommarginTosalesAmountFromsalesAmountTototalSalesAmountFromtotalSalesAmountTogrossProfitFromgrossProfitTotaxNdsuseOsnoperioddateFromdateToservicescategoriesbrandsclientOrganizationIdorganizationsidstypetypesstatustimeZonepreviousDateFromclientOrganizationIdsignoreCreditcurl --request POST 'https://api.selsup.ru/api/export/exportStructureTurnoverByContractorId?productAnalyticField=BARCODE&limit=50&page=1&dateFrom=2026-01-15T12%3A00%3A00Z&dateTo=2026-01-15T12%3A00%3A00Z' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/exportStructureTurnoverByContractorId?productAnalyticField=BARCODE&limit=50&page=1&dateFrom=2026-01-15T12%3A00%3A00Z&dateTo=2026-01-15T12%3A00%3A00Z', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/exportStructureTurnoverByContractorId?productAnalyticField=BARCODE&limit=50&page=1&dateFrom=2026-01-15T12%3A00%3A00Z&dateTo=2026-01-15T12%3A00%3A00Z', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/exportStructureTurnoverByContractorId?productAnalyticField=BARCODE&limit=50&page=1&dateFrom=2026-01-15T12%3A00%3A00Z&dateTo=2026-01-15T12%3A00%3A00Z',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/exportStructureTurnoverByContractorId?productAnalyticField=BARCODE&limit=50&page=1&dateFrom=2026-01-15T12%3A00%3A00Z&dateTo=2026-01-15T12%3A00%3A00Z',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/exportStructureTurnoverByContractorId?productAnalyticField=BARCODE&limit=50&page=1&dateFrom=2026-01-15T12%3A00%3A00Z&dateTo=2026-01-15T12%3A00%3A00Z", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/exportStructureTurnoverByContractorId?productAnalyticField=BARCODE&limit=50&page=1&dateFrom=2026-01-15T12%3A00%3A00Z&dateTo=2026-01-15T12%3A00%3A00Z"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки4
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_analytics_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_analytics_access_denied; localMessage содержит приведённый выше перевод.
Создание карточек в маркетплейсах
/api/export/createCardsЗапускает задачу по созданию карточек на маркетплейсах для заказа
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int64 | Да | Поле orderId. |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис |
curl --request POST 'https://api.selsup.ru/api/export/createCards?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/createCards?orderId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/createCards?orderId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/export/createCards?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/createCards?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/export/createCards?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/createCards?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
ЭДО файл ТТН
/api/export/wildberriesTTNВозвращает файл для передачи через ЭДО товарно-транспортной накладной. Файл в формате XML
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
deliveryId |
integer · int64 | Да | Поле deliveryId. |
curl --request GET 'https://api.selsup.ru/api/export/wildberriesTTN?deliveryId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/wildberriesTTN?deliveryId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/wildberriesTTN?deliveryId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/wildberriesTTN?deliveryId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/wildberriesTTN?deliveryId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/wildberriesTTN?deliveryId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/wildberriesTTN?deliveryId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки11
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_empty_driverПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_driver; localMessage содержит приведённый выше перевод.
error_empty_place_countПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_place_count; localMessage содержит приведённый выше перевод.
error_empty_place_unitПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_place_unit; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_supply_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_supply_not_found; localMessage содержит приведённый выше перевод.
Архив картинок Вайлдбериз для фотосессии
/api/export/wildberriesImagesВозвращает архив со списком папок - идентификаторов карточек Вайлдбериз и в каждой папке изображения товаров для загрузки на Вайлдбериз
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
photographyId |
integer · int64 | Да | Поле photographyId. |
organizationId |
integer · int64 | Да | Поле organizationId. |
curl --request GET 'https://api.selsup.ru/api/export/wildberriesImages?photographyId=1001&organizationId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/wildberriesImages?photographyId=1001&organizationId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/wildberriesImages?photographyId=1001&organizationId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/wildberriesImages?photographyId=1001&organizationId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/wildberriesImages?photographyId=1001&organizationId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/wildberriesImages?photographyId=1001&organizationId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/wildberriesImages?photographyId=1001&organizationId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Архив с изображениями товаров для Вайлдбериз
/api/export/wildberriesImagesByViewВозвращает архив в котором список папок с идентификаторами товаров Вайлдбериз для загрузки фотографий на Вайлдбериз
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
viewIds |
string | Да | Поле viewIds. |
curl --request GET 'https://api.selsup.ru/api/export/wildberriesImagesByView?viewIds=string' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/wildberriesImagesByView?viewIds=string', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/wildberriesImagesByView?viewIds=string', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/wildberriesImagesByView?viewIds=string',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/wildberriesImagesByView?viewIds=string',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/wildberriesImagesByView?viewIds=string", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/wildberriesImagesByView?viewIds=string"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_bad_requestПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_bad_request; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_invalid_pathПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_invalid_path; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
Excel для печати ТТН
/api/export/supplyPrintTTNВозвращает файл для печати товарно-транспортной накладной
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
deliveryId |
integer · int64 | Да | Поле deliveryId. |
curl --request GET 'https://api.selsup.ru/api/export/supplyPrintTTN?deliveryId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/supplyPrintTTN?deliveryId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/supplyPrintTTN?deliveryId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/supplyPrintTTN?deliveryId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/supplyPrintTTN?deliveryId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/supplyPrintTTN?deliveryId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/supplyPrintTTN?deliveryId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки11
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_empty_driverПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_driver; localMessage содержит приведённый выше перевод.
error_empty_place_countПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_place_count; localMessage содержит приведённый выше перевод.
error_empty_place_unitПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_place_unit; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_supply_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_supply_not_found; localMessage содержит приведённый выше перевод.
Excel для обновления остатков
/api/export/stocksВозвращает файл для обновления остатков на маркетплейсе
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
organizationId |
integer · int64 | Да | Поле organizationId. |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Да | Сервис |
curl --request GET 'https://api.selsup.ru/api/export/stocks?organizationId=1001&service=NONE' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/stocks?organizationId=1001&service=NONE', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/stocks?organizationId=1001&service=NONE', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/stocks?organizationId=1001&service=NONE',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/stocks?organizationId=1001&service=NONE',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/stocks?organizationId=1001&service=NONE", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/stocks?organizationId=1001&service=NONE"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки6
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_service_not_supportedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_service_not_supported; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
Пример файла для импорта комплектов через Excel
/api/export/setUpdatesTemplateВозвращает пример Excel файла для импорта комплектов
curl --request GET 'https://api.selsup.ru/api/export/setUpdatesTemplate' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/setUpdatesTemplate', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/setUpdatesTemplate', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/setUpdatesTemplate',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/setUpdatesTemplate',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/setUpdatesTemplate", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/setUpdatesTemplate"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки4
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
Excel с текущими остатками на маркетплейсах
/api/export/serviceStocksВозвращает файл для обновления остатков в SelSup при этом остатки берутся с маркетплейсов
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
organizationId |
integer · int64 | Да | Идентификатор организации |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Да | Сервис |
curl --request GET 'https://api.selsup.ru/api/export/serviceStocks?organizationId=1001&service=NONE' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/serviceStocks?organizationId=1001&service=NONE', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/serviceStocks?organizationId=1001&service=NONE', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/serviceStocks?organizationId=1001&service=NONE',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/serviceStocks?organizationId=1001&service=NONE',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/serviceStocks?organizationId=1001&service=NONE", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/serviceStocks?organizationId=1001&service=NONE"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Пример файла для импорта товаров Excel
/api/export/productsFileВозвращает пример Excel файла для импорта товаров через Excel
curl --request GET 'https://api.selsup.ru/api/export/productsFile' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/productsFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/productsFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/productsFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/productsFile',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/productsFile", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/productsFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки4
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
Получение заказа Озон
/api/export/ozonOrderВозвращает файл для создания заказа FBM на озон. В теле ответа будет Excel xslx файл
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int64 | Да | Поле orderId. |
curl --request GET 'https://api.selsup.ru/api/export/ozonOrder?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/ozonOrder?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/ozonOrder?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/ozonOrder?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/ozonOrder?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/ozonOrder?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/ozonOrder?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки17
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_base_creatingПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_base_creating; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_fulfillment_client_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_access_denied; localMessage содержит приведённый выше перевод.
error_fulfillment_client_contract_requiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_contract_required; localMessage содержит приведённый выше перевод.
error_fulfillment_request_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_request_invalid; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_price_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_price_for_order_product; localMessage содержит приведённый выше перевод.
error_no_quantity_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_quantity_for_order_product; localMessage содержит приведённый выше перевод.
error_order_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_order_not_found; localMessage содержит приведённый выше перевод.
error_organization_create_failedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_create_failed; localMessage содержит приведённый выше перевод.
error_organization_existsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_exists; localMessage содержит приведённый выше перевод.
error_reloadПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_reload; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_warehouse_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_warehouse_not_found; localMessage содержит приведённый выше перевод.
Файл накладной Озон
/api/export/ozonInvoiceВозвращает Excel файл с накладной для отгрузки товаров на Озон
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int64 | Да | Поле orderId. |
curl --request GET 'https://api.selsup.ru/api/export/ozonInvoice?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/ozonInvoice?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/ozonInvoice?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/ozonInvoice?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/ozonInvoice?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/ozonInvoice?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/ozonInvoice?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки16
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_empty_external_order_idПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_external_order_id; localMessage содержит приведённый выше перевод.
error_fulfillment_client_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_access_denied; localMessage содержит приведённый выше перевод.
error_fulfillment_request_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_request_invalid; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_invoice_numberПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_invoice_number; localMessage содержит приведённый выше перевод.
error_no_ozon_codeПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_ozon_code; localMessage содержит приведённый выше перевод.
error_no_price_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_price_for_order_product; localMessage содержит приведённый выше перевод.
error_no_quantity_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_quantity_for_order_product; localMessage содержит приведённый выше перевод.
error_order_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_order_not_found; localMessage содержит приведённый выше перевод.
error_organization_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_not_found; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_warehouse_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_warehouse_not_found; localMessage содержит приведённый выше перевод.
Архив с изображениями товаров для Ozon
/api/export/ozonImagesByViewВозвращает архив в котором список папок с идентификаторами товаров для загрузки фотографий на Ozon
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
viewIds |
string | Да | Поле viewIds. |
curl --request GET 'https://api.selsup.ru/api/export/ozonImagesByView?viewIds=string' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/ozonImagesByView?viewIds=string', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/ozonImagesByView?viewIds=string', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/ozonImagesByView?viewIds=string',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/ozonImagesByView?viewIds=string',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/ozonImagesByView?viewIds=string", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/ozonImagesByView?viewIds=string"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_bad_requestПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_bad_request; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_invalid_pathПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_invalid_path; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
Получение этикеток грузового места Ozon
/api/export/ozon/container-labelsВозвращает PDF-файл для с этикетками грузового места
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
supplyId |
integer · int64 | Да | Поле supplyId. |
curl --request GET 'https://api.selsup.ru/api/export/ozon/container-labels?supplyId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/ozon/container-labels?supplyId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/ozon/container-labels?supplyId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/ozon/container-labels?supplyId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/ozon/container-labels?supplyId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/ozon/container-labels?supplyId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/ozon/container-labels?supplyId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Файл ШК коробов Вайлдбериз / Озон
/api/export/orderBoxBarcodesВозвращает Excel файл со списком упакованных товаров по штрих-коду короба Вайлдбериз / Озон
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int64 | Да | Поле orderId. |
pallet |
boolean | Нет | Поле pallet. |
curl --request GET 'https://api.selsup.ru/api/export/orderBoxBarcodes?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/orderBoxBarcodes?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/orderBoxBarcodes?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/orderBoxBarcodes?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/orderBoxBarcodes?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/orderBoxBarcodes?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/orderBoxBarcodes?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Экспорт товаров из закупок у поставщиков
/api/export/incomeProductsFileВозвращает Excel файл со списком товаров из закупок
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
actual |
boolean | Нет | Показать только актуальные заказы |
query |
string | Нет | Поисковый запрос |
userOrganizations |
integer[] | Нет | Организации пользователя |
incomeId |
integer · int64 | Нет | Ид закупки |
limit |
integer · int32 | Нет | Ограничение на количество записей. Максимальное значение - 500 |
page |
integer · int32 | Нет | Номер страницы начиная с 1 |
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
stringID, NAME, CREATEDDATE, STATUS | Нет | Поле для сортировки |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
curl --request GET 'https://api.selsup.ru/api/export/incomeProductsFile?limit=50&page=1' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/incomeProductsFile?limit=50&page=1', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/incomeProductsFile?limit=50&page=1', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/incomeProductsFile?limit=50&page=1',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/incomeProductsFile?limit=50&page=1',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/incomeProductsFile?limit=50&page=1", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/incomeProductsFile?limit=50&page=1"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки5
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Файл с фотографиями Вайлдбериз для заказа
/api/export/getSupplyImagesToWildberriesСкачивает файл с архивом фотографий для загрузки на Вайлдбериз по заказу
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int32 | Да | Поле orderId. |
curl --request GET 'https://api.selsup.ru/api/export/getSupplyImagesToWildberries?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/getSupplyImagesToWildberries?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/getSupplyImagesToWildberries?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/getSupplyImagesToWildberries?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/getSupplyImagesToWildberries?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/getSupplyImagesToWildberries?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/getSupplyImagesToWildberries?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки14
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_empty_imagesПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_empty_images; localMessage содержит приведённый выше перевод.
error_fulfillment_client_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_access_denied; localMessage содержит приведённый выше перевод.
error_fulfillment_request_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_request_invalid; localMessage содержит приведённый выше перевод.
error_invalid_pathПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_invalid_path; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_price_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_price_for_order_product; localMessage содержит приведённый выше перевод.
error_no_quantity_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_quantity_for_order_product; localMessage содержит приведённый выше перевод.
error_order_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_order_not_found; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_warehouse_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_warehouse_not_found; localMessage содержит приведённый выше перевод.
Экспорт комплектов в Excel
/api/export/getProductSetsFileВозвращает Excel файл со списком комплектов
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
organizationId |
integer · int64 | Нет | Поле organizationId. |
curl --request GET 'https://api.selsup.ru/api/export/getProductSetsFile' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/getProductSetsFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/getProductSetsFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/getProductSetsFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/getProductSetsFile',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/getProductSetsFile", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/getProductSetsFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
TmsTask
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор задачи |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | Нет | Текущий статус задачи |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT, EXPORT_PURCHASE_PLAN_FILE_TASK, RETAIL_ORDER_PRODUCTS_FILE_TASK, FULFILLMENT_BILLING_REGISTRY_FILE_TASK, SUPPLY_PLANNING_REPORT_FILE_TASK, REBUILD_TAX_BASE_HOURLY_AGGREGATE_TASK, PACK_ORDERS_TASK, IMPORT_ORDER_MARKING_CODES_TASK, PRODUCTION_ANALYTICS_FILE_TASK, CARD_REQUIREMENT_AI_TASK, CARD_REQUIREMENT_SCAN_TASK, SUPPLY_LABELS_FILE_TASK, TRANSFER_PRODUCTS_BETWEEN_SERVICES_TASK, RETIRE_SOLD_OUT_CARDS_TASK, WILDBERRIES_CARDS_JOIN_TASK | Нет | Тип задачи |
name |
string | Нет | Данные задачи в json - могут быть пустыми |
clientId |
integer · int64 | Нет | Поле clientId. |
entityId |
integer · int64 | Нет | Сущность, к которой относится задача |
progress |
integer · int32 | Нет | Прогресс выполнения задачи в процентах |
processedQuantity |
integer · int32 | Нет | Количество обработанных записей задачи |
organizationId |
integer · int64 | Нет | Организация задачи, может быть 0, если не зависит от организации |
priority |
integer · int32 | Нет | Приоритет задачи - чем выше тем быстрее задача запустится |
properties |
string | Нет | Параметры задачи |
message |
string | Нет | Сообщение с результатом выполнения задачи |
messageParams |
string | Нет | Параметры сообщения с результатом выполнения задачи |
createdDate |
string · date-time | Нет | Дата добавления задачи в очередь |
startDate |
string · date-time | Нет | Дата запуска задачи |
finishDate |
string · date-time | Нет | Дата завершения задачи |
url |
string | Нет | Ссылка на скачивание файла с результатом задачи |
inputFileUrl |
string | Нет | Ссылка на загруженный файл |
retryNumber |
integer · int32 | Нет | Счётчик перезапуска задачи. |
userId |
integer · int32 | Нет | Пользователь запустивший задачу |
retryDate |
string · date-time | Нет | Запланированная дата перезапуска |
debug |
boolean | Нет | Запуск задачи в режиме отладки с большим логированием |
forcedStart |
boolean | Нет | Ручной запуск задачи |
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Сервис в рамках которого выполняется задача |
lang |
string | Нет | Язык на котором сейчас запущена таска |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Экспорт товаров из заказов в Excel по указанному фильтру
/api/export/getOrderProductВозвращает Excel файл со списком товаров по указанному фильтру
Параметры запроса
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
columns |
FileExportColumn[] | Нет | Настройки столбцов для экспорта отчета по заказам | ||||||||||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | ID записи |
fileExportId |
integer · int64 | Нет | ID конфигурации экспорта |
columnName |
string | Нет | Название столбца |
columnOrder |
integer · int32 | Нет | Порядок столбца в файле |
isEnabled |
boolean | Нет | Включен ли столбец для экспорта |
actualtypeotherShipmentsshipmentMethodshipmentPhaseserviceWarehouseIdexternalOrderIdinvoiceNumberarticlecontainsArticleproductbarcodeorganizationsqueryuserIdcloseUserIdserviceservicesstatusstatuseswithoutSupplyorderProductIdproductIdbrandIdsupplierIdhasCollectTaskorganizationIdclientOrganizationIdsfulfillmentClientIdupdateInServicehasServiceErrornoLabelisLegalnoMsOrdernoMsDemandidssupplyIdnotCollecteddbsexpressfbsnoWarehousecloseDatecheckedmodifiedDatemodifiedDateToincomeIdbindingOrderIdcloseDateFromcloseDateTodeliveryTransferDateFromdeliveryTransferDateToorderDatedeliveryDatedeliveryDateFromdeliveryDateTocreatedDateFromcreatedDateToforMoySkladwithMoySkladOrderwarehouseIdcategoryIdwarehouseIdsstockWarehouseIddateFromdateTotimeZonemarkingStatusdeletedcollectLabelsortOrdersByDatesortBySkunotGroupByOrganizationnotGroupByServicetargetCountproductLabelproductCodeLabelservicesForLabelinfoLabelgroupedreplaceSetByComponentreplaceSetsByComponentsIncomecollectDeliveryLabelshippingServicesForLabelorderIdhasVideoFixationwithProductspassageIdswithContractorboxIdsortTypehasMarkedProductshasMissingMarkingCodeswithAnalyticslimitpagecountsortByascendingcurl --request GET 'https://api.selsup.ru/api/export/getOrderProduct?limit=50&page=1' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/getOrderProduct?limit=50&page=1', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const response: Response = await fetch('https://api.selsup.ru/api/export/getOrderProduct?limit=50&page=1', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/getOrderProduct?limit=50&page=1',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/getOrderProduct?limit=50&page=1',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/getOrderProduct?limit=50&page=1", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/getOrderProduct?limit=50&page=1"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200Тело ответа пустое.
Ошибки18
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_base_creatingПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_base_creating; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_cell_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cell_not_found; localMessage содержит приведённый выше перевод.
error_export_busyПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_export_busy; localMessage содержит приведённый выше перевод.
error_fulfillment_client_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_access_denied; localMessage содержит приведённый выше перевод.
error_fulfillment_client_contract_requiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_contract_required; localMessage содержит приведённый выше перевод.
error_fulfillment_request_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_request_invalid; localMessage содержит приведённый выше перевод.
error_invalid_paramsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_invalid_params; localMessage содержит приведённый выше перевод.
error_no_price_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_price_for_order_product; localMessage содержит приведённый выше перевод.
error_no_quantity_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_quantity_for_order_product; localMessage содержит приведённый выше перевод.
error_order_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_order_not_found; localMessage содержит приведённый выше перевод.
error_organization_create_failedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_create_failed; localMessage содержит приведённый выше перевод.
error_organization_existsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_exists; localMessage содержит приведённый выше перевод.
error_reloadПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_reload; localMessage содержит приведённый выше перевод.
error_warehouse_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_warehouse_not_found; localMessage содержит приведённый выше перевод.
Экспорт акта приемки в Excel
/api/export/getAcceptedProductsActВозвращает Excel файл акта приемки
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int64 | Да | Поле orderId. |
curl --request GET 'https://api.selsup.ru/api/export/getAcceptedProductsAct?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/getAcceptedProductsAct?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/getAcceptedProductsAct?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/getAcceptedProductsAct?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/getAcceptedProductsAct?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/getAcceptedProductsAct?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/getAcceptedProductsAct?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки5
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_act_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_act_not_found; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Выгрузить заявку на отгрузку фулфилмента
/api/export/fulfillmentShipmentApplicationВыгрузить заявку на отгрузку фулфилмента.
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int64 | Да | Поле orderId. |
curl --request GET 'https://api.selsup.ru/api/export/fulfillmentShipmentApplication?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/fulfillmentShipmentApplication?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/fulfillmentShipmentApplication?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/fulfillmentShipmentApplication?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/fulfillmentShipmentApplication?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/fulfillmentShipmentApplication?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/fulfillmentShipmentApplication?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки18
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_base_creatingПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_base_creating; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_fulfillment_client_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_access_denied; localMessage содержит приведённый выше перевод.
error_fulfillment_client_contract_requiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_contract_required; localMessage содержит приведённый выше перевод.
error_fulfillment_request_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_request_invalid; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_price_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_price_for_order_product; localMessage содержит приведённый выше перевод.
error_no_quantity_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_quantity_for_order_product; localMessage содержит приведённый выше перевод.
error_order_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_order_not_found; localMessage содержит приведённый выше перевод.
error_organization_create_failedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_create_failed; localMessage содержит приведённый выше перевод.
error_organization_existsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_exists; localMessage содержит приведённый выше перевод.
error_reloadПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_reload; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_unsupported_serviceПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_unsupported_service; localMessage содержит приведённый выше перевод.
error_warehouse_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_warehouse_not_found; localMessage содержит приведённый выше перевод.
Excel файл для обновления остатков
/api/export/downloadStocksWbВозвращает Excel файл для загрузки остатков на Вайлдбериз
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int64 | Да | Поле orderId. |
curl --request GET 'https://api.selsup.ru/api/export/downloadStocksWb?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/downloadStocksWb?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/downloadStocksWb?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/downloadStocksWb?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/downloadStocksWb?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/downloadStocksWb?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/downloadStocksWb?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки12
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_fulfillment_client_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_access_denied; localMessage содержит приведённый выше перевод.
error_fulfillment_request_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_request_invalid; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_price_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_price_for_order_product; localMessage содержит приведённый выше перевод.
error_no_quantity_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_quantity_for_order_product; localMessage содержит приведённый выше перевод.
error_order_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_order_not_found; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_warehouse_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_warehouse_not_found; localMessage содержит приведённый выше перевод.
Excel файл для поставок товара на склад
/api/export/downloadProductsDeliveryЭндпоинт пока что возвращает Excel только для Яндекс Маркета
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
service |
stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Да | Сервис |
orderId |
integer · int64 | Да | Поле orderId. |
curl --request GET 'https://api.selsup.ru/api/export/downloadProductsDelivery?service=NONE&orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/downloadProductsDelivery?service=NONE&orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/downloadProductsDelivery?service=NONE&orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/downloadProductsDelivery?service=NONE&orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/downloadProductsDelivery?service=NONE&orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/downloadProductsDelivery?service=NONE&orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/downloadProductsDelivery?service=NONE&orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_marketplace_skuПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_marketplace_sku; localMessage содержит приведённый выше перевод.
error_service_not_supportedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_service_not_supported; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
Файл ЭДО накладной
/api/export/downloadInvoiceВозвращает файл для загрузки в ЭДО накладной
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int64 | Да | Поле orderId. |
format |
string | Нет | Поле format. |
withMark |
boolean | Нет | Поле withMark. |
includeSupplierArticle |
boolean | Нет | Поле includeSupplierArticle. |
curl --request GET 'https://api.selsup.ru/api/export/downloadInvoice?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/downloadInvoice?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/downloadInvoice?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/downloadInvoice?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/downloadInvoice?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/downloadInvoice?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/downloadInvoice?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Excel файл для загрузки заказа Вайлдбериз
/api/export/downloadBarcodeOrderВозвращает Excel файл со списком товаров для загрузки на Вайлдбериз
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
orderId |
integer · int64 | Да | Поле orderId. |
curl --request GET 'https://api.selsup.ru/api/export/downloadBarcodeOrder?orderId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/downloadBarcodeOrder?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/downloadBarcodeOrder?orderId=1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/downloadBarcodeOrder?orderId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/downloadBarcodeOrder?orderId=1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/downloadBarcodeOrder?orderId=1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/downloadBarcodeOrder?orderId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки17
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_base_creatingПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_base_creating; localMessage содержит приведённый выше перевод.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_fulfillment_client_access_deniedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_access_denied; localMessage содержит приведённый выше перевод.
error_fulfillment_client_contract_requiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_client_contract_required; localMessage содержит приведённый выше перевод.
error_fulfillment_request_invalidПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_fulfillment_request_invalid; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_no_price_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_price_for_order_product; localMessage содержит приведённый выше перевод.
error_no_quantity_for_order_productПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_quantity_for_order_product; localMessage содержит приведённый выше перевод.
error_order_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_order_not_found; localMessage содержит приведённый выше перевод.
error_organization_create_failedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_create_failed; localMessage содержит приведённый выше перевод.
error_organization_existsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_organization_exists; localMessage содержит приведённый выше перевод.
error_reloadПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_reload; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_warehouse_not_foundПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_warehouse_not_found; localMessage содержит приведённый выше перевод.
Excel файл списка покупателей
/api/export/customersFileВозвращает список покупателей с информацией о последнем заказанном товаре
curl --request GET 'https://api.selsup.ru/api/export/customersFile' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/customersFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/customersFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/customersFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/customersFile',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/customersFile", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/customersFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки6
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
Пример файла для импорта контрагентов
/api/export/contractorsFileВозвращает пример Excel файла со списком контрагентов
curl --request GET 'https://api.selsup.ru/api/export/contractorsFile' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/contractorsFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/contractorsFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/contractorsFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/contractorsFile',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/contractorsFile", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/contractorsFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Пример файла для импорта категорий
/api/export/categoriesFileВозвращает пример Excel файла со списком категорий
curl --request GET 'https://api.selsup.ru/api/export/categoriesFile' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/categoriesFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/categoriesFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/categoriesFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/categoriesFile',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/categoriesFile", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/categoriesFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки5
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
Скачать шаблон импорта категорий
/api/export/categoriesFileTemplateСкачать шаблон импорта категорий.
curl --request GET 'https://api.selsup.ru/api/export/categoriesFileTemplate' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/categoriesFileTemplate', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/categoriesFileTemplate', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/categoriesFileTemplate',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/categoriesFileTemplate',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/categoriesFileTemplate", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/categoriesFileTemplate"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Пример файла для импорта брендов
/api/export/brandsFileВозвращает пример Excel файла со списком брендов
curl --request GET 'https://api.selsup.ru/api/export/brandsFile' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/export/brandsFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/export/brandsFile', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/export/brandsFile',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/export/brandsFile',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/export/brandsFile", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/export/brandsFile"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.