openapi: 3.0.0
info:
contact:
email: supportautoload@avito.ru
description: 'API для взаимодействия с иерархией аккаунтов в Авито
**Авито API для бизнеса предоставляется согласно [Условиям использования](https://www.avito.ru/legal/pro_tools/public-api).**
'
title: Иерархия Аккаунтов Access ParcelProcessing API
version: '1'
servers:
- url: https://api.avito.ru/
tags:
- name: ParcelProcessing
x-displayName: Процессинг посылок
x-subdivName: Процессинг посылок
paths:
/createParcel:
parameters:
- $ref: '#/components/parameters/authHeader'
post:
description: 'Метод реализуется на стороне службы доставки.
Описание механики работы и дополнительные требования см. [здесь](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/sozdanie_posylki).
'
operationId: createParcel
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateParcelRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateParcelResponse'
description: Посылка создана / случилась ошибка.
'401':
$ref: '#/components/responses/DeliveryUnauthorized'
'403':
$ref: '#/components/responses/DeliveryForbidden'
'500':
$ref: '#/components/responses/DeliveryInternalServerError'
summary: Создание посылки
tags:
- ParcelProcessing
/delivery-sandbox/cancelParcel:
parameters:
- $ref: '#/components/parameters/authHeader'
post:
description: 'Метод должен быть имплементирован на стороне службы доставки.
Описание механики работы и дополнительные требования см. [здесь](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/otmena_posylki).
'
operationId: cancelParcel
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/cancelParcelRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/cancelParcelReply'
description: OK
'401':
$ref: '#/components/responses/DeliveryUnauthorized'
'500':
$ref: '#/components/responses/DeliveryInternalServerError'
summary: Отмена посылки
tags:
- ParcelProcessing
/delivery-sandbox/order/checkConfirmationCode:
parameters:
- $ref: '#/components/parameters/authHeader'
post:
description: 'Метод для проверки службой доставки кода подтверждения, который пользователь показал на пункте выдачи заказа.
### Статус проверки кода
| status | Значение |
|-------------|-----------------------------------------------|
| success | Код верный. |
| fail | Код неверный. |
| expired | Код подтверждения устарел. |
| attempts | Превышено максимальное количество попыток. |
'
operationId: checkConfirmationCode
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CheckConfirmationCodeRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CheckConfirmationCodeReply'
description: OK
'401':
$ref: '#/components/responses/DeliveryUnauthorized'
'403':
$ref: '#/components/responses/DeliveryForbidden'
'500':
$ref: '#/components/responses/DeliveryInternalServerError'
security:
- ClientCredentials: []
summary: Проверка кода подтверждения
tags:
- ParcelProcessing
/delivery-sandbox/order/properties:
parameters:
- $ref: '#/components/parameters/authHeader'
post:
description: 'Метод используется для отправки в Avito параметров, относящихся к доставке посылки.
В случае повторной передачи параметров, данные будут перезаписаны.
Важно передавать актуальные данные. Например, если конечная стоимость доставки заказа изменилась, нужно отправить ее заново.
### Описание ошибок
| http code | error code | error message |
|-----------|----------------------|---------------------------------------------------|
| 200 | ORDER_ID_INVALID | Could not found order by id and provider name |
| 200 | ORDER_ID_INVALID | Incorrect order id |
| 200 | PROPERTIES_INVALID | Failed to get properties from request |
| 200 | PROPERTIES_INVALID | Empty body |
| 200 | PROPERTIES_INVALID | Dimensions array must have 3 element |
| 200 | PROPERTIES_INVALID | Dimension must be greater than 0 |
| 200 | PROPERTIES_INVALID | Weight must be greater than 0 |
| 200 | PROPERTIES_INVALID | Delivery cost must be positive integer number |
| 200 | PROPERTIES_INVALID | Forbidden terminal change in current order status |
| 200 | PROPERTIES_INVALID | Both terminals cannot be changed |
'
operationId: setOrderProperties
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeliverySetOrderPropertiesRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DeliverySetOrderPropertiesReply'
description: OK
'401':
$ref: '#/components/responses/DeliveryUnauthorized'
'403':
$ref: '#/components/responses/DeliveryForbidden'
'500':
$ref: '#/components/responses/DeliveryInternalServerError'
security:
- ClientCredentials: []
summary: Добавление / изменение параметров доставки посылки
tags:
- ParcelProcessing
/delivery-sandbox/order/realAddress:
parameters:
- $ref: '#/components/parameters/authHeader'
post:
description: "### Фактический ПВЗ приема\nФактический ПВЗ приема посылки посылки нужен Avito для работы как с [агентскими](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/agentskie_vozvraty), так и с [клиентскими](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/klientskie_vozvraty) возвратами. \nЕсли получатель посылки откажется от её получения \"на месте\", то Avito понадобится показать ПВЗ возврата\nотправителю, а этим ПВЗ будет фактический ПВЗ приема. Если же посылку нужно будет вернуть отправителю через клиентский \nвозврат, то для создания отдельной возвратной посылки Avito критически важно знать тот же фактический ПВЗ приема.
\n\nПрисылайте адрес в момент приема посылки от отправителя или чуть позже, если нет возможности это делать сразу.
\n\n### Фактический адрес возврата\nПВЗ, из которого забрали возврат.
\n\n### Про повторные запросы\nВ случае повторной передачи новые данные будут записаны.
\n\n### Описание ошибок\n| http code | error code | error message |\n|-----------|------------------------|-----------------------------------------------|\n| 200 | ORDER_ID_INVALID | Could not found order by id and provider name |\n| 200 | ORDER_ID_INVALID | Incorrect order id |\n| 200 | REAL_ADDRESS_INVALID | Failed to get real address from request |\n| 200 | REAL_ADDRESS_INVALID | Incorrect terminal type |\n| 200 | REAL_ADDRESS_INVALID | Incorrect terminal number |\n"
operationId: setOrderRealAddress
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeliverySetRealAddressRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DeliverySetOrderPropertiesReply'
description: OK
'401':
$ref: '#/components/responses/DeliveryUnauthorized'
'403':
$ref: '#/components/responses/DeliveryForbidden'
'500':
$ref: '#/components/responses/DeliveryInternalServerError'
security:
- ClientCredentials: []
summary: Фактический адрес приёма / возврата посылки
tags:
- ParcelProcessing
/delivery-sandbox/order/tracking:
parameters:
- $ref: '#/components/parameters/authHeader'
post:
description: '
Метод для передачи информации по трекингу посылки от службы доставки в Avito.
Механика работы и прочие важные моменты описаны в [разделе](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/treking).
Обязательно ознакомьтесь и реализуйте [политику повторов запросов](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/politika_povtorov_v_trekinge).
'
operationId: tracking
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryTrackingRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DeliverySetStatusReply'
description: OK
'401':
$ref: '#/components/responses/DeliveryUnauthorized'
'403':
$ref: '#/components/responses/DeliveryForbidden'
'500':
$ref: '#/components/responses/DeliveryInternalServerError'
security:
- ClientCredentials: []
summary: Трекинг
tags:
- ParcelProcessing
/delivery-sandbox/prohibitOrderAcceptance:
parameters:
- $ref: '#/components/parameters/authHeader'
post:
description: 'Метод должен быть имплементирован на стороне службы доставки.
Описание механики работы и дополнительные требования см. [здесь](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/zapret_priema_posylki).
'
operationId: prohibitOrderAcceptance
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/prohibitOrderAcceptanceRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/prohibitOrderAcceptanceReply'
description: OK
'401':
$ref: '#/components/responses/DeliveryUnauthorized'
'500':
$ref: '#/components/responses/DeliveryInternalServerError'
summary: Запрет приёма посылки от отправителя
tags:
- ParcelProcessing
/delivery/order/changeParcelResult:
parameters:
- $ref: '#/components/parameters/authHeader'
post:
description: 'Описание механики изменения посылок [здесь](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/izmenenie_svoystv_posylok).
Метод для передачи результата исполнения заявки, созданной с помощью метода [/changeParcels](#operation/ChangeParcels).
### Описание ошибок
| http code | error code | причина ошибки |
|-----------|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 200 | ID_INVALID | “id” заявки невалидный. |
| 200 | NOT_FOUND | заявка с “id” не найдена. |
| 200 | STATUS_INVALID | заявка не может быть переведена в статус указанный в запросе. |
| 200 | FAILED_REASON_MISSES | отсутствует причина, по которой заявка не может быть исполнена. Данный код ошибки будет возвращен при статусе заявки declined и отсутствующем или пустом поле reason.|
| 200 | PARCEL_CLOSED | посылка, связанная с заявкой, уже неактивная (была получена, утеряна или ушла на возвратное движение). |
### Порядок повторных попыток
- ID_INVALID, NOT_FOUND: повторные отправки запросов не помогут, имеет место ошибка валидации номера заявки.
- STATUS_INVALID: может помочь повтор с другим, корректным, статусом.
- FAILED_REASON_MISSES: повторная отправка возможна после заполнения поля reason для заявки в статусе declined или отправки запроса со статусом approved.
- PARCEL_CLOSED: нет смысла отправлять запрос повторно, данный код означает, что изменение свойства для посылки более не актуально так как посылка вручена или изменилось направление движение посылки.
- HTTP 500: означает недоступность API, необходим повтор.
### Возможные причины для отклонения заявки и коды приведены в таблице
| Тип заявки | reason code | Описание |
|--------------------------|---------------------------------|----------------------------------------------------------------------------|
| prohibitParcelAcceptance | already_received | Посылка уже была принята от продавца и запрет её приёма невозможен. |
| prohibitParcelAcceptance | parcel_not_found | Посылка не найдена. |
| prohibitParcelReceive | already_received | Посылка уже была вручена покупателю и запрет выдачи невозможен. |
| prohibitParcelReceive | parcel_not_found | Посылка не найдена. |
| extendParcelStorage | storage_period_already_exceeded | Продление срока хранения для посылки уже выполнялось. |
| extendParcelStorage | invalid_parcel_status | Продление срока хранения невозможно в текущем состоянии (статусе посылки). |
| extendParcelStorage | parcel_not_found | Посылка не найдена. |
| любой | текст в свободной форме | Причина отклонения, которая отличается от стандартизированных |
Для описанных сценариев важно использовать стандартизированные причины для отклонения заявки. Это может влиять на политику ретраев и другие внутренние процессы внутри Avito.
Список стандартных причин может расширяться в будущем в зависимости от статистики использования и возникающих корнер-кейсов.
'
operationId: ChangeParcelResult
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeParcelResultRequest'
description: Результат обработки заявки
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeParcelResultReply'
description: Successful
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryError'
description: Error
summary: Отправка результата исполнения заявки
tags:
- ParcelProcessing
/sandbox/changeParcels:
parameters:
- $ref: '#/components/parameters/authHeader'
post:
description: 'Описание механики изменения посылок [здесь](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/izmenenie_svoystv_posylok).
Метод реализуется на стороне службы доставки. Предназначен для обновления различных свойств посылок по инициативе Avito.
'
operationId: ChangeParcels
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeParcelsRequest'
description: Создание заявок для обновления свойств посылок.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeParcelsResponse'
description: Все заявки внутри транзакции зарегистрированы / случилась ошибка.
'401':
$ref: '#/components/responses/DeliveryUnauthorized'
'403':
$ref: '#/components/responses/DeliveryForbidden'
'500':
$ref: '#/components/responses/DeliveryInternalServerError'
summary: Обновление свойств посылок
tags:
- ParcelProcessing
components:
schemas:
CreateParcelClientDeliverySecondPartyLogist:
description: Информация o магистральном перевозчике. Актуально для кросс-доставки.
properties:
provider:
description: Код службы доставки.
type: string
required:
- provider
ChangeParcelsResponse:
properties:
data:
$ref: '#/components/schemas/ChangeParcelsData'
error:
$ref: '#/components/schemas/ChangeParcelsError'
CheckConfirmationCodeRequest:
properties:
confirmCode:
type: string
parcelID:
type: string
required:
- parcelID
- confirmCode
type: object
prohibitOrderAcceptanceRequest:
properties:
orderId:
$ref: '#/components/schemas/Delivery-orderId-string'
required:
- orderId
type: object
DeliverySetOrderPropertiesRequest:
properties:
orderId:
$ref: '#/components/schemas/Delivery-orderId-string'
properties:
$ref: '#/components/schemas/Delivery-params'
required:
- orderId
- properties
type: object
CreateParcelClient:
description: 'Описание отправителя / получателя.
'
properties:
delivery:
$ref: '#/components/schemas/CreateParcelClientDelivery'
email:
description: Электронная почта.
example: any_email@mail.com
format: email
maxLength: 320
type: string
inn:
description: 'ИНН участника доставки (отправителя/получателя). Опциональное.
Заполнятся только для отправителя/получателя с типом `LEGAL` для определенных сценариев доставки и партнеров.
'
example: '7727563778'
type: string
name:
description: 'Наименование клиента.
'
example: Иванов Иван Иванович
maxLength: 255
type: string
phones:
description: 'Список телефонов для связи.
Формат номеров телефона не регламентирован.
'
example:
- '88005553535'
- '79999999999'
- '+79859991234'
items:
minLength: 1
type: string
type: array
type:
description: 'Тип отправителя.
'
enum:
- PRIVATE
- LEGAL
- 3PL
example: PRIVATE
type: string
required:
- type
- phones
- email
- name
- delivery
CreateParcelItemDimensions:
properties:
accuracy:
$ref: '#/components/schemas/CreateParcelPropertyAccuracy'
values:
description: 'Габариты в сантиметрах.
В порядке: длина, высота, ширина.
'
example:
- 20
- 20
- 20
items:
maximum: 200
minimum: 1
type: integer
maxLength: 3
minLength: 3
type: array
required:
- accuracy
- values
Delivery-eventDateTime:
description: Дата и время события в UTC
example: '1985-04-12T23:20:50.52Z'
title: Дата и время в формате rfc3339 в UTC
type: string
CreateParcelOptions:
properties:
return:
description: 'Опции возврата.
Опции определяют политику возвратов. Доступен ли возврат, или что делать в определенных случаях.
'
properties:
receiver:
$ref: '#/components/schemas/CreateParcelClient'
refused:
$ref: '#/components/schemas/CreateParcelOptionsReturnPolicy'
returned:
$ref: '#/components/schemas/CreateParcelOptionsReturnPolicy'
unclaimed:
$ref: '#/components/schemas/CreateParcelOptionsReturnPolicy'
type: object
tags:
description: "Список специфичных особенностей посылки.\n\nНа определенные значения в тегах можно завязывать логику. \nТе теги, которые вас, как службу доставки, не интересуют, игнорируйте.\nСписок может постоянно пополняться.\n"
enum:
- C2C
- B2C
- X_DELIVERY
- X_DELIVERY_FIRST_LEG
- X_DELIVERY_LAST_LEG
- RETURN
type: array
DeliveryTrackingRequest:
properties:
avitoEventType:
description: Описание статусов см. [здесь](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/mehanika_raboty_trekinga).
example: RECEIVED_AT_TRANSIT_TERMINAL
title: Событие
type: string
avitoStatus:
description: Описание статусов см. [здесь](https://developers.avito.ru/api-catalog/delivery-sandbox/documentation#info/mehanika_raboty_trekinga).
enum:
- CONFIRMED
- IN_TRANSIT
- ON_DELIVERY
- DELIVERED
- IN_TRANSIT_RETURN
- ON_DELIVERY_RETURN
- RETURNED
- LOST
- DESTROYED
example: IN_TRANSIT
title: Статус
comment:
description: Комментарий к статусу.
example: Не понравился цвет
title: Комментарий
type: string
date:
$ref: '#/components/schemas/Delivery-eventDateTime'
location:
description: Локация в которой произошло событие (населённый пункт в именительном падеже).
example: Казань
title: Локация
type: string
options:
description: 'Дополнительные опции к статусу. На данный момент в опциях поддержана передача штрихкода посылки и возвратных номеров.
Если номера `returnTrackingNumber` и `returnDispatchNumber` совпадают, то нужно присылать в них одинаковые значения.
'
properties:
barcode:
description: Штрихкод посылки.
title: Штрихкод посылки
type: string
returnBarcode:
description: Возвратный штрихкод посылки. Будет использоваться в кросс-доставке на возвратном потоке.
title: Возвратный штрихкод
type: string
returnDispatchNumber:
description: Номер, по которому отправитель может получить возвратную посылку.
title: Возвратный номер получения посылки
type: string
returnTrackingNumber:
description: Номер, по которому отправитель может отследить возвратную посылку.
title: Возвратный трек-номер
type: string
type: object
orderId:
$ref: '#/components/schemas/Delivery-orderId-string'
providerEventCode:
description: Код события по версии службы доставки.
example: 3246м4
title: Код события по версии службы доставки
type: string
required:
- orderId
- avitoStatus
- avitoEventType
- providerEventCode
- date
- location
type: object
CreateParcelClientDeliveryTerminal:
description: 'Актуально, если доставка будет осуществляться из / в пункт выдачи заказов.
'
properties:
accuracy:
$ref: '#/components/schemas/CreateParcelPropertyAccuracy'
id:
description: Идентификатор ПВЗ по версии службы доставки владельца.
example: '123'
type: string
provider:
description: Идентификатор службы доставки владельца ПВЗ.
example: exmail
type: string
required:
- provider
- id
- accuracy
Delivery-terms:
properties:
cost:
$ref: '#/components/schemas/Cost'
directControlDate:
$ref: '#/components/schemas/Delivery-directControlDate'
receiverTerminalCode:
$ref: '#/components/schemas/Delivery-receiverTerminalCode'
returnControlDate:
$ref: '#/components/schemas/Delivery-returnControlDate'
senderReceiveTerminalCode:
$ref: '#/components/schemas/Delivery-senderReceiveTerminalCode'
toughWrap:
$ref: '#/components/schemas/Delivery-toughWrap'
title: Условия доставки
type: object
Delivery-directControlDate:
description: 'Контрольная дата доставки для прямого потока в UTC.
Используется для посылок в статусе `IN_TRANSIT`
'
example: '1985-04-12T23:20:50.52Z'
title: Контрольная дата доставки для прямого потока rfc3339 в UTC
type: string
CreateParcelPackage:
properties:
dimensions:
$ref: '#/components/schemas/CreateParcelItemDimensions'
weight:
$ref: '#/components/schemas/CreateParcelItemWeight'
required:
- dimensions
- weight
CheckConfirmationCodeReply:
properties:
data:
properties:
status:
enum:
- success
- fail
- expired
- attempts
type: string
type: object
type: object
Delivery-toughWrap:
description: 'При передачи признака важно учитывать, что он необязательный.
Это означает, что не смотря на тип boolean у признака может быть 3 значения (`null`, `true`, `false`)
т.е. для отправки признака отсутствия обрешетки недостаточно передать `null`, нужно явно передавать `false`.
'
nullable: true
title: Признак наличия жёсткой упаковки или обрешетки для посылки
type: boolean
CreateParcelClientDeliveryCourierDateTimeInterval:
description: Интервал для курьерской доставки.
properties:
end:
description: Дата и время окончания интервала в RFC3339.
example: '2025-02-01T10:26:15+03:00'
format: date-time
type: string
start:
description: Дата и время начала интервала в RFC3339.
example: '2025-02-01T10:26:15+03:00'
format: date-time
type: string
required:
- start
- end
CreateParcelItem:
properties:
breadcrumbs:
description: 'Дерево категорий как на сайте Avito.
'
items:
$ref: '#/components/schemas/CreateParcelItemBreadcrumb'
type: array
cost:
description: Объявленная стоимость в копейках.
example: 1000
type: integer
description:
description: Описание.
example: 'В наличии 🔥 Подшипники для самокатов и роликов Abec 7
Сервис-магазин RollersLife на Савушкина 141(Тк Меркурий)
▬▬▬▬▬▬▬▬▬
Описание товара:
♦ Подшипники для роликовых коньков и самокатов. цена указана за 1 штуку. 608 2rs Abec: 7 Пыльник: Пластик- полиуретановый Тип подшипника: закрытый Размеры: d 8 / D 22 / B 7 Комплект подшипников для роликовых коньков 16 штук 1000 рублей
♦ Запчасть можно купить в нашей мастерской, при необходимости есть услуга по ремонту.
▬▬▬▬▬▬▬▬▬
❗️ В наличии большой ассортимент самокатов и запчастей ❗️
💰 Оплата любым удобным способом 💳
ЗВОНИТЕ/ПИШИТЕ ПРЯМО СЕЙЧАС
▬▬▬▬▬▬▬▬▬
🔧 Ремонтируем
✅ Электро-самокаты, гироскутеры, самокаты детские и взрослые,
✅ Роликовые коньки, скейтборды, беговелы, велосипеды,
✅ Детские коляски, чемоданы, тележки,
✅ Горные лыжи, сноуборды.
⚙️ Электросамокаты Kugoo, Xiaomi, Ninebot, Jack Hot, Hoverbot.
⚙️ Гироскутеры всех брендов Smart Balance, Hoverbot и другие.
▬▬▬▬▬▬▬▬▬
👉 Осуществляем доставку курьером по Санкт-Петербургу
'
maxLength: 1000
type: string
dimensions:
$ref: '#/components/schemas/CreateParcelItemDimensions'
id:
description: Идентификатор товара Avito.
example: 2574253956
type: integer
imagesUrls:
$ref: '#/components/schemas/CreateParcelItemImagesUrls'
quantity:
description: Количество единиц товара.
example: 1
minimum: 1
type: integer
tags:
description: "Дополнительные признаки товара. Признаки товара могут определять дополнительные услуги, оказываемые \nпри приеме или выдаче посылки. На текущий момент поддерживается только один признак - `TRY_ON`, \nкоторый означает,что возможна примерка в ПВЗ.\n\nНа определенные значения в тегах можно завязывать логику. \n\nСписок может постоянно пополняться.\n"
enum:
- TRY_ON
type: array
title:
description: Название.
example: Подшипники для самокатов и роликов Abec 7
maxLength: 100
type: string
weight:
$ref: '#/components/schemas/CreateParcelItemWeight'
required:
- id
- title
- cost
- quantity
CreateParcelPropertyAccuracy:
description: 'Точность габаритов.
На текущий момент точность габаритов всегда `APPROXIMATE`.
'
enum:
- EXACT
- APPROXIMATE
example: APPROXIMATE
type: string
CreateParcelResponse:
properties:
data:
$ref: '#/components/schemas/CreateParcelData'
error:
$ref: '#/components/schemas/CreateParcelError'
DeliverySetOrderPropertiesReply:
properties:
data:
nullable: true
properties:
status:
description:
`success` - свойства успешно сохранены
`duplicate` - свойства заказа были переданы ранее и текущий запрос был проигнорирован
enum:
- success
- duplicate
title: статус сохранения свойств заказа
type: object
error:
$ref: '#/components/schemas/DeliveryError'
type: object
Delivery-returnControlDate:
description: 'Контрольная дата доставки для возвратного потока в UTC.
Используется для посылок в статусе `IN_TRANSIT_RETURN`
'
example: '1985-04-12T23:20:50.52Z'
title: Контрольная дата доставки для возвратного потока rfc3339 в UTC
type: string
CreateParcelPaymentStatus:
description: 'Статус оплаты.
'
enum:
- PAID
- ON_DELIVERY
example: PAID
type: string
Cost:
description: Стоимость в копейках
example: 15000
minimum: 0
title: Стоимость
type: integer
CreateParcelClientDeliveryCourierOptions:
description: Опции курьерской доставки.
properties:
comment:
description: Комментарий для курьера, оставленный пользователем.
example: Комментарий для курьера
type: string
deliveryConfirmationType:
description: 'Способ связи с пользователем для подтверждения курьерской доставки.
На текущий момент способ связи всегда `PHONE`.
'
enum:
- PHONE
example: PHONE
type: string
deliveryType:
description: 'Тип курьерской доставки.
- `DELIVERY_TO_DOOR` – доставка до двери. Передается для получателя.
- `DELIVERY_TO_PORCH` – доставка до подъезда. Передается для получателя.
- `DELIVERY_FROM_DOOR` – забор от двери. Передается для отправителя в сценарии Дверь-Терминал.
'
enum:
- DELIVERY_TO_DOOR
- DELIVERY_TO_PORCH
- DELIVERY_FROM_DOOR
example: DELIVERY_TO_DOOR
type: string
elevatorAvailable:
description: Наличие лифта в доме, способного поднять посылку.
example: true
type: boolean
required:
- deliveryType
- deliveryConfirmationType
- elevatorAvailable
ChangeParcelResultRequest:
properties:
id:
description: Идентификатор заявки на изменение посылки
type: string
options:
nullable: true
properties:
storageExtendedTo:
allOf:
- $ref: '#/components/schemas/DateWithTz'
description: Дата и время до которого продлено хранение (RFC3339). В случае отсутствия в системе информации о времени до которого возможно продления можно использовать константу `23:59:59 в московском часовом поясе`.
type: object
reason:
description: 'Причина отклонения заявки (заполняется в случае отклонения).
'
type: string
status:
description: Статус обработки заявки
enum:
- approved
- declined
type: string
required:
- id
- status
type: object
ChangeParcelResultReply:
properties:
data:
nullable: true
type: object
error:
nullable: true
properties:
code:
enum:
- ID_INVALID
- NOT_FOUND
- STATUS_INVALID
- FAILED_REASON_MISSES
- PARCEL_CLOSED
type: string
message:
type: string
required:
- code
- message
type: object
type: object
DeliveryError4XX:
nullable: true
properties:
message:
description: Человекопонятное описание ошибки
example: something went wrong
title: Описание ошибки
type: string
status:
description: false – в случае возникновения ошибки
example: false
title: статус
type: boolean
required:
- code
- message
type: object
ChangeParcelsApplication:
description: 'Описание посылки, свойства которой необходимо изменить.
'
properties:
id:
description: 'Идентификатор заявки Avito
Идентификатор заявки - уникальный идентификатор заявки на изменение данных о посылке в формате uuid, который должен быть передан в обратном запросе с результатом исполнения заявки.
'
example: 6aad1860-23e0-4e4d-97d7-eff526127b51
type: string
parcelID:
description: 'Идентификатор, использованный при регистрации посылки в службе доставки.
'
example: P000123
type: string
receiver:
$ref: '#/components/schemas/ChangeParcelsClient'
required:
- id
- parcelID
DeliverySetStatusDetails:
description:
Детализация ответа.
Возвращается только со статусом `forbidden`. По детализации можно понять, почему выполнение перехода запрещено.
nullable: true
properties:
from:
description: Текущий статус.
example: IN_TRANSIT
type: string
required:
- from
title: Детализация ответа.
type: object
ChangeParcelsRequest:
properties:
applications:
items:
$ref: '#/components/schemas/ChangeParcelsApplication'
type: array
type:
description: 'Тип заявки.
Заявки могут быть следующих типов:
- `changeReceiver` - обновить данные о получателе посылки.
- `extendParcelStorage` - продлить срок хранения посылки.
- `prohibitParcelReceive` - запретить выдачу посылки на ПВЗ вручения.
- `prohibitParcelAcceptance` - запретить прием посылки на ПВЗ отправки (в разработке).
- `changeReceiverTerminalOnConfirmed` - обновить ПВЗ вручения.
'
enum:
- changeReceiver
- extendParcelStorage
- prohibitParcelReceive
- prohibitParcelAcceptance
- changeReceiverTerminalOnConfirmed
example: changeReceiver
type: string
required:
- type
- applications
type: object
CreateParcelClientDeliverySortingCenter:
description: 'Актуально, если доставка будет осуществлять из / в сортировочный центр.
'
properties:
accuracy:
$ref: '#/components/schemas/CreateParcelPropertyAccuracy'
id:
description: Идентификатор сортировочного центра по версии службы доставки владельца.
example: '123'
type: string
provider:
description: Идентификатор службы доставки владельца сортировочного центра.
example: exmail
type: string
required:
- provider
- id
- accuracy
ChangeParcelsTerminal:
description: 'Данные нового пункта получателя посылки.
'
nullable: true
properties:
id:
description: 'Внешний идентификатор ПВЗ.
'
example: '123'
type: string
required:
- id
ChangeParcelsData:
description: 'Тело ответа.
Поле присутствует, если запрос был успешно обработан. Если случилась ошибка, то поле отсутствует.
'
properties:
status:
description: По полю статус со значением ok понимаем, что заявка успешно принята в работу.
enum:
- ok
example: ok
type: string
required:
- status
type: object
Delivery-receiverTerminalCode:
description: 'Терминал получателя посылки.
Используется для посылок в статусах `IN_TRANSIT` и `ON_DELIVERY` в случае смены терминала.
Рекомендуется не передавать данный параметр совместно с остальными.
'
example: 5000
nullable: true
title: Терминал получателя посылки
type: string
CreateParcelItemBreadcrumb:
properties:
name:
description: Название категории
example: Спорт и отдых
maxLength: 255
type: string
required:
- name
CreateParcelClientDeliveryCourierCoordinates:
description: Координаты пользователя
properties:
latitude:
description: Географическая широта, в градусах.
example: 55.779003
maximum: 90
minimum: -90
type: number
longitude:
description: Географическая долгота, в градусах.
example: 37.591746
maximum: 180
minimum: -180
type: number
required:
- latitude
- longitude
CreateParcelClientDeliveryCourierAddress:
description: Адрес пользователя
properties:
addressRow:
description: Адрес, выбранный пользователем.
example: Москва, ул. Лесная, 20с2
type: string
coordinates:
$ref: '#/components/schemas/CreateParcelClientDeliveryCourierCoordinates'
details:
$ref: '#/components/schemas/CreateParcelClientDeliveryCourierAddressDetails'
required:
- addressRow
- coordinates
- details
CreateParcelRequest:
properties:
barcodes:
description: 'Штрихкоды посылки.
'
example:
- '1000001389165'
- '80511176616217'
items:
type: string
type: array
directOrderID:
description: 'Идентификатор прямого заказа Avito.
'
example: '38108624273277775'
type: string
items:
description: 'Список товаров, которые поедут в посылке.
Содержит полное описание каждого отдельно взятого товара.
'
items:
$ref: '#/components/schemas/CreateParcelItem'
type: array
options:
$ref: '#/components/schemas/CreateParcelOptions'
orderID:
description: 'Идентификатор заказа Avito.
'
example: '38108624273277776'
type: string
package:
$ref: '#/components/schemas/CreateParcelPackage'
parcelID:
description: 'Идентификатор посылки Avito.
'
example: P00012345
type: string
payment:
$ref: '#/components/schemas/CreateParcelPayment'
receiver:
$ref: '#/components/schemas/CreateParcelClient'
sender:
$ref: '#/components/schemas/CreateParcelClient'
required:
- orderID
- parcelID
- items
- sender
- receiver
- payment
DeliverySetStatusReply:
properties:
data:
nullable: true
properties:
details:
$ref: '#/components/schemas/DeliverySetStatusDetails'
status:
description:
`success` - статус успешно добавлен
`forbidden` - переход из текущего статуса в передавемый запрещен
enum:
- success
- forbidden
title: статус сохранения статуса
type: object
error:
$ref: '#/components/schemas/DeliveryError'
type: object
DeliverySetRealAddressRequest:
properties:
address:
properties:
addressType:
description: 'Тип адреса который передаётся
- `SENDER_SEND` - фактический адрес приёма посылки от отправителя (продавца)
- `SENDER_RECEIVE` - фактический адрес возврата посылки отправителю (продавцу)
'
enum:
- SENDER_SEND
- SENDER_RECEIVE
title: Тип Адреса
type: string
terminalNumber:
description: Идентификатор ПВЗ в службе доставки, должен быть равен идентификатору ПВЗ передаваемому при загрузке терминалов
example: 234mlkh
maxLength: 64
title: Идентификатор ПВЗ в службе доставки
type: string
required:
- addressType
- terminalNumber
type: object
orderId:
$ref: '#/components/schemas/Delivery-orderId-string'
required:
- orderId
- address
type: object
ChangeParcelsClient:
description: 'Содержит информацию для обновления данных о клиенте.
'
nullable: true
properties:
name:
description: 'ФИО нового получателя посылки.
'
example: Иванов Иван Иванович
maxLength: 255
type: string
phones:
description: "Список номеров телефонов нового получателя. \nЕсли на стороне СД нет поддержки работы с несколькими номерами телефонов, то необходимо использовать первый из списка и считать его основным контактом.\n\nФормат номеров телефона не регламентирован.\n"
example:
- '88005553535'
- '79999999999'
- '+79859991234'
items:
minLength: 1
type: string
type: array
terminal:
$ref: '#/components/schemas/ChangeParcelsTerminal'
required:
- name
- phones
Delivery-dimensions:
description: 'Габариты в сантиметрах. В порядке длина(length), высота(height), ширина(width).
В случае если для отправления не имеет значения можно ли его вращать - нужно отсортировать от большего к меньшему
'
example:
- 200
- 50
- 30
items:
maximum: 200
minimum: 0
type: integer
title: Габариты
type: array
Delivery-params:
properties:
delivery:
$ref: '#/components/schemas/Delivery-terms'
dimensions:
$ref: '#/components/schemas/Delivery-dimensions'
weight:
$ref: '#/components/schemas/Delivery-weight'
title: Параметры доставки
type: object
cancelParcelReply:
properties:
data:
nullable: true
properties:
status:
description: статус отмены посылки
enum:
- OK
type: string
type: object
error:
$ref: '#/components/schemas/DeliveryError'
type: object
DeliveryError:
nullable: true
properties:
code:
description: код ошибки
example: fail
title: код ошибки
type: string
message:
description: Человекопонятное описание ошибки
example: something went wrong
title: описание ошибки
type: string
required:
- code
- message
type: object
prohibitOrderAcceptanceReply:
properties:
data:
nullable: true
properties:
status:
description: статус запрета приёма заказа
enum:
- OK
type: string
type: object
error:
$ref: '#/components/schemas/DeliveryError'
type: object
Delivery-orderId-string:
description: 'Генерируется на стороне Avito и передается в службу доставки в методах создания посылки.
ВАЖНО: несмотря на то, что поле называется `orderId`, в нем содержится идентификатор посылки Avito
в формате `"P00012345"`.
'
example: P00012345
title: ID Авито
type: string
CreateParcelClientDeliveryCourier:
description: 'Актуально, если забор/доставка будет осуществляться курьером.
'
properties:
address:
$ref: '#/components/schemas/CreateParcelClientDeliveryCourierAddress'
dateTimeInterval:
$ref: '#/components/schemas/CreateParcelClientDeliveryCourierDateTimeInterval'
options:
$ref: '#/components/schemas/CreateParcelClientDeliveryCourierOptions'
pickupContact:
$ref: '#/components/schemas/CreateParcelClientDeliveryCourierPickupContact'
provider:
description: Cлужба доставки, которая будет осуществлять курьерскую доставку.
example: pecom-t2d
type: string
required:
- provider
- address
- dateTimeInterval
CreateParcelItemImagesUrls:
properties:
list:
description: 'Список URL-ов фотографий.
'
example:
- //24.img.avito.st/image/1/1.pUbrSba6Ca_d4MuqrTPvNzbqD6tfagFtWuoNp1_iCw.kszrqWjK0pNKI4ayaT821U-Ln2lzT8lSuqNt7pqedno
- //19.img.avito.st/image/1/1.rlbjCLa6Ar_VocC6s3LkJz6rBLtXKwp9UqsGt1ejAA.C4io31wn3Rjlc7SJGgeIVyxzC9LnoQUkGwmyaQ67-qs
- //90.img.avito.st/image/1/1.Z0Dh2ba6y6nXcAmso6AtMTx6za1V-sNrUHrPoVVyyQ.T1yZ87ZDiUSrUQNTYJkDbXub3lHC9_XBFtc8D1jOt7c
- //76.img.avito.st/image/1/1.QTUceba67dwq0C_ZEngLRMHa69ioWuUerdrp1KjS7w.JABYB8SsN5W6u5Y6WR49R8kKzr5IsGxF5HTjQPnygYQ
- //85.img.avito.st/image/1/1.eITjzra61G3VZxZon88y9T5t0mlX7dyvUm3QZVdl1g.aQyF5iZccldCZ5p9qtb-DZZobnPzdCSanQJmdHXQvdc
items:
type: string
type: array
listing:
description: 'URL основной фотографии.
'
example: //24.img.avito.st/image/1/1.pUbrSba6Ca_d4MuqrTPvNzbqD6tfagFtWuoNp1_iCw.kszrqWjK0pNKI4ayaT821U-Ln2lzT8lSuqNt7pqedno
type: string
required:
- listing
- list
DateWithTz:
example: '2023-09-20T10:00:00.52Z'
type: string
Delivery-senderReceiveTerminalCode:
description: 'Терминал отправителя, в который едет возврат.
Используется для посылок в статусах `IN_TRANSIT_RETURN` и `ON_DELIVERY_RETURN` в случае смены терминала.
Рекомендуется не передавать данный параметр совместно с остальными.
'
example: 5001
nullable: true
title: Терминал отправителя, в который едет возврат.
type: string
CreateParcelOptionsReturnPolicy:
properties:
action:
description: 'Какое действие выполнить в случае возврата посылки.
'
enum:
- DISABLED
- DESTROY
- RETURN_TO_DEPARTURE_POINT
- RETURN_TO_RECEIVER
- MOVE_TO_ON_DEMAND_STORAGE
example: DESTROY
type: string
after:
description: 'Через какое время выполнить действие `action`.
Отсутствие поля означает, что выполнить нужно сразу.
'
properties:
unit:
description: Единица интервала.
enum:
- DAY
example: DAY
type: string
value:
description: Через сколько `unit` выполнить действие `action`.
example: 14
minimum: 1
type: integer
required:
- unit
- value
type: object
required:
- action
CreateParcelError:
description: 'Ошибка создания посылки.
Поле присутствует, если запрос не был успешно обработан. Если запрос был успешно обработан, то поле отсутствует.
'
properties:
code:
description: "Код ошибки.\n\n- `VALIDATION_ERROR` – ошибка валидации данных (например, длина передаваемого поля превышает допустимые лимиты, или какое-то поле отсутствует). \nВ поле `error.message` должно содержаться пояснение, какое поле не прошло валидацию.\n- `UNSUPPORTED_PARAM_ERROR` – в запросе получен неподдерживаемый параметр. В поле `error.message` должно содержаться пояснение, какое поле не поддерживается.\n- `TERMINAL_UNAVAILABLE` – терминал, указанный в запросе, недоступен для создания посылки. В поле `error.message` должно содержаться пояснение причины недоступности терминала.\n- `SORTING_CENTER_UNAVAILABLE` – сортировочный центр, указанный в запросе, недоступен для создания посылки. В поле error.message должно содержаться пояснение причины недоступности сортировочного центра.\n\nВсе перечисленные ошибки – \"терминальные\". \nПри получении этих ошибок Avito не будет выполнять повторные запросы, т.к. повтор приведет к тому же результату.\n\nСписок в дальнейшем может пополняться.\n"
enum:
- VALIDATION_ERROR
- UNSUPPORTED_PARAM_ERROR
- TERMINAL_UNAVAILABLE
- SORTING_CENTER_UNAVAILABLE
example: VALIDATION_ERROR
type: string
message:
description: Текстовое описание ошибки
example: Текст ошибки
type: string
required:
- code
- message
type: object
CreateParcelClientDeliveryCourierPickupContact:
description: 'Контактное лицо для забора посылки курьером. Заполняется для отправителя в сценарии Дверь-Терминал.
Может отличаться от имени отправителя (например, если отправитель – юридическое лицо).
'
properties:
name:
description: ФИО контактного лица для забора посылки.
example: Иванов Иван Иванович
type: string
phone:
description: Телефон контактного лица для забора посылки.
example: '+79999999999'
type: string
required:
- name
- phone
ChangeParcelsError:
description: 'Ошибка регистрации заявки на изменение посылок.
Поле присутствует, если запрос не был успешно обработан. Если запрос был успешно обработан, то поле отсутствует.
'
properties:
code:
description: "Код ошибки.
\n
VALIDATION_ERROR – ошибка валидации входящих параметров. Например:type) заявки.\n В поле error.message должно содержаться пояснение, какое поле не прошло валидацию. UNSUPPORTED_PARAM_ERROR – в запросе получен неподдерживаемый параметр. Например:type) заявки, который не реализован на стороне СД.type) заявки. Например для заявки с type=extendParcelStorage передано заполненное поле receiver.phones\nВ поле error.message должно содержаться пояснение, какое поле не поддерживается.reason запроса changeParcelResult prohibitParcelAcceptance), уже принята в ПВЗ отправки.extendParcelStorage), уже истек срок хранения и она отправлена на возврат.prohibitParcelReceive) уже вручена получателю.