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
    \n
  1. VALIDATION_ERROR – ошибка валидации входящих параметров. Например:
  2. \n
  3. UNSUPPORTED_PARAM_ERROR – в запросе получен неподдерживаемый параметр. Например:
  4. \n
    \n
    \nВажно! Перечисленные выше ошибки можно использовать только для проверки корректности входящего контракта и запрещено использовать для проверки бизнес-логики сценария.
    \nВсе возникающие ошибки бизнес-логики, которые могут возникнуть в процессе исполнения заявки, должны передаваться в поле reason запроса changeParcelResult
    \nПримеры ошибок бизнес-логики:
    \n
      \n
    1. На стороне СД не найдена посылка по переданному `parcelID`.
    2. \n
    3. Посылка, для которой необходимо выполнить заявку запрета приема в ПВЗ отправки (prohibitParcelAcceptance), уже принята в ПВЗ отправки.
    4. \n
    5. Посылка, для которой необходимо продлить срок хранения посылки (extendParcelStorage), уже истек срок хранения и она отправлена на возврат.
    6. \n
    7. Посылка, для которой необходимо запретить выдачу в ПВЗ вручения (prohibitParcelReceive) уже вручена получателю.
    8. \n
    \n\nВсе перечисленные ошибки – \"терминальные\".\nПри получении этих ошибок Avito не будет выполнять повторные запросы, т.к. повтор приведет к тому же результату.\nСписок в дальнейшем может пополняться.\n" enum: - VALIDATION_ERROR - UNSUPPORTED_PARAM_ERROR example: VALIDATION_ERROR type: string message: description: 'Человекочитаемые детали произошедшей ошибки. Поле будет использоваться живыми людьми для диагностирования проблемы. ' example: applications[0].parcelID field is required type: string required: - code - message type: object CreateParcelItemWeight: properties: accuracy: $ref: '#/components/schemas/CreateParcelPropertyAccuracy' value: description: Вес в граммах. maximum: 50000 minimum: 1 type: integer required: - accuracy - values CreateParcelClientDeliveryCourierAddressDetails: description: 'Детали адреса курьерской доставки. ' properties: flat: description: Номер квартиры. example: '23' type: string floor: description: Номер этажа. example: '4' type: string house: description: Номер дома, корпуса, строения пользователя. example: 20с2 type: string porch: description: Номер подъезда. example: '2' type: string required: - house Delivery-weight: description: Вес в граммах example: 1000 maximum: 50000 minimum: 0 title: Вес CreateParcelData: description: 'Тело ответа. Поле присутствует, если запрос был успешно обработан. Если случилась ошибка, то поле отсутствует. ' properties: barcodes: description: 'Штрихкоды посылки. Штрихкоды обязательны к возврату в случае кросс-доставки. ' example: - '1000001389165' - '1000001389166' items: type: string minLength: 1 type: array dispatchNumber: description: Идентификатор посылки по версии службы доставки. example: 00000138916 type: string trackingNumber: description: Трек-номер посылки по версии службы доставки. example: 00000138916 type: string required: - dispatchNumber - trackingNumber type: object cancelParcelRequest: properties: actor: description: Кто отменяет посылку enum: - receiver type: string parcelID: $ref: '#/components/schemas/Delivery-orderId-string' required: - parcelID - actor type: object CreateParcelClientDelivery: properties: completenessAndIntegrity: description: 'Где осуществляется проверка целостности и комплектности вложений посылки. ' example: - DIRECT_FLOW - RETURN_FLOW items: enum: - DIRECT_FLOW - RETURN_FLOW type: string type: array courier: $ref: '#/components/schemas/CreateParcelClientDeliveryCourier' secondPartyLogist: $ref: '#/components/schemas/CreateParcelClientDeliverySecondPartyLogist' sortingCenter: $ref: '#/components/schemas/CreateParcelClientDeliverySortingCenter' terminal: $ref: '#/components/schemas/CreateParcelClientDeliveryTerminal' type: description: 'Тип доставки. - `TERMINAL` – в пункт выдачи заказов. - `SORTING_CENTER` – в сортировочный центр (для кросс-доставки). - `COURIER` - доставка курьером. ' enum: - TERMINAL - SORTING_CENTER - COURIER example: TERMINAL type: string required: - type CreateParcelPayment: properties: delivery: properties: costWithoutVat: description: Стоимость в копейках без НДС. example: 10000 minimum: 0 type: integer status: $ref: '#/components/schemas/CreateParcelPaymentStatus' required: - status - costWithoutVat type: object items: properties: cost: description: Стоимость в копейках. example: 10000 minimum: 0 type: integer status: $ref: '#/components/schemas/CreateParcelPaymentStatus' required: - status - cost type: object required: - items - delivery parameters: authHeader: description: Токен для авторизации example: Bearer ACCESS_TOKEN in: header name: Authorization required: true responses: DeliveryUnauthorized: content: application/json: schema: properties: error: $ref: '#/components/schemas/DeliveryError4XX' type: object description: Ошибка аутентификации. Например, некорректный токен. DeliveryForbidden: content: application/json: schema: properties: error: $ref: '#/components/schemas/DeliveryError4XX' type: object description: Ошибка авторизации. Например, нет прав для выполнения операции. DeliveryInternalServerError: content: application/json: schema: properties: error: $ref: '#/components/schemas/DeliveryError' type: object description: internal server error securitySchemes: AuthorizationCode: description: Это API использует OAuth 2 с механизмом authorization_code. Используйте его для доступа к данным других пользователей при разработке стороннего приложения. [Подробнее](/api-catalog/auth/documentation#tag/ApplicationAccess) flows: authorizationCode: authorizationUrl: https://avito.ru/oauth scopes: ah:access: Взаимодействие с иерархией аккаунтов tokenUrl: https://api.avito.ru/token type: oauth2 ClientCredentials: description: Это API использует OAuth 2 с механизмом client_credentials. Используйте его для доступа к возможностям своей личной учетной записи. [Подробнее](#tag/Access) flows: clientCredentials: scopes: {} tokenUrl: https://api.avito.ru/token type: oauth2