Order processing

You can use the Partner API to process orders from users of the Yandex.Market marketplace. The order processing process involves data exchange between Yandex.Market and the store.

Interaction via the API when processing orders

  1. When the customer starts placing an order, the store receives the POST /cart request to update the information on price, product availability, and so on. The store's response must contain up-to-date data.

  2. When the customer completes the order, it is generated on the Yandex.Market marketplace side with the "status": "RESERVED" status, and the store receives the POST /order/accept request to accept the order.

    The store must send a response confirming the order acceptance ("accepted": true) or rejection ("accepted": false).

    Примечание. If the store accepts the order, you must reserve products in stock.
  3. The Yandex.Market marketplace sends the order status information to the store. The status depends on the payment method.

    Payment when placing the order

    Yandex.Market sends the POST /order/status request with "status": "UNPAID" order status to the store. The customer has two hours to pay for the order. After payment, The Yandex.Market sends the POST /order/status request with the "status": "PROCESSING" order status and the "substatus": "STARTED" processing stage to the store — the store can process the order. If the order isn't paid within two hours, Yandex.Market sends the POST /order/status request with the "status": "CANCELLED" order status to the store.

    Payment when receiving the order

    Yandex.Market sends the POST /order/status request with the "status": "PROCESSING" order status and the "substatus": "STARTED" substatus (passed for processing) to the store — the store can process the order.

  4. The store must prepare the order for transfering to the sorting center and send the following requests:

    1. The PUT /campaigns/{campaignId}/orders/{orderId}/delivery/shipments/{shipmentId}/boxes request with information about shipping packages in the order. To get the shipment ID shipmentId, request information about the order. For more information, see Requesting the order information section.

    2. The GET /campaigns/{campaignId}/orders/{orderId}/delivery/shipments/{shipmentId}/boxes/{boxId}/label request to receive a sticker label for a chipping package or the GET /campaigns/{campaignId}/orders/{orderId}/delivery/labels request to get labels for all shipping packages in the order. You can also create labels yourself: to do this, get information for them using the GET /campaigns/{campaignId}/orders/{orderId}/delivery/labels/data request or read the Stiker label for the orderRU section in the Yandex.Market marketplace Help for partners.

    3. The PUT /campaigns/{campaignId}/orders/{orderId}/status request for processing one order or the POST /campaigns/{campaignId}/orders/status‑update request for processing several orders with the "status": "PROCESSING" order status and the "substatus": "READY_TO_SHIP" processing stage.

    If at this stage the store can't complete the order (for example, the product is out of stock or was damaged during packaging), you need to cancel the order.
    Примечание. You can cancel the order only at the "substatus": "STARTED" (sent for processing) or at the "substatus": "READY_TO_SHIP" processing stage.
  5. The store should prepare a delivery receipt for all orders shipped on the same day. To get it, use the GET /campaigns/{campaignId}/shipments/reception-transfer-act request or form it yourself as described in the Yandex.Market marketplace Help for partners.RU

  6. After the order is shipped to the courier service, the store should send the PUT /campaigns/{campaignId}/orders/{orderId}/status request for one order or POST /campaigns/{campaignId}/orders/status‑update request for several orders with the "status": "PROCESSING" order status and the "substatus": "SHIPPED" processing stage.

    Примечание. From this stage, the store should send updated information about the stock balances in the response to the POST /stocks requests from Yandex.Market. For more information, see Information about the stock balances.
  7. The store can track further order status changes through the Partner API by requesting information about this order or all orders. For more information, see Request for order information.

Order cancellation

If the store needs to cancel a received order, it should send the PUT /campaigns/{campaignId}/orders/{orderId}/status request for one order or the POST /campaigns/{campaignId}/orders/status‑update request for several orders with the "status": "CANCELLED" order status and the "substatus": "SHOP_FAILED" (the store can't complete the order) order cancellation reason. You can cancel an order if it is in the "status": "PROCESSING" status and at the "substatus": "STARTED" (sent for processing) or "substatus": "READY_TO_SHIP" processing stage.

If the store can't cancel the order using the API, you need to report the order cancellation via the feedback form.
Order cancellation reasons
The store can cancel the order if:
  • The product is listed in the database, but is out of stock.
  • The product of the specified color isn't available.
  • The last product item turned out to be defected.
  • The last product item was damaged.
Примечание. Keep in mind that service employees track orders that were canceled. This may affect your quality index in the future. If you cancel the order after confirmation, you will also have to pay the cancellation fee. For more information, see the sections about quality index and commissions in the Yandex.Market marketplace Help for partners.RU
After the order cancellation by the shop

The Yandex.Market marketplace will inform the customer about the order cancellation: the "cancelRequested": true parameter will appear in the order information. After the Yandex.Market marketplace contacts the customer, they confirm order cancellation by sending the POST /order/status request with the"status": "CANCELLED" order status and without the "cancelRequested": true parameter to the store.

Reserving products in stock

After the store accepts the order, it should wait when the "status": "PROCESSING" status and the "substatus": "STARTED" (accepted for processing) processing stage are received to start the order processing. If the customer chose payment at checkout, the Yandex.Market marketplace will pass this status within two hours while the customer pays for the order. The store should reserve the products from the stock for this time. Otherwise, a product might be already unavailable by the time the "status": "PROCESSING" status is received from the Yandex.Market marketplace.

Information about the the stock balances

Once every 15 minutes, Yandex.Market sends the POST /stocks request to get up-to-date information about the products remaining in stocks. The information from the Yandex.Market marketplace and the store must match. To avoid confusion with the products included in the order, the store should reduce the number of these products in stock in the response to the POST /stocks requests after the order is shipped.