Передача ключей цифровых товаров
Метод доступен для модели DBS.
Пока недоступен для продавцов Market Yandex Go.
Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке
- inventory-and-order-processing — Обработка заказов и учёт товаров
- all-methods — Полное управление кабинетом
Передает ключи цифровых товаров, которые покупатель заказал и оплатил. После выполнения запроса Маркет отправит ему письмо с ключами и инструкциями по активации. Если письмо будет доставлено, Маркет переведет заказ в финальный статус DELIVERED.
После передачи кода покупателю статус заказа изменится не сразу
Подключите API-уведомления — Маркет отправит вам запрос POST notification, когда заказ перейдет в статус DELIVERED.
Ключ нужно передать в течение 30 минут после перехода заказа в статус PROCESSING.
Если в один заказ входят несколько ключей, передавайте их все в одном запросе.
Каждый товар с уникальным id передавайте в виде отдельного элемента в массиве items, а ключи товара — в массиве codes.
Пример
{
"items": [
{
"id": 1,
"codes": [
"code1", "code2", "code3"
],
"slip": "slip",
"activate_till": "2025-02-18"
},
{
"id": 2,
"codes": [
"code4", "code5", "code6"
],
"slip": "slip",
"activate_till": "2025-02-18"
}
]
}
| ⚙️ Лимит: 100 000 запросов в час |
|---|
Request
POST
https://api.partner.market.yandex.ru/v2/campaigns/{campaignId}/orders/{orderId}/deliverDigitalGoods
Path parameters
|
Name |
Description |
|
campaignId |
Type: integer Идентификатор кампании (магазина) — технический идентификатор, который представляет ваш магазин в системе Яндекс Маркета при работе через API. Он однозначно связывается с вашим магазином, но предназначен только для автоматизированного взаимодействия. Его можно узнать с помощью запроса GET v2/campaigns или найти в кабинете продавца на Маркете. Нажмите на иконку вашего аккаунта → Настройки и в меню слева выберите API и модули:
⚠️ Не путайте его с:
Min value: |
|
orderId |
Type: integer Идентификатор заказа. |
Body
application/json
{
"items": [
{
"id": 0,
"code": "example",
"codes": [
"example"
],
"slip": "example",
"activate_till": "2025-01-01"
}
]
}
|
Name |
Description |
|
items |
Type: OrderDigitalItemDTO[] Список проданных товаров. Для товара с одинаковым Min items: Max items: Example
|
OrderDigitalItemDTO
Цифровой товар.
|
Name |
Description |
|
activate_till |
Type: string<date> Дата, до которой нужно активировать ключи. Если ключи действуют бессрочно, укажите любую дату в отдаленном будущем. Формат даты: Example: |
|
id |
Type: integer Идентификатор товара в заказе. Он приходит в ответе метода POST v1/businesses/{businessId}/orders — параметр |
|
slip |
Type: string Инструкция по активации. Для форматирования текста можно использовать теги HTML:
Max length: Example: |
|
codes |
Type: string[] | null Ключи, относящиеся к товару. Поле обязательно для заполнения. Min items: Max items: Unique items: Example
|
Example
{
"id": 0,
"codes": [
"example"
],
"slip": "example",
"activate_till": "2025-01-01"
}
Responses
200 OK
Пустой ответ.
Ответ 200 сам по себе не значит, что ключи переданы покупателю
Если письмо с ключами удалось доставить, Маркет переведет заказ в финальный статус DELIVERED.
Статус заказа можно узнать с помощью метода POST v1/businesses/{businessId}/orders.
Body
application/json
{
"status": "OK"
}
Type: object
All of 1 type
-
Type: ApiResponse
Стандартная обертка для ответов сервера.
Example
{ "status": "OK" }
ApiResponseStatusType
Тип ответа. Возможные значения:
OK— ошибок нет.ERROR— при обработке запроса произошла ошибка.
Type: string
Enum: OK, ERROR
ApiResponse
Стандартная обертка для ответов сервера.
|
Name |
Description |
|
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
Example
{
"status": "OK"
}
400 Bad Request
Запрос содержит неправильные данные. Подробнее об ошибках при работе с заказами
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
ApiErrorDTO
Общий формат ошибки.
|
Name |
Description |
|
code |
Type: string Код ошибки. Example: |
|
message |
Type: string Описание ошибки. Example: |
Example
{
"code": "example",
"message": "example"
}
ApiErrorResponse
Стандартная обертка для ошибок сервера.
Type: object
All of 2 types
-
Type: ApiResponse
Стандартная обертка для ответов сервера.
Example
{ "status": "OK" } -
Type: object
errors
Type: ApiErrorDTO[] | null
Список ошибок.
Min items:
1Example
[ { "code": "example", "message": "example" } ]Example
{ "errors": [ { "code": "example", "message": "example" } ] }
Example
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
401 Unauthorized
В запросе не указаны данные для авторизации. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
403 Forbidden
Данные для авторизации неверны или доступ к ресурсу запрещен. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
404 Not Found
Запрашиваемый ресурс не найден. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
420 Method Failure
Превышено ограничение на доступ к ресурсу. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
500 Internal Server Error
Внутренняя ошибка Маркета. Подробнее об ошибке
Body
application/json
{
"status": "OK",
"errors": [
{
"code": "example",
"message": "example"
}
]
}
Type: object
All of 1 type
-
Type: ApiErrorResponse
Стандартная обертка для ошибок сервера.
Example
{ "status": "OK", "errors": [ { "code": "example", "message": "example" } ] }
No longer supported, please use an alternative and newer version.