- Request
- Body
- NotificationType
- PingNotificationDTO
- OrderCreatedNotificationDTO
- OrderStatusUpdatedNotificationDTO
- OrderCancelledNotificationDTO
- OrderCancellationRequestNotificationDTO
- OrderReturnCreatedNotificationDTO
- OrderReturnStatusUpdatedNotificationDTO
- GoodsFeedbackCreatedNotificationDTO
- GoodsFeedbackCommentCreatedNotificationDTO
- ChatCreatedNotificationDTO
- ChatMessageSentNotificationDTO
- ChatArbitrageStartedNotificationDTO
- ChatArbitrageFinishedNotificationDTO
- NotificationOrderItemDTO
- OrderStatusType
- OrderSubstatusType
- NotificationReturnItemDTO
- ReturnType
- NotificationUpdatedReturnStatusesDTO
- RefundStatusType
- ReturnShipmentStatusType
- Responses
- 200 OK
- 400 Bad Request
- 500 Internal Server Error
Receiving notifications
The market sends notifications about events to the store:
- creating a new order;
- order status change;
- create a new chat with the customer;
- adding a new message in the chat;
- the beginning of a dispute;
- the end of the dispute;
- creating a new product review;
- creating a new review comment;
- creating an order cancellation request;
- cancellation of the order;
- creating a new non-purchase or refund;
- changing the non-purchase or refund status.
Keep these features in mind when working with notifications.
-
Yandex.Market can send multiple notifications for the same event.
In some cases, this is normal behavior. For example, there may be several notifications with a change in the order status due to the search for a courier.
-
The time in the notification, in the response to a request to the Market, and in your system may vary.
This is due to the fact that at the time the notification is sent, the order status may already be different.
In the request
POST notification
the time of the event comes increatedAt
,updatedAt
orcancelledAt
. The choice of the parameter depends on the type of notification.
Consider the later time of the event to be relevant. It can be in a notification, returned in response to a request to the Market, or stored in your system.
Timeout for receiving a response: 10 seconds.
Request
POST
/notification
Body
application/json
{
"notificationType": "PING",
"time": "2022-12-29T18:02:01Z"
}
Name |
Description |
notificationType* |
Type: NotificationType Notification type:
Enum: |
...rest |
oneOf PingNotificationDTO Verification notification.
|
...rest |
oneOf OrderCreatedNotificationDTO Notification of the creation of a new order.
To get detailed information about the order Use the method GET campaigns/{campaignId}/orders/{orderId}. |
...rest |
oneOf OrderStatusUpdatedNotificationDTO Notification of a change in the order status.
To change the order status Use the method PUT campaigns/{campaignId}/orders/{orderId}/status. |
...rest |
oneOf OrderCancelledNotificationDTO Notification of order cancellation.
|
...rest |
oneOf OrderCancellationRequestNotificationDTO Notification of the creation of an order cancellation request (for DBS stores).
To confirm or reject an application Use the method PUT campaigns/{campaignId}/orders/{orderId}/cancellation/accept. |
...rest |
oneOf OrderReturnCreatedNotificationDTO Notification of the creation of a new non-purchase or refund.
To get detailed information about non-purchase or refund Use the method GET campaigns/{campaignId}/orders/{orderId}/returns/{returnId}. |
...rest |
oneOf OrderReturnStatusUpdatedNotificationDTO Notification of a change in the non-purchase or refund status.
To get detailed information about non-purchase or refund Use the method GET campaigns/{campaignId}/orders/{orderId}/returns/{returnId}. |
...rest |
oneOf GoodsFeedbackCreatedNotificationDTO Notification of the creation of a new product review.
Yandex.Market sends notifications about reviews only when they have been moderated and published. To get detailed information about reviews Use the method POST businesses/{businessId}/goods-feedback where specify their IDs in the parameter You will not be able to get the information if the customer or the Market has deleted the review. |
...rest |
oneOf GoodsFeedbackCommentCreatedNotificationDTO Notification of the creation of a new review comment.
To get detailed information about the comments on the review Use the method POST businesses/{businessId}/goods-feedback/comments where specify their IDs in the parameter You will not be able to receive information if the user or the Market has deleted a comment or review to which it was added. |
...rest |
oneOf ChatCreatedNotificationDTO Notification of the creation of a new chat with the buyer.
To get a chat with a customer Use the method GET businesses/{businessId}/chat where specify the chat ID in the parameter |
...rest |
oneOf ChatMessageSentNotificationDTO Notification of a new message in the chat.
To receive a message from the buyer Use the method GET businesses/{businessId}/chats/message where to specify the IDs:
|
...rest |
oneOf ChatArbitrageStartedNotificationDTO Notification of the beginning of the dispute.
|
...rest |
oneOf ChatArbitrageFinishedNotificationDTO Notification of the end of the dispute.
|
NotificationType
Notification type:
PING
— verification notification.ORDER_CREATED
— a new order has been created.ORDER_CANCELLED
— the order has been cancelled.ORDER_STATUS_UPDATED
— the order status has been changed.ORDER_RETURN_CREATED
— a new non-purchase or refund has been created.ORDER_CANCELLATION_REQUEST
— an order cancellation request has been created (for DBS stores).ORDER_RETURN_STATUS_UPDATED
— the non-purchase or refund status has been changed.GOODS_FEEDBACK_CREATED
— a new product review has been created.GOODS_FEEDBACK_COMMENT_CREATED
— A new product review comment has been created.CHAT_CREATED
— a new chat with the buyer has been created.CHAT_MESSAGE_SENT
— A new chat message has been added.CHAT_ARBITRAGE_STARTED
— at the request of the buyer, a dispute began.CHAT_ARBITRAGE_FINISHED
— the dispute is over.
Type |
Description |
Enum: |
PingNotificationDTO
Verification notification.
notificationType
= PING
Name |
Description |
notificationType |
Type: NotificationType Notification type:
Enum: |
time |
Type: string<date-time> The date and time when the notification was processed by the store. Date format: ISO 8601 with an offset relative to UTC. For example, |
OrderCreatedNotificationDTO
Notification of the creation of a new order.
notificationType
= ORDER_CREATED
To get detailed information about the order
Use the method GET campaigns/{campaignId}/orders/{orderId}.
Name |
Description |
campaignId* |
Type: integer<int64> The campaign ID. You can find it using a query GET campaigns or find it in the seller's office on the Market — click on the name of your business and go to the page:
, Do not send the store ID instead, which is indicated in the seller's account on the Market next to the store name and in some reports. |
createdAt* |
Type: string<date-time> Date and time of the order creation. Date format: ISO 8601 with an offset relative to UTC. For example, |
items* |
Type: NotificationOrderItemDTO[] The list of products in the order. |
notificationType* |
Type: NotificationType Notification type:
Enum: |
orderId* |
Type: integer<int64> The order ID. |
OrderStatusUpdatedNotificationDTO
Notification of a change in the order status.
notificationType
= ORDER_STATUS_UPDATED
To change the order status
Use the method PUT campaigns/{campaignId}/orders/{orderId}/status.
Name |
Description |
campaignId* |
Type: integer<int64> The campaign ID. You can find it using a query GET campaigns or find it in the seller's office on the Market — click on the name of your business and go to the page:
, Do not send the store ID instead, which is indicated in the seller's account on the Market next to the store name and in some reports. |
notificationType* |
Type: NotificationType Notification type:
Enum: |
orderId* |
Type: integer<int64> The order ID. |
status* |
Type: OrderStatusType Order status:
Other values may also be returned. They do not need to be processed. Enum: |
substatus* |
Type: OrderSubstatusType The stage of order processing (if it has the status
Other values may also be returned. They do not need to be processed. Enum: |
updatedAt* |
Type: string<date-time> Date and time of the order status change. Date format: ISO 8601 with an offset relative to UTC. For example, |
OrderCancelledNotificationDTO
Notification of order cancellation.
notificationType
= ORDER_CANCELLED
Name |
Description |
campaignId* |
Type: integer<int64> The campaign ID. You can find it using a query GET campaigns or find it in the seller's office on the Market — click on the name of your business and go to the page:
, Do not send the store ID instead, which is indicated in the seller's account on the Market next to the store name and in some reports. |
cancelledAt* |
Type: string<date-time> Date and time of cancellation of the order. Date format: ISO 8601 with an offset relative to UTC. For example, |
items* |
Type: NotificationOrderItemDTO[] The list of products in the order. |
notificationType* |
Type: NotificationType Notification type:
Enum: |
orderId* |
Type: integer<int64> The order ID. |
OrderCancellationRequestNotificationDTO
Notification of the creation of an order cancellation request (for DBS stores).
notificationType
= ORDER_CANCELLATION_REQUEST
To confirm or reject an application
Use the method PUT campaigns/{campaignId}/orders/{orderId}/cancellation/accept.
Name |
Description |
campaignId* |
Type: integer<int64> The campaign ID. You can find it using a query GET campaigns or find it in the seller's office on the Market — click on the name of your business and go to the page:
, Do not send the store ID instead, which is indicated in the seller's account on the Market next to the store name and in some reports. |
notificationType* |
Type: NotificationType Notification type:
Enum: |
orderId* |
Type: integer<int64> The order ID. |
requestedAt* |
Type: string<date-time> The date and time when the cancellation request was created. Date format: ISO 8601 with an offset relative to UTC. For example, |
OrderReturnCreatedNotificationDTO
Notification of the creation of a new non-purchase or refund.
notificationType
= ORDER_RETURN_CREATED
To get detailed information about non-purchase or refund
Use the method GET campaigns/{campaignId}/orders/{orderId}/returns/{returnId}.
Name |
Description |
campaignId* |
Type: integer<int64> The campaign ID. You can find it using a query GET campaigns or find it in the seller's office on the Market — click on the name of your business and go to the page:
, Do not send the store ID instead, which is indicated in the seller's account on the Market next to the store name and in some reports. |
createdAt* |
Type: string<date-time> The date and time when the non-purchase or refund was created. Date format: ISO 8601 with an offset relative to UTC. For example, |
items* |
Type: NotificationReturnItemDTO[] The list of items in non-purchase or return. |
notificationType* |
Type: NotificationType Notification type:
Enum: |
orderId* |
Type: integer<int64> The order ID. |
returnId* |
Type: integer<int64> ID of a non-purchase or refund. |
returnType* |
Type: ReturnType Order type for filtering:
If you do not specify it, the response will include both non-purchases and refunds. Enum: |
OrderReturnStatusUpdatedNotificationDTO
Notification of a change in the non-purchase or refund status.
notificationType
= ORDER_RETURN_STATUS_UPDATED
To get detailed information about non-purchase or refund
Use the method GET campaigns/{campaignId}/orders/{orderId}/returns/{returnId}.
Name |
Description |
campaignId* |
Type: integer<int64> The campaign ID. You can find it using a query GET campaigns or find it in the seller's office on the Market — click on the name of your business and go to the page:
, Do not send the store ID instead, which is indicated in the seller's account on the Market next to the store name and in some reports. |
notificationType* |
Type: NotificationType Notification type:
Enum: |
orderId* |
Type: integer<int64> The order ID. |
returnId* |
Type: integer<int64> ID of a non-purchase or refund. |
statuses* |
Type: NotificationUpdatedReturnStatusesDTO Information about updating the non-purchase or refund status. Only the status that was changed is returned. For non-purchases, only Parameter |
updatedAt* |
Type: string<date-time> The date and time when the non-purchase or refund status was changed. Date format: ISO 8601 with an offset relative to UTC. For example, |
GoodsFeedbackCreatedNotificationDTO
Notification of the creation of a new product review.
notificationType
= GOODS_FEEDBACK_CREATED
Yandex.Market sends notifications about reviews only when they have been moderated and published.
To get detailed information about reviews
Use the method POST businesses/{businessId}/goods-feedback where specify their IDs in the parameter feedbackIds
.
You will not be able to get the information if the customer or the Market has deleted the review.
Name |
Description |
businessId* |
Type: integer<int64> Cabinet ID. |
createdAt* |
Type: string<date-time> The date and time when the review was created. It may differ from the information in Date format: ISO 8601 with an offset relative to UTC. For example, |
feedbackId* |
Type: integer<int64> The review ID. |
notificationType* |
Type: NotificationType Notification type:
Enum: |
publishedAt* |
Type: string<date-time> Date and time of publication of the review. It may differ from the information in Date format: ISO 8601 with an offset relative to UTC. For example, |
GoodsFeedbackCommentCreatedNotificationDTO
Notification of the creation of a new review comment.
notificationType
= GOODS_FEEDBACK_COMMENT_CREATED
To get detailed information about the comments on the review
Use the method POST businesses/{businessId}/goods-feedback/comments where specify their IDs in the parameter commentIds
.
You will not be able to receive information if the user or the Market has deleted a comment or review to which it was added.
Name |
Description |
businessId* |
Type: integer<int64> Cabinet ID. |
commentId* |
Type: integer<int64> ID of the review comment. |
createdAt* |
Type: string<date-time> Date and time when the comment was created. Date format: ISO 8601 with an offset relative to UTC. For example, |
notificationType* |
Type: NotificationType Notification type:
Enum: |
ChatCreatedNotificationDTO
Notification of the creation of a new chat with the buyer.
notificationType
= CHAT_CREATED
To get a chat with a customer
Use the method GET businesses/{businessId}/chat where specify the chat ID in the parameter chatId
.
Name |
Description |
businessId* |
Type: integer<int64> Cabinet ID. |
chatId* |
Type: integer<int64> The chat ID. |
createdAt* |
Type: string<date-time> Date and time when the chat was created. Date format: ISO 8601 with an offset relative to UTC. For example, |
notificationType* |
Type: NotificationType Notification type:
Enum: |
ChatMessageSentNotificationDTO
Notification of a new message in the chat.
notificationType
= CHAT_MESSAGE_SENT
To receive a message from the buyer
Use the method GET businesses/{businessId}/chats/message where to specify the IDs:
- chat rooms —
chatId
; - messages —
messageId
.
Name |
Description |
businessId* |
Type: integer<int64> Cabinet ID. |
chatId* |
Type: integer<int64> The chat ID. |
messageId* |
Type: string The ID of the message. |
notificationType* |
Type: NotificationType Notification type:
Enum: |
sentAt* |
Type: string<date-time> The date and time when the message was sent. Date format: ISO 8601 with an offset relative to UTC. For example, |
ChatArbitrageStartedNotificationDTO
Notification of the beginning of the dispute.
notificationType
= CHAT_ARBITRAGE_STARTED
Name |
Description |
businessId* |
Type: integer<int64> Cabinet ID. |
chatId* |
Type: integer<int64> The chat ID. |
notificationType* |
Type: NotificationType Notification type:
Enum: |
startedAt* |
Type: string<date-time> The date and time of the beginning of the dispute. Date format: ISO 8601 with an offset relative to UTC. For example, |
ChatArbitrageFinishedNotificationDTO
Notification of the end of the dispute.
notificationType
= CHAT_ARBITRAGE_FINISHED
Name |
Description |
businessId* |
Type: integer<int64> Cabinet ID. |
chatId* |
Type: integer<int64> The chat ID. |
finishedAt* |
Type: string<date-time> The date and time of the end of the dispute. Date format: ISO 8601 with an offset relative to UTC. For example, |
notificationType* |
Type: NotificationType Notification type:
Enum: |
NotificationOrderItemDTO
Information about the product in the order.
Name |
Description |
count* |
Type: integer The quantity of the product. |
offerId* |
Type: string Your SKU is the product identifier in your system. SKU Usage Rules:
The SKU of the product can be changed in the seller's account on the Market. Read about how to do this. in the Help of the Market for sellers. What is a SKU and how to assign it Min length: Max length: Pattern: |
OrderStatusType
Order status:
-
PLACING
— it is being processed, preparing for the reservation. -
RESERVED
— reserved, but under-booked. -
UNPAID
— issued, but not yet paid (if payment is selected at checkout). -
PROCESSING
— it is under processing. -
DELIVERY
— transferred to the delivery service. -
PICKUP
— delivered to the pick-up point. -
DELIVERED
— received by the buyer. -
CANCELLED
— cancelled. -
PENDING
— awaiting processing by the seller. -
PARTIALLY_RETURNED
— partially returned. -
RETURNED
— returned in full. -
UNKNOWN
— unknown status.
Other values may also be returned. They do not need to be processed.
Type |
Description |
Enum: |
OrderSubstatusType
The stage of order processing (if it has the status PROCESSING
) or the reason for the cancellation of the order (if it has the status CANCELLED
).
-
Order values in the status
PROCESSING
:-
STARTED
— the order has been confirmed, and it can be processed. -
READY_TO_SHIP
— the order is collected and ready for shipment.
-
-
Order values in the status
CANCELLED
:-
RESERVATION_EXPIRED
— the customer did not complete the reserved order within 10 minutes. -
USER_NOT_PAID
— the buyer has not paid for the order (for the type of paymentPREPAID
) for 30 minutes. -
USER_UNREACHABLE
— couldn't contact the buyer. To cancel with this reason, the following conditions must be met:- at least 3 calls from 8 to 21 in the buyer's time zone;
- the break between the first and third calls is at least 90 minutes;
- the connection is no shorter than 5 seconds.
If at least one of these conditions is not met (except when the number is unavailable), you will not be able to cancel the order. A response with the error code 400 will be returned.
-
USER_CHANGED_MIND
— the customer cancelled the order for personal reasons. -
USER_REFUSED_DELIVERY
— the buyer was not satisfied with the terms of delivery. -
USER_REFUSED_PRODUCT
— the product did not fit the buyer. -
SHOP_FAILED
— the store cannot complete the order. -
USER_REFUSED_QUALITY
— the buyer was not satisfied with the quality of the product. -
REPLACING_ORDER
— the buyer decided to replace the product with another one on his own initiative. -
PROCESSING_EXPIRED
— the value is no longer used. -
PICKUP_EXPIRED
— the storage period of the order in the PVZ has expired. -
TOO_MANY_DELIVERY_DATE_CHANGES
— the order has been postponed too many times. -
TOO_LONG_DELIVERY
— the order is taking too long to be delivered.
-
-
TECHNICAL_ERROR
— a technical error on the Market's side. Contact support.
Other values may also be returned. They do not need to be processed.
Type |
Description |
Enum: |
NotificationReturnItemDTO
Information about the product in non-purchase or return.
Name |
Description |
count* |
Type: integer The quantity of the product. |
offerId* |
Type: string Your SKU is the product identifier in your system. SKU Usage Rules:
The SKU of the product can be changed in the seller's account on the Market. Read about how to do this. in the Help of the Market for sellers. What is a SKU and how to assign it Min length: Max length: Pattern: |
ReturnType
Order type for filtering:
-
UNREDEEMED
— non-purchase. -
RETURN
— refund.
If you do not specify it, the response will include both non-purchases and refunds.
Type |
Description |
Enum: |
NotificationUpdatedReturnStatusesDTO
Information about updating the non-purchase or refund status.
Only the status that was changed is returned.
For non-purchases, only shipmentStatus
.
Parameter shipmentStatus
does not arrive for refunds with the option A quick refund for a cheap marriage, when the product remains with the buyer.
Name |
Description |
refundStatus |
Type: RefundStatusType Refund status:
Enum: |
shipmentStatus |
Type: ReturnShipmentStatusType Refund transfer status:
Enum: |
RefundStatusType
Refund status:
-
STARTED_BY_USER
— created by the client from his personal account. -
REFUND_IN_PROGRESS
— awaiting a decision on a refund. -
REFUNDED
— the money has been returned. -
FAILED
— it is impossible to make a refund to the buyer. -
WAITING_FOR_DECISION
— awaiting a decision (DBS). -
DECISION_MADE
— a decision has been made on the refund (DBS). -
REFUNDED_WITH_BONUSES
— the refund is made with Plus points or a promo code. -
REFUNDED_BY_SHOP
— the store made a refund on its own. -
COMPLETE_WITHOUT_REFUND
— No refund is required. -
CANCELLED
— the refund has been canceled. -
REJECTED
— the refund was rejected by moderation or by the PVZ. -
PREMODERATION_DISPUTE
— there is a dispute over the refund (FBS and Express). -
PREMODERATION_DECISION_WAITING
— awaiting a decision (FBS and Express). -
PREMODERATION_DECISION_MADE
— a decision has been made on the refund (FBS and Express). -
PREMODERATION_SELECT_DELIVERY
— the user chooses the delivery method (FBS and Express). -
UNKNOWN
— unknown status.
Type |
Description |
Enum: |
ReturnShipmentStatusType
Refund transfer status:
-
CREATED
— refund has been created. -
RECEIVED
— accepted from the buyer. -
IN_TRANSIT
— return on the way. -
READY_FOR_PICKUP
— the refund is ready to be issued to the store. -
PICKED
— a refund has been issued to the store. -
LOST
— the refund is lost during transportation. -
EXPIRED
— The buyer did not bring the goods for return on time. -
CANCELLED
— the refund has been canceled. -
FULFILMENT_RECEIVED
— the refund is accepted at the Market warehouse. -
PREPARED_FOR_UTILIZATION
— the return has been disposed of. -
NOT_IN_DEMAND
— the refund was not picked up from the post office. -
UTILIZED
— the refund has been disposed of. -
READY_FOR_EXPROPRIATION
— the items in the return are sent for resale. -
RECEIVED_FOR_EXPROPRIATION
— Items in the return are accepted for resale. -
UNKNOWN
— unknown status.
Type |
Description |
Enum: |
Responses
200 OK
A response to a valid request with information about notification processing.
Body
application/json
{
"version": "string",
"name": "string",
"time": "2022-12-29T18:02:01Z"
}
Name |
Description |
name* |
Type: string The name of the integration. Min length: Max length: |
time* |
Type: string<date-time> The date and time of the start of notification processing in UTC format. |
version* |
Type: string The integration version. Min length: Max length: |
400 Bad Request
If the Market has sent an incorrect notification, return the status 400
with a description of the error.
Body
application/json
{
"error": {
"type": "UNKNOWN",
"message": "string"
}
}
Name |
Description |
error |
Type: NotificationApiErrorDTO Error when processing the notification. |
NotificationApiErrorDTO
Error when processing the notification.
Name |
Description |
message |
Type: string Description of the error. |
type |
Type: NotificationApiErrorType Error type:
Enum: |
NotificationApiErrorType
Error type:
UNKNOWN
— unknown error.WRONG_EVENT_FORMAT
— incorrect notification type.DUPLICATED_EVENT
— duplicate notification.
Type |
Description |
Enum: |
500 Internal Server Error
If a technical error has occurred on your side, return the status 500
. The store's API is not responding
Body
application/json
{
"error": {
"type": "UNKNOWN",
"message": "string"
}
}
Name |
Description |
error |
Type: NotificationApiErrorDTO Error when processing the notification. |