---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.com/dev/market/partner-api/doc/en/concepts/dbs-order-status-model.md
  - https://yandex.com/dev/market/partner-api/doc/ru/concepts/dbs-order-status-model.md
  - https://yandex.com/dev/market/partner-api/doc/zh/concepts/dbs-order-status-model.md
  - href: en/concepts/dbs-order-status-model.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/market/partner-api/doc/en/llms.txt

# How order statuses change

The status change diagram shows the stages that go through DBS-the order, and the logic of transitions between statuses. This will help you correlate the statuses of Yandex. Market and your system, set up integration with Yandex.Market correctly, and avoid transmitting unnecessary statuses and substates.

**Designations:**

   * The diagram shows the order statuses and substates at each stage in the format `Status of the Sub-status`. For example, `PROCESSING STARTED`.

      List of substates `CANCELLED` see the section [Substates when canceling an order](#cancelled-substatuses).

   * The arrows show the transitions between the stages, and their color — when this transition occurs:

      * green — The store's status has changed.
      * blue — The market has changed its status.
      * orange — cancellation of an order by one of the parties;
      * red — exceptional cases.


{% note warning "Передавайте статусы в том порядке, в котором они описаны на схеме" %}


Otherwise, it will lead to an error.


{% endnote %}



<!-- source: en/_includes/mermaid/dbs-order-status-graph.md -->
```mermaid
%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#FDF3E8',
      'primaryTextColor': '#000000',
      'primaryBorderColor': '#BA9C80',
      'lineColor': '#BA9C80',
      'secondaryColor': '#FDF3E8',
      'tertiaryColor': '#FDF3E8',
      'noteBkgColor': '#FED58D'
    }
  }
}%%

flowchart TB
    UserCreation(Customer created an order) --> Started[PROCESSING STARTED]
    Started[PROCESSING STARTED] -->|Order transferred to delivery| Delivery[DELIVERY DELIVERY_SERVICE_RECEIVED]
    Started[PROCESSING STARTED] -->|Order cancelled| Cancelled3[CANCELLED Substatus]

    subgraph err1 [Appeal processing]
        direction TB
        DeliveryUserNotReceived[DELIVERY DELIVERY_USER_NOT_RECEIVED] -->|Arbitrator makes a decision to cancel| Cancelled1[CANCELLED Substatus]
        DeliveryUserNotReceived[DELIVERY DELIVERY_USER_NOT_RECEIVED] -->|Order delivered| Delivered2[DELIVERED DELIVERY_SERVICE_DELIVERED]
    end

    Delivery[DELIVERY DELIVERY_SERVICE_RECEIVED] -->|Delivery time expired, customer did not receive the order| err1
    Delivery[DELIVERY DELIVERY_SERVICE_RECEIVED] --> |Order accepted at pickup point| Pickup[PICKUP PICKUP_SERVICE_RECEIVED]
    Delivery[DELIVERY DELIVERY_SERVICE_RECEIVED] --> |Customer received the order| UserReceived[DELIVERY USER_RECEIVED]
    Delivery[DELIVERY DELIVERY_SERVICE_RECEIVED] --> |Order delivered| Delivered[DELIVERED DELIVERY_SERVICE_DELIVERED]
    Delivery[DELIVERY DELIVERY_SERVICE_RECEIVED] --> |Order cancelled| Cancelled4[CANCELLED Substatus]

    Pickup[PICKUP PICKUP_SERVICE_RECEIVED] -->|Order delivered| Delivered[DELIVERED DELIVERY_SERVICE_DELIVERED]
    Pickup[PICKUP PICKUP_SERVICE_RECEIVED] -->|Order cancelled| Cancelled2[CANCELLED Substatus]

    UserReceived[DELIVERY USER_RECEIVED] -->|Order delivered| Delivered1[DELIVERED DELIVERY_SERVICE_DELIVERED]

    Delivered[DELIVERED DELIVERY_SERVICE_DELIVERED] --> |Delivery time expired, customer did not receive the order| err2
    subgraph err2 [Appeal processing]
        direction TB
        DeliveredUserNotReceived[DELIVERED DELIVERED_USER_NOT_RECEIVED] -->|Arbitrator makes a decision to cancel| Cancelled[CANCELLED Substatus]
    end

    linkStyle 0,7,12 stroke:dodgerblue,stroke-width:2px;
    linkStyle 2,9,11 stroke:orange,stroke-width:2px;
    linkStyle 3,5,13,14 stroke:tomato,stroke-width:2px;
    linkStyle 1,4,6,8,10 stroke:green,stroke-width:2px;

    style Delivered stroke:green,stroke-width:3px;
    style Delivered1 stroke:dodgerblue,stroke-width:3px;
    style Delivered2 stroke:green,stroke-width:3px;
    style DeliveredUserNotReceived stroke:green,stroke-width:3px;

    style Cancelled stroke:tomato,stroke-width:3px;
    style Cancelled1 stroke:tomato,stroke-width:3px;
    style Cancelled2 stroke:orange,stroke-width:3px;
    style Cancelled3 stroke:orange,stroke-width:3px;
    style Cancelled4 stroke:orange,stroke-width:3px;
```
<!-- endsource: en/_includes/mermaid/dbs-order-status-graph.md -->



## Decoding the scheme {#details}

#|
|| **Status, sub-status, and stage description** | **Who is changing the status** | **Methods by which the status is changed or information about the order is received in this status** ||

|| `PROCESSING`<br>
`STARTED`

The store is processing the order. | Yandex. Market |

[POST v1/businesses/{businessId}/orders](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/getBusinessOrders.md)

[POST notification](https://yandex.com/dev/market/partner-api/doc/en/push-notifications/reference/sendNotification.md)
||

|| `DELIVERY`<br>
`DELIVERY_SERVICE_RECEIVED`

The order has been delivered. | Shop |

[POST v1/businesses/{businessId}/orders](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/getBusinessOrders.md)

[POST notification](https://yandex.com/dev/market/partner-api/doc/en/push-notifications/reference/sendNotification.md)

[PUT v2/campaigns/{campaignId}/orders/{orderId}/status](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/updateOrderStatus.md) ||

|| `DELIVERY`<br>
`USER_RECEIVED`

The customer received the order.

It is transmitted only when working through Yandex. Delivery.| Yandex. Market |

[POST v1/businesses/{businessId}/orders](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/getBusinessOrders.md)

[POST notification](https://yandex.com/dev/market/partner-api/doc/en/push-notifications/reference/sendNotification.md) ||

|| `DELIVERY`<br>
`DELIVERY_USER_NOT_RECEIVED`

The delivery time has expired, and the customer has not received the order.

Arbitration begins, as a result of which the order can be canceled or transferred to the status `DELIVERED DELIVERY_SERVICE_DELIVERED`. | Yandex. Market |

[POST v1/businesses/{businessId}/orders](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/getBusinessOrders.md)

[POST notification](https://yandex.com/dev/market/partner-api/doc/en/push-notifications/reference/sendNotification.md) ||

|| `PICKUP`<br>
`PICKUP_SERVICE_RECEIVED`

The order has been accepted at the PVZ. | Shop | [PUT v2/campaigns/{campaignId}/orders/{orderId}/status](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/updateOrderStatus.md) ||

|| `DELIVERED`<br>
`DELIVERY_SERVICE_DELIVERED`

The order has been delivered.

It is transmitted automatically when working via Yandex. Delivery.

If you are delivering on your own, change the status after the order is delivered.|
Yandex. Market

Shop |

[POST v1/businesses/{businessId}/orders](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/getBusinessOrders.md)

[POST notification](https://yandex.com/dev/market/partner-api/doc/en/push-notifications/reference/sendNotification.md)

[PUT v2/campaigns/{campaignId}/orders/{orderId}/status](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/updateOrderStatus.md)||

|| `DELIVERED`<br>
`DELIVERED_USER_NOT_RECEIVED`

The delivery time has expired, and the customer has not received the order.

Arbitration begins, as a result of which the order can be canceled or remain in the same status. | Yandex. Market |

[POST v1/businesses/{businessId}/orders](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/getBusinessOrders.md)

[POST notification](https://yandex.com/dev/market/partner-api/doc/en/push-notifications/reference/sendNotification.md) ||

|| `CANCELLED`<br>
[Substates](#cancelled-substatuses)

The order has been cancelled.

To cancel an order, pass the sub-status `SHOP_FAILED`.

If the order is in the status `DELIVERY` or `PICKUP` and the buyer cancelled it., [confirm the cancellation](*acceptOrderCancellation).
|
Yandex. Market

Shop

Buyer|

[POST v1/businesses/{businessId}/orders](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/getBusinessOrders.md)

[POST notification](https://yandex.com/dev/market/partner-api/doc/en/push-notifications/reference/sendNotification.md)

[PUT v2/campaigns/{campaignId}/orders/{orderId}/status](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/updateOrderStatus.md) ||
|#

## Substates when canceling an order {#cancelled-substatuses}

### The substates that the store can transmit

Depending on the current order status, the store can use the following cancellation sub-statuses:

* **In the status `PROCESSING`:**
  * `SHOP_FAILED` — the store cannot complete the order.
  * `USER_CHANGED_MIND` — the customer cancelled the order for personal reasons.
  * `USER_UNREACHABLE` — couldn't contact the buyer.
  * `INCORRECT_PERSONAL_DATA` — For an order from abroad, the recipient's information is incorrect, and the order will not be checked at customs.

* **In the status `DELIVERY`:**
  * `SHOP_FAILED` — the store cannot complete the order.
  * `USER_CHANGED_MIND` — the customer cancelled the order for personal reasons.
  * `USER_UNREACHABLE` — couldn't contact the buyer.

* **In the status `PICKUP`:**
  * `SHOP_FAILED` — the store cannot complete the order.
  * `USER_CHANGED_MIND` — the customer cancelled the order for personal reasons.
  * `USER_UNREACHABLE` — couldn't contact the buyer.
  * `PICKUP_EXPIRED` — the storage period of the order in the PVZ has expired.

### The substates that are set by the buyer or the system

* `RESERVATION_EXPIRED` — The customer did not complete the reserved order within 10 minutes.
* `USER_NOT_PAID` — the buyer did not pay for the order (for the payment type `PREPAID`) for 30 minutes.
* `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.
* `USER_REFUSED_QUALITY` — the buyer was not satisfied with the quality of the product.
* `USER_IDENTIFICATION_MISMATCH` — The buyer's identification document does not match the data in the order.
* `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.

Other values may also be returned. You don't need to process them.

[*acceptOrderCancellation]: [PUT v2/campaigns/{campaignId}/orders/{orderId}/cancellation/accept](../reference/orders/acceptOrderCancellation.md)