Возвраты
Методы для работы с отчетами по возвратным отправлениям
Базовый URL:
https://api.selsup.ru
🔗 Обновление списка возвратов
Метод ставит в очередь задачу по загрузке перечня возвратов из маркетплейсов
POST
/api/return/download
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| productAnalyticField | "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" | Нет |
Агрегировать данные по сущности
|
| query | string | Нет |
Поисковый запрос для фильтрации аналитики
|
| withDuplicate | boolean | Нет |
Отдавать аналитику по дубликатам товаров
|
| limit | integer | Нет |
Количество записей в ответе
|
| page | integer | Нет |
Страница для навигации по страницам, начиная с 1
|
| sortBy | string | Нет |
Поле сортировки
|
| ascending | boolean | Нет |
Сортировать по возрастанию по полю sortBy
|
| id | integer | Нет |
Уникальный идентификатор
|
| isMarketPlaceStructure | boolean | Нет |
Идентификатор, получать данные только по маркетплейсу или по всем.
|
| isDashboard | boolean | Нет |
Идентификатор, запрос с дашборда или нет.
|
| analyticsField | "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" | Нет |
Агрегировать данные по model/product/view
|
| planDayCount | integer | Нет |
Кол-во дней для отчетов
|
| groupByView | boolean | Нет |
Сгруппировать по цвету
|
| warehouses | Array of integer | Нет |
Список идентификаторов складов
|
| regions | Array of string | Нет |
Список регионов
|
| group | boolean | Нет |
Сгруппировать данные
|
| calculationByOrders | boolean | Нет |
Делать расчет по заказанному количеству
|
| sourceReport | "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" | Нет |
Операция по которой выводить данные
|
| skipDayWithoutStocks | boolean | Нет |
Пропускать дни без остатков
|
| isSaleStructure | boolean | Нет |
Идентификатор, что нужно получить структуру по продажам
|
| isAveragePerOneUnit | boolean | Нет |
Идентификатор, получить среднее за 1 единицу
|
| updateDate | Date | Нет |
Обновлять даты
|
| useWeightedGroup | boolean | Нет |
Использовать группы по весу
|
| isFindirRequest | boolean | Нет |
Является ли запрос - запросом для Задачника
|
| brandIds | integer | Нет |
Фильтр по идентификаторам брендов (список)
|
| categoryIds | integer | Нет |
Фильтр по идентификаторам категорий (список)
|
| articles | Array of string | Нет |
Фильтр по артикулу (список)
|
| colors | Array of string | Нет |
Фильтр по цвету (список)
|
| sizes | Array of string | Нет |
Фильтр по размеру (список)
|
| barcodes | Array of string | Нет |
Фильтр по штрих-коду (список)
|
| penaltyFrom | number | Нет |
Фильтр по штрафам (от)
|
| penaltyTo | number | Нет |
Фильтр по штрафам (до)
|
| logisticsFrom | number | Нет |
Фильтр по логистике (от)
|
| logisticsTo | number | Нет |
Фильтр по логистике (до)
|
| marginFrom | number | Нет |
Фильтр по маржинальности (от)
|
| marginTo | number | Нет |
Фильтр по маржинальности (до)
|
| totalSalesAmountFrom | number | Нет |
Фильтр по сумме продаж (от)
|
| totalSalesAmountTo | number | Нет |
Фильтр по сумме продаж (до)
|
| grossProfitFrom | number | Нет |
Фильтр по валовой прибыли (от)
|
| grossProfitTo | number | Нет |
Фильтр по валовой прибыли (до)
|
| period | "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" | Нет |
Период агрегации
|
| dateFrom | Date | Нет |
Дата начала отчета
|
| dateTo | Date | Нет |
Дата окончания отчета
|
| services | Array of string | Нет |
Список маркетплейсов для которых отдать данные
|
| categories | Array of integer | Нет |
Фильтр категорий для которых отдать данные
|
| brands | Array of integer | Нет |
Фильтр брендов для которых отдать данные
|
| clientOrganizationId | integer | Нет |
Идентификатор организации, для которой отдать данные
|
| organizations | Array of integer | Нет |
Идентификаторы организаций клиента
|
| ids | Array of integer | Нет |
Список идентификаторов
|
| type | "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" | Нет |
Тип заказа
|
| types | Array of string | Нет |
Типы заказа
|
| status | "CREATED""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" | Нет |
Фильтр по статусу заказа
|
| timeZone | integer | Нет |
Часовой пояс клиента по UTC
|
| previousDateFrom | Date | Нет |
Дата начала периода для сравнения
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| processedQuantity > | integer | Количество обработанных записей задачи |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланированная дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
| service > | string | Сервис |
| lang > | string | Язык на котором сейчас запущена таска |
⚠ 400
Ошибка с данными запроса
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| error Обязательный > | string | Код ошибки |
| localMessage Обязательный > | string | Текст ошибки на языке пользователя |
| params > | object | Дополнительные параметры ошибки |
⚠ 403
Доступ запрещен
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| error Обязательный > | string | Код ошибки |
✗ 500
Внутренняя ошибка сервера
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| error Обязательный > | string | Код ошибки |
| message > | string | Описание ошибки |
| system > | string | Системная ошибки парсинга данных запроса |
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод
Примеры кода
const axios = require('axios');
const params = {
productAnalyticField: 'BARCODE',
query: 'Пример query',
withDuplicate: 'true',
limit: '100',
page: '1',
sortBy: 'Пример sortBy',
ascending: 'true',
id: 'Иванович',
isMarketPlaceStructure: 'true',
isDashboard: 'true',
analyticsField: 'PRODUCT',
planDayCount: '42',
groupByView: 'true',
warehouses: '',
regions: 'Московская область',
group: 'true',
calculationByOrders: 'true',
sourceReport: 'DEFAULT',
skipDayWithoutStocks: 'true',
isSaleStructure: 'true',
isAveragePerOneUnit: 'true',
updateDate: 'true',
useWeightedGroup: 'true',
isFindirRequest: 'true',
brandIds: '',
categoryIds: '',
articles: 'ART-001',
colors: '',
sizes: '',
barcodes: '4600123456789',
penaltyFrom: '1',
penaltyTo: '1',
logisticsFrom: '1',
logisticsTo: '1',
marginFrom: '1',
marginTo: '1',
totalSalesAmountFrom: '2500',
totalSalesAmountTo: '2500',
grossProfitFrom: '1',
grossProfitTo: '1',
period: 'DAY',
dateFrom: '2024-01-15T10:30:00Z',
dateTo: '2024-01-15T10:30:00Z',
services: '',
categories: '',
brands: '',
clientOrganizationId: 'АО "Торговый дом"',
organizations: 'АО "Торговый дом"',
ids: '',
type: 'standard',
types: 'standard',
status: 'active',
timeZone: '1',
previousDateFrom: '2024-01-15T10:30:00Z',
};
const response = await axios.post('https://api.selsup.ru/api/return/download',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
productAnalyticField?: string;
query?: string;
withDuplicate?: string;
limit?: number;
page?: number;
sortBy?: string;
ascending?: string;
id?: number;
isMarketPlaceStructure?: string;
isDashboard?: string;
analyticsField?: string;
planDayCount?: number;
groupByView?: string;
warehouses?: string;
regions?: string;
group?: string;
calculationByOrders?: string;
sourceReport?: string;
skipDayWithoutStocks?: string;
isSaleStructure?: string;
isAveragePerOneUnit?: string;
updateDate?: string;
useWeightedGroup?: string;
isFindirRequest?: string;
brandIds?: string;
categoryIds?: string;
articles?: string;
colors?: string;
sizes?: string;
barcodes?: string;
penaltyFrom?: number;
penaltyTo?: number;
logisticsFrom?: number;
logisticsTo?: number;
marginFrom?: number;
marginTo?: number;
totalSalesAmountFrom?: number;
totalSalesAmountTo?: number;
grossProfitFrom?: number;
grossProfitTo?: number;
period?: string;
dateFrom?: string;
dateTo?: string;
services?: string;
categories?: string;
brands?: string;
clientOrganizationId?: number;
organizations?: string;
ids?: string;
type?: string;
types?: string;
status?: string;
timeZone?: number;
previousDateFrom?: string;
}
const params: QueryParams = {
productAnalyticField: 'BARCODE',
query: 'Пример query',
withDuplicate: 'true',
limit: '100',
page: '1',
sortBy: 'Пример sortBy',
ascending: 'true',
id: 'Иванович',
isMarketPlaceStructure: 'true',
isDashboard: 'true',
analyticsField: 'PRODUCT',
planDayCount: '42',
groupByView: 'true',
warehouses: '',
regions: 'Московская область',
group: 'true',
calculationByOrders: 'true',
sourceReport: 'DEFAULT',
skipDayWithoutStocks: 'true',
isSaleStructure: 'true',
isAveragePerOneUnit: 'true',
updateDate: 'true',
useWeightedGroup: 'true',
isFindirRequest: 'true',
brandIds: '',
categoryIds: '',
articles: 'ART-001',
colors: '',
sizes: '',
barcodes: '4600123456789',
penaltyFrom: '1',
penaltyTo: '1',
logisticsFrom: '1',
logisticsTo: '1',
marginFrom: '1',
marginTo: '1',
totalSalesAmountFrom: '2500',
totalSalesAmountTo: '2500',
grossProfitFrom: '1',
grossProfitTo: '1',
period: 'DAY',
dateFrom: '2024-01-15T10:30:00Z',
dateTo: '2024-01-15T10:30:00Z',
services: '',
categories: '',
brands: '',
clientOrganizationId: 'АО "Торговый дом"',
organizations: 'АО "Торговый дом"',
ids: '',
type: 'standard',
types: 'standard',
status: 'active',
timeZone: '1',
previousDateFrom: '2024-01-15T10:30:00Z',
};
const response = await axios.post<any>('https://api.selsup.ru/api/return/download',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import requests
headers = {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
params = {
'productAnalyticField': 'BARCODE',
'query': 'Пример query',
'withDuplicate': 'true',
'limit': '100',
'page': '1',
'sortBy': 'Пример sortBy',
'ascending': 'true',
'id': 'Иванович',
'isMarketPlaceStructure': 'true',
'isDashboard': 'true',
'analyticsField': 'PRODUCT',
'planDayCount': '42',
'groupByView': 'true',
'warehouses': '',
'regions': 'Московская область',
'group': 'true',
'calculationByOrders': 'true',
'sourceReport': 'DEFAULT',
'skipDayWithoutStocks': 'true',
'isSaleStructure': 'true',
'isAveragePerOneUnit': 'true',
'updateDate': 'true',
'useWeightedGroup': 'true',
'isFindirRequest': 'true',
'brandIds': '',
'categoryIds': '',
'articles': 'ART-001',
'colors': '',
'sizes': '',
'barcodes': '4600123456789',
'penaltyFrom': '1',
'penaltyTo': '1',
'logisticsFrom': '1',
'logisticsTo': '1',
'marginFrom': '1',
'marginTo': '1',
'totalSalesAmountFrom': '2500',
'totalSalesAmountTo': '2500',
'grossProfitFrom': '1',
'grossProfitTo': '1',
'period': 'DAY',
'dateFrom': '2024-01-15T10:30:00Z',
'dateTo': '2024-01-15T10:30:00Z',
'services': '',
'categories': '',
'brands': '',
'clientOrganizationId': 'АО "Торговый дом"',
'organizations': 'АО "Торговый дом"',
'ids': '',
'type': 'standard',
'types': 'standard',
'status': 'active',
'timeZone': '1',
'previousDateFrom': '2024-01-15T10:30:00Z',
}
response = requests.post(
'https://api.selsup.ru/api/return/download',
headers=headers,
params=params
)
print(response.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
client := &http.Client{}
req, _ := http.NewRequest("post", "https://api.selsup.ru/api/return/download?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=®ions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
req.Header.Set("Authorization", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.selsup.ru/api/return/download?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=®ions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
.header("Authorization", "YOUR_API_KEY")
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();
$params = [
'productAnalyticField' => 'BARCODE',
'query' => 'Пример query',
'withDuplicate' => 'true',
'limit' => '100',
'page' => '1',
'sortBy' => 'Пример sortBy',
'ascending' => 'true',
'id' => 'Иванович',
'isMarketPlaceStructure' => 'true',
'isDashboard' => 'true',
'analyticsField' => 'PRODUCT',
'planDayCount' => '42',
'groupByView' => 'true',
'warehouses' => '',
'regions' => 'Московская область',
'group' => 'true',
'calculationByOrders' => 'true',
'sourceReport' => 'DEFAULT',
'skipDayWithoutStocks' => 'true',
'isSaleStructure' => 'true',
'isAveragePerOneUnit' => 'true',
'updateDate' => 'true',
'useWeightedGroup' => 'true',
'isFindirRequest' => 'true',
'brandIds' => '',
'categoryIds' => '',
'articles' => 'ART-001',
'colors' => '',
'sizes' => '',
'barcodes' => '4600123456789',
'penaltyFrom' => '1',
'penaltyTo' => '1',
'logisticsFrom' => '1',
'logisticsTo' => '1',
'marginFrom' => '1',
'marginTo' => '1',
'totalSalesAmountFrom' => '2500',
'totalSalesAmountTo' => '2500',
'grossProfitFrom' => '1',
'grossProfitTo' => '1',
'period' => 'DAY',
'dateFrom' => '2024-01-15T10:30:00Z',
'dateTo' => '2024-01-15T10:30:00Z',
'services' => '',
'categories' => '',
'brands' => '',
'clientOrganizationId' => 'АО "Торговый дом"',
'organizations' => 'АО "Торговый дом"',
'ids' => '',
'type' => 'standard',
'types' => 'standard',
'status' => 'active',
'timeZone' => '1',
'previousDateFrom' => '2024-01-15T10:30:00Z',
];
$url = 'https://api.selsup.ru/api/return/download?' . http_build_query($params);
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'post',
CURLOPT_HTTPHEADER => [
'Authorization: YOUR_API_KEY',
'Content-Type: application/json'
]
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl -X post \ 'https://api.selsup.ru/api/return/download?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=®ions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Поиск возвратов
Возвращает список возвратных отправлений, найденных по фильтру
GET
/api/return/find
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| id | integer | Нет |
ID возврата
|
| organizationId | integer | Нет |
Идентификатор организации.
|
| orderType | "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" | Нет |
Тип заказа FBO/FBS.
|
| orderBarcode | string | Нет |
Штрих-код изначального отправления (Ozon: clearing_id).
|
| services | Array of string | Нет |
Маркетплейсы по которым показать данные
|
| barcode | string | Нет |
Штрих-код на возвратном отправлении (Ozon: return_barcode, WB: shkId).
|
| productBarcode | string | Нет |
Штрих-код на возвратном отправлении (WB: barcode).
|
| article | string | Нет |
Артикул товара на момент создания возврата.
|
| externalOrderId | integer | Нет |
Номер отправления на маркетплейсе (Ozon: posting_number, WB: stickerId, ЯМ: orderId).
|
| returnOrderId | integer | Нет |
Номер возвратного отправления (Ozon: return_clearing_id, WB: srid, ЯМ:id).
|
| externalProductId | integer | Нет |
ID товара на маркетплейсе (Ozon: product_id, WB: nmId).
|
| officeId | integer | Нет |
ID офиса/ПВЗ маркетплейса (Ozon: place_id, WB: dstOfficeId).
|
| officeAddress | string | Нет |
Адрес офиса/ПВЗ маркетплейса (WB: dstOfficeAddress).
|
| orderId | integer | Нет |
ID заказа SelSup
|
| orderProductId | integer | Нет |
ID позиции заказа SelSup
|
| returnReasonName | string | Нет |
Причина возврата (Ozon: return_reason_name)
|
| status | string | Нет |
Статус возврата
|
| modifyDate | Date | Нет |
Дата последнего изменения статуса или полей возвратного отправления.
|
| dateFrom | Date | Нет |
Дата с которой ищем возвраты.
|
| dateTo | Date | Нет |
Дата до которой ищем возвраты.
|
| modifiedDateFrom | Date | Нет |
Дата с которой ищем возвраты.
|
| modifiedDateTo | Date | Нет |
Дата до которой ищем возвраты.
|
| limit | integer | Нет |
Ограничение на количество записей. Максимальное значение - 500
|
| page | integer | Нет |
Номер страницы начиная с 1
|
| count | boolean | Нет |
Возвратить в ответе общее количество записей
|
| sortBy | "ID""ORDER_TYPE""ORDER_BARCODE""BARCODE""PRODUCT_BARCODE""ARTICLE""EXTERNAL_ORDER_ID""RETURN_ORDER_ID""EXTERNAL_PRODUCT_ID""QUANTITY""OFFICE_ID""OFFICE_ADDRESS""ORDER_ID""PRICE""CURRENCY_CODE""SERVICE_ID""CREATED_DATE""RETURN_DATE""RETURN_REASON_NAME""STATUS""MODIFY_DATE" | Нет |
Поле для сортировки
|
| ascending | boolean | Нет |
Порядок сортировки - по возрастанию?. Работает только при получении списка.
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
Тип ответа:
ReturnReport
Элементы массива
| Поле | Тип | Описание | |
|---|---|---|---|
| id | integer | Нет | Идентификатор возврата. |
| orderType | string | Нет | Тип заказа FBO/FBS. |
| orderBarcode | string | Нет | Штрих-код изначального отправления (Ozon: clearing_id). |
| barcode | string | Нет | Штрих-код на возвратном отправлении (Ozon: return_barcode, WB: shkId). |
| productBarcode | string | Нет | Штрих-код на возвратном отправлении (WB: barcode). |
| article | string | Нет | Артикул товара на момент создания возврата. |
| externalOrderId | string | Нет | Номер отправления на маркетплейсе (Ozon: posting_number, WB: stickerId, ЯМ: orderId). |
| returnOrderId | string | Нет | Номер возвратного отправления (Ozon: return_clearing_id, WB: srid, ЯМ:id). |
| externalProductId | integer | Нет | Идентификатор товара на маркетплейсе (Ozon: product_id, WB: nmId, YM: marketSku). |
| quantity | integer | Нет | Количество товара для возврата, WB: 1 всегда. |
| officeId | integer | Нет | Идентификатор офиса/ПВЗ маркетплейса (Ozon: place_id, WB: dstOfficeId). |
| officeAddress | string | Нет | Адрес офиса/ПВЗ маркетплейса (WB: dstOfficeAddress). |
| orderId | integer | Нет | Идентификатор заказа SelSup. |
| price | number | Нет | Цена товара. |
| currencyCode | string | Нет | Валюта. |
| orderProductId | integer | Нет | Идентификатор позиции заказа SelSup. |
| returnDate | string | Нет | Дата возврата (Ozon: return_date, WB: orderDt). |
| returnReasonName | string | Нет | Причина возврата (Ozon: return_reason_name). |
| status | string | Нет | Статус возврата. |
| modifyDate | string | Нет | Дата последнего изменения статуса или полей возвратного отправления. |
| createdDate | string | Нет | Дата создания записи о возврате. |
| uniqueId | string | Нет | Уникальный идентификатор |
| service | string | Нет | Сервис |
| productId | integer | Нет | Идентификатор продукта |
| productViewId | integer | Нет | Идентификатор представления продукта |
| productModelId | integer | Нет | Идентификатор модели продукта |
| clientId | integer | Нет | Идентификатор клиента |
| organizationId | integer | Нет | Идентификатор организации |
⚠ 400
Ошибка с данными запроса
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| error Обязательный > | string | Код ошибки |
| localMessage Обязательный > | string | Текст ошибки на языке пользователя |
| params > | object | Дополнительные параметры ошибки |
⚠ 403
Доступ запрещен
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| error Обязательный > | string | Код ошибки |
✗ 500
Внутренняя ошибка сервера
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| error Обязательный > | string | Код ошибки |
| message > | string | Описание ошибки |
| system > | string | Системная ошибки парсинга данных запроса |
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод
Примеры кода
const axios = require('axios');
const params = {
id: 'Иванович',
organizationId: 'АО "Торговый дом"',
orderType: 'standard',
orderBarcode: '4600123456789',
services: '',
barcode: '4600123456789',
productBarcode: '4600123456789',
article: 'ART-001',
externalOrderId: 'Пример externalOrderId',
returnOrderId: 'Пример returnOrderId',
externalProductId: '123',
officeId: '101',
officeAddress: 'г. Москва, ул. Ленина, д. 1, оф. 101',
orderId: '123',
orderProductId: '123',
returnReasonName: 'Название returnReasonName',
status: 'active',
modifyDate: '2024-01-15T10:30:00Z',
dateFrom: '2024-01-15T10:30:00Z',
dateTo: '2024-01-15T10:30:00Z',
modifiedDateFrom: '2024-01-15T10:30:00Z',
modifiedDateTo: '2024-01-15T10:30:00Z',
limit: '100',
page: '1',
count: 'Россия',
sortBy: 'ID',
ascending: 'true',
};
const response = await axios.get('https://api.selsup.ru/api/return/find',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
id?: number;
organizationId?: number;
orderType?: string;
orderBarcode?: string;
services?: string;
barcode?: string;
productBarcode?: string;
article?: string;
externalOrderId?: string;
returnOrderId?: string;
externalProductId?: number;
officeId?: number;
officeAddress?: string;
orderId?: number;
orderProductId?: number;
returnReasonName?: string;
status?: string;
modifyDate?: string;
dateFrom?: string;
dateTo?: string;
modifiedDateFrom?: string;
modifiedDateTo?: string;
limit?: number;
page?: number;
count?: string;
sortBy?: string;
ascending?: string;
}
const params: QueryParams = {
id: 'Иванович',
organizationId: 'АО "Торговый дом"',
orderType: 'standard',
orderBarcode: '4600123456789',
services: '',
barcode: '4600123456789',
productBarcode: '4600123456789',
article: 'ART-001',
externalOrderId: 'Пример externalOrderId',
returnOrderId: 'Пример returnOrderId',
externalProductId: '123',
officeId: '101',
officeAddress: 'г. Москва, ул. Ленина, д. 1, оф. 101',
orderId: '123',
orderProductId: '123',
returnReasonName: 'Название returnReasonName',
status: 'active',
modifyDate: '2024-01-15T10:30:00Z',
dateFrom: '2024-01-15T10:30:00Z',
dateTo: '2024-01-15T10:30:00Z',
modifiedDateFrom: '2024-01-15T10:30:00Z',
modifiedDateTo: '2024-01-15T10:30:00Z',
limit: '100',
page: '1',
count: 'Россия',
sortBy: 'ID',
ascending: 'true',
};
const response = await axios.get<any>('https://api.selsup.ru/api/return/find',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import requests
headers = {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
params = {
'id': 'Иванович',
'organizationId': 'АО "Торговый дом"',
'orderType': 'standard',
'orderBarcode': '4600123456789',
'services': '',
'barcode': '4600123456789',
'productBarcode': '4600123456789',
'article': 'ART-001',
'externalOrderId': 'Пример externalOrderId',
'returnOrderId': 'Пример returnOrderId',
'externalProductId': '123',
'officeId': '101',
'officeAddress': 'г. Москва, ул. Ленина, д. 1, оф. 101',
'orderId': '123',
'orderProductId': '123',
'returnReasonName': 'Название returnReasonName',
'status': 'active',
'modifyDate': '2024-01-15T10:30:00Z',
'dateFrom': '2024-01-15T10:30:00Z',
'dateTo': '2024-01-15T10:30:00Z',
'modifiedDateFrom': '2024-01-15T10:30:00Z',
'modifiedDateTo': '2024-01-15T10:30:00Z',
'limit': '100',
'page': '1',
'count': 'Россия',
'sortBy': 'ID',
'ascending': 'true',
}
response = requests.get(
'https://api.selsup.ru/api/return/find',
headers=headers,
params=params
)
print(response.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
client := &http.Client{}
req, _ := http.NewRequest("get", "https://api.selsup.ru/api/return/find?id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&orderType=standard&orderBarcode=4600123456789&services=&barcode=4600123456789&productBarcode=4600123456789&article=ART-001&externalOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20externalOrderId&returnOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20returnOrderId&externalProductId=123&officeId=101&officeAddress=%D0%B3.%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D1%83%D0%BB.%20%D0%9B%D0%B5%D0%BD%D0%B8%D0%BD%D0%B0%2C%20%D0%B4.%201%2C%20%D0%BE%D1%84.%20101&orderId=123&orderProductId=123&returnReasonName=%D0%9D%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20returnReasonName&status=active&modifyDate=2024-01-15T10%3A30%3A00Z&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&modifiedDateFrom=2024-01-15T10%3A30%3A00Z&modifiedDateTo=2024-01-15T10%3A30%3A00Z&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true", nil)
req.Header.Set("Authorization", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.selsup.ru/api/return/find?id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&orderType=standard&orderBarcode=4600123456789&services=&barcode=4600123456789&productBarcode=4600123456789&article=ART-001&externalOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20externalOrderId&returnOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20returnOrderId&externalProductId=123&officeId=101&officeAddress=%D0%B3.%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D1%83%D0%BB.%20%D0%9B%D0%B5%D0%BD%D0%B8%D0%BD%D0%B0%2C%20%D0%B4.%201%2C%20%D0%BE%D1%84.%20101&orderId=123&orderProductId=123&returnReasonName=%D0%9D%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20returnReasonName&status=active&modifyDate=2024-01-15T10%3A30%3A00Z&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&modifiedDateFrom=2024-01-15T10%3A30%3A00Z&modifiedDateTo=2024-01-15T10%3A30%3A00Z&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true"))
.header("Authorization", "YOUR_API_KEY")
.header("Content-Type", "application/json")
.get(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();
$params = [
'id' => 'Иванович',
'organizationId' => 'АО "Торговый дом"',
'orderType' => 'standard',
'orderBarcode' => '4600123456789',
'services' => '',
'barcode' => '4600123456789',
'productBarcode' => '4600123456789',
'article' => 'ART-001',
'externalOrderId' => 'Пример externalOrderId',
'returnOrderId' => 'Пример returnOrderId',
'externalProductId' => '123',
'officeId' => '101',
'officeAddress' => 'г. Москва, ул. Ленина, д. 1, оф. 101',
'orderId' => '123',
'orderProductId' => '123',
'returnReasonName' => 'Название returnReasonName',
'status' => 'active',
'modifyDate' => '2024-01-15T10:30:00Z',
'dateFrom' => '2024-01-15T10:30:00Z',
'dateTo' => '2024-01-15T10:30:00Z',
'modifiedDateFrom' => '2024-01-15T10:30:00Z',
'modifiedDateTo' => '2024-01-15T10:30:00Z',
'limit' => '100',
'page' => '1',
'count' => 'Россия',
'sortBy' => 'ID',
'ascending' => 'true',
];
$url = 'https://api.selsup.ru/api/return/find?' . http_build_query($params);
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'get',
CURLOPT_HTTPHEADER => [
'Authorization: YOUR_API_KEY',
'Content-Type: application/json'
]
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
curl -X get \ 'https://api.selsup.ru/api/return/find?id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&orderType=standard&orderBarcode=4600123456789&services=&barcode=4600123456789&productBarcode=4600123456789&article=ART-001&externalOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20externalOrderId&returnOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20returnOrderId&externalProductId=123&officeId=101&officeAddress=%D0%B3.%20%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C%20%D1%83%D0%BB.%20%D0%9B%D0%B5%D0%BD%D0%B8%D0%BD%D0%B0%2C%20%D0%B4.%201%2C%20%D0%BE%D1%84.%20101&orderId=123&orderProductId=123&returnReasonName=%D0%9D%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20returnReasonName&status=active&modifyDate=2024-01-15T10%3A30%3A00Z&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&modifiedDateFrom=2024-01-15T10%3A30%3A00Z&modifiedDateTo=2024-01-15T10%3A30%3A00Z&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'