---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.com/dev/market/partner-api/doc/en/step-by-step/fbs.md
  - https://yandex.com/dev/market/partner-api/doc/ru/step-by-step/fbs.md
  - https://yandex.com/dev/market/partner-api/doc/zh/step-by-step/fbs.md
  - href: en/step-by-step/fbs.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

# Processing FBS-orders

Yandex Market API it allows you to perform all the same actions that are performed in the cabinet: view new orders, receive labels for them, change something in them if necessary, and so on.

{% note tip "To understand how everything happens" %}

Read it [an article about order processing](https://yandex.ru/support/marketplace/orders/fbs/process.html).

{% endnote %}

## Step 1. Receiving orders {#new-orders}

Read the instructions: [Receiving orders — API survey or notifications](https://yandex.com/dev/market/partner-api/doc/en/step-by-step/orders-receive.md)

Make sure that all the items are in stock. If everything is in order, proceed to step 2. If something is missing, read the instructions first. [Postponement, cancellation and reduction of the order](#cancel-by-seller).


## Step 2. Generating an assembly sheet {#shipment-list}

Generation takes time, so first you need to make a request for the generation itself, and then to get the finished assembly sheet.

<!-- source: en/_includes/mermaid/shipment-list.md -->
```mermaid
%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#FDF3E8',
      'primaryTextColor': '#000000',
      'primaryBorderColor': '#BA9C80',
      'lineColor': '#BA9C80',
      'secondaryColor': '#94E1C4',
      'tertiaryColor': '#F84E57',
      'noteBkgColor': '#FED58D'
    }
  }
}%%

sequenceDiagram
    participant Merchant as Your store
    participant Market as Yandex Market

    rect rgb(251, 243, 232)
        note right of Merchant: Receiving the packing list
        Merchant ->>+ Market: POST v2/reports/documents/shipment-list/generate
        Market ->> Market: Places the packing list<br>in the generation queue.
        Market -->>- Merchant: OK: identifier with which<br>the ready packing list can be retrieved,<br>as well as the expected generation time<br>(reportId + estimatedGenerationTime).
    end

    opt
      rect rgb(251, 243, 232)
        note right of Merchant: Optional step
        note right of Merchant: Checking generation status
        Merchant ->> Market: GET v2/reports/info/<report_id>
        Market -->> Merchant: OK: status and estimated time remaining<br>(status + estimatedGenerationTime).
      end
    end

    rect rgb(251, 243, 232)
        note right of Merchant: Retrieving the ready packing list after the time specified in estimatedGenerationTime has passed
        Merchant ->> Market: GET v2/reports/info/<report_id>
        Market -->> Merchant: OK: status and link.<br>If generation succeeded — status = DONE + file.<br>If generation failed — status = FAILED or status = NODATA.
end
```
<!-- endsource: en/_includes/mermaid/shipment-list.md -->

1. Make a request [POST v2/reports/documents/shipment-list/generate](https://yandex.com/dev/market/partner-api/doc/en/reference/reports/generateShipmentListDocumentReport.md).
2. To find out if the build sheet is ready, make a request [GET v2/reports/info/{reportId}](https://yandex.com/dev/market/partner-api/doc/en/reference/reports/getReportInfo.md). You will receive the generation status and the estimated time remaining until it is completed.
3. After the generation time is over, repeat the request. [GET v2/reports/info/{reportId}](https://yandex.com/dev/market/partner-api/doc/en/reference/reports/getReportInfo.md). If the build sheet has been generated, you will receive a link to download it.


## Step 3. Transfer of labeling codes and distribution of goods by boxes {#order-info}

This information is transmitted simultaneously in a single request.: [PUT v2/campaigns/{campaignId}/orders/{orderId}/boxes](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/setOrderBoxLayout.md).

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

sequenceDiagram
    participant Merchant as Your store
    participant Market as Yandex Market

    rect rgb(251, 243, 232)
        note right of Merchant: Transfer of marking codes, if they are provided for specific goods,<br>and distribution of goods by boxes

        Merchant ->> Market: PUT v2/campaigns/{campaignId}/orders/{orderId}/boxes
        Market -->> Merchant: OK
    end
    opt
        rect rgb(251, 243, 232)
            note right of Merchant: Optional step
            note right of Merchant: Receiving statuses of marking code verification
            Merchant ->> Market: POST v2/campaigns/{campaignId}/orders/{orderId}/identifiers/status
            Market -->> Merchant: OK: verification information.
        end
    end
```
<!-- endsource: en/_includes/mermaid/fbs-order-info.md -->

### Marking codes {#marking-codes}

{% note info "Labeling of goods in the system ["An honest SIGN"](https://честныйзнак.рф/) optional for orders from individuals" %}

 

{% endnote %}

If the product is marked in «Честном знаке» or other labeling systems, give the Market the code of each sold copy.

For example, if a person ordered three pairs of identical slippers, three codes must be provided for this item in the order.

If the order contains jewelry or goods marked in the Honest Sign system, after transmitting the codes, the Market will begin checking them. [How to get verification statuses](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/getOrderIdentifiersStatus.md)


### Distribution by boxes {#boxes}

Before shipping the order, you need to provide the Market with information about how the goods are distributed in boxes. This information is sometimes needed if something goes wrong.

{% note info "What should I do if I need to change the order information?" %}

By request [PUT v2/campaigns/{campaignId}/orders/{orderId}/boxes](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/setOrderBoxLayout.md) you can use it as many times as you want until the order status changes **Ready for shipment**. Each new request replaces the data transmitted with the previous request.

{% endnote %}

## Step 4. Label printing and "Ready for shipment" status transmission {#fulfillment}

{% list tabs %}

- Labels for a single order

  <!-- source: en/_includes/mermaid/fbs-fulfillment.md -->
  ```mermaid
  %%{
    init: {
      'theme': 'base',
      'themeVariables': {
        'primaryColor': '#FDF3E8',
        'primaryTextColor': '#000000',
        'primaryBorderColor': '#BA9C80',
        'lineColor': '#BA9C80',
        'secondaryColor': '#94E1C4',
        'tertiaryColor': '#F84E57',
        'noteBkgColor': '#FED58D'
      }
    }
  }%%

  sequenceDiagram
      participant Merchant as Your store
      participant Market as Yandex Market

      opt
        rect rgb(251, 243, 232)
          note right of Merchant: Optional step
          note right of Merchant: Transferring external order ID
          Merchant ->> Market: POST v2/campaigns/{campaignId}/orders/{orderId}/external-id
          Market -->>+ Merchant: OK
        end
      end

      rect rgb(251, 243, 232)
          note right of Merchant: Receiving labels

          Merchant ->> Market: GET v2/campaigns/{campaignId}/orders/{orderId}/delivery/labels
          Market -->>+ Merchant: OK: order labels.
          Merchant ->>- Merchant: Packages orders.
      end

      rect rgb(251, 243, 232)
          note right of Merchant: Transferring status «Ready to ship» ("status": "PROCESSING" "substatus": "READY_TO_SHIP")
          Merchant ->> Market: PUT v2/campaigns/{campaignId}/orders/{orderId}/status<br>or<br>POST v2/campaigns/{campaignId}/orders/status-update
          Market -->> Merchant: OK
      end
  ```
  <!-- endsource: en/_includes/mermaid/fbs-fulfillment.md -->

- Shortcuts for multiple orders

  <!-- source: en/_includes/mermaid/fbs-fulfillment-mass-generation.md -->
  ```mermaid
  %%{
    init: {
      'theme': 'base',
      'themeVariables': {
        'primaryColor': '#FDF3E8',
        'primaryTextColor': '#000000',
        'primaryBorderColor': '#BA9C80',
        'lineColor': '#BA9C80',
        'secondaryColor': '#94E1C4',
        'tertiaryColor': '#F84E57',
        'noteBkgColor': '#FED58D'
      }
    }
  }%%

  sequenceDiagram
      participant Merchant as Your store
      participant Market as Yandex Market

      opt
        rect rgb(251, 243, 232)
          note right of Merchant: Optional step
          note right of Merchant: Transferring external order ID
          Merchant ->> Market: POST v2/campaigns/{campaignId}/orders/{orderId}/external-id
          Market -->>+ Merchant: OK
        end
      end

      rect rgb(251, 243, 232)
          note right of Merchant: Getting labels for multiple orders
          Merchant ->>+ Market: POST v2/reports/documents/labels/generate
          Market ->> Market: Places labels<br>in the generation queue.
          Market -->>- Merchant: OK: identifier to retrieve labels,<br>and estimated generation time (reportId + estimatedGenerationTime).
      end

      opt
        rect rgb(251, 243, 232)
          note right of Merchant: Optional step
          note right of Merchant: Checking generation status
          Merchant ->> Market: GET v2/reports/info/<report_id>
          Market -->> Merchant: OK: status and estimated time<br>(status + estimatedGenerationTime).
        end
      end

      rect rgb(251, 243, 232)
          note right of Merchant: Retrieving labels after the estimatedGenerationTime has passed
          Merchant ->> Market: GET v2/reports/info/<report_id>
          Market -->>+ Merchant: OK: status and link.<br>If generated successfully — status = DONE + file.<br>If generation failed — status = FAILED or status = NODATA.
          Merchant ->>- Merchant: Packs the orders.
      end

      rect rgb(251, 243, 232)
          note right of Merchant: Sending "Ready to ship" status ("status": "PROCESSING" "substatus": "READY_TO_SHIP")
          Merchant ->> Market: PUT v2/campaigns/{campaignId}/orders/{orderId}/status<br>or<br>POST v2/campaigns/{campaignId}/orders/status-update
          Market -->> Merchant: OK
      end
  ```
  <!-- endsource: en/_includes/mermaid/fbs-fulfillment-mass-generation.md -->

{% endlist %}

1. Pack the collected order according to the rules described in detail [in the Help of the Market for sellers](https://yandex.ru/support/marketplace/orders/fbs/packaging/index.html).

1. While the order is in the status `PROCESSING` with a sub-status `STARTED`, you can pass its external ID — [POST v2/campaigns/{campaignId}/orders/{orderId}/external-id](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/updateExternalOrderId.md).

1. Get the shortcuts using a request:

    * [GET v2/campaigns/{campaignId}/orders/{orderId}/delivery/labels](https://yandex.com/dev/market/partner-api/doc/en/reference/order-labels/generateOrderLabels.md) — for a single order;
    * [POST v2/reports/documents/labels/generate](https://yandex.com/dev/market/partner-api/doc/en/reference/reports/generateMassOrderLabelsReport.md) — for multiple orders.

1. Put labels on the packed order.

1. Set the order to the status **Ready for shipment** (`"status": "PROCESSING" "substatus": "READY_TO_SHIP"`) using a request:

    * [PUT v2/campaigns/{campaignId}/orders/{orderId}/status](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/updateOrderStatus.md) — for a single order;
    * [POST v2/campaigns/{campaignId}/orders/status-update](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/updateOrderStatuses.md) — for multiple orders.

    By doing this, you confirm that the product is in stock and will be shipped.

    Products in the status **Ready for shipment** they are included in the acceptance and transfer certificate.

## Step 5. Handling the shipment {#shipment}

<!-- source: en/_includes/mermaid/fbs-shipment.md -->
```mermaid
%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#FDF3E8',
      'primaryTextColor': '#000000',
      'primaryBorderColor': '#BA9C80',
      'lineColor': '#BA9C80',
      'secondaryColor': '#94E1C4',
      'tertiaryColor': '#F84E57',
      'noteBkgColor': '#FED58D'
    }
  }
}%%

sequenceDiagram
    participant Merchant as Your store
    participant Market as Yandex Market


    rect rgb(251, 243, 232)
        note right of Merchant: Shipment processing

        opt
            note right of Merchant: Optional steps
            note right of Merchant: For shipping goods without recounting (trusted acceptance)

            Merchant ->> Market: Number of packages<br>PUT v2/campaigns/{campaignId}/first-mile/shipments/{shipmentId}/pallets
            Market -->> Merchant: OK

            note right of Merchant: Getting labels
            Merchant ->> Market: GET v2/campaigns/{campaignId}/first-mile/shipments/{shipmentId}/pallet/labels
            Market -->> Merchant: OK: package labels.
        end

        note right of Merchant: Getting the acceptance certificate and confirming the shipment
        Merchant ->> Market: GET v2/campaigns/{campaignId}/shipments/reception-transfer-act
        Market -->> Merchant: OK
    end
```
<!-- endsource: en/_includes/mermaid/fbs-shipment.md -->

To ship orders, the driver will need an acceptance certificate. Using a request [GET v2/campaigns/{campaignId}/shipments/reception-transfer-act](https://yandex.com/dev/market/partner-api/doc/en/reference/shipments/downloadShipmentReceptionTransferAct.md) You can:

1. Receive and sign the acceptance certificate via the API. For information on how to enable work with electronic acceptance certificates, see [Yandex.Market Help for sellers](https://yandex.ru/support/marketplace/ru/start/models/fbs#manual).

1. Confirm the shipment. There is no such step when working in the office, but when working through the API — there is.

{% note warning "When can I receive the report and confirm the shipment?" %}

Only after all orders have been converted to the status **Ready for shipment**. If there are unconfirmed orders in the shipment, an error message with a list of orders will be sent in response to the request.

{% endnote %}

{% cut "Planned [confidential acceptance](*trust-acceptance)" %}

Send the number of packages using a request [PUT v2/campaigns/{campaignId}/first-mile/shipments/{shipmentId}/pallets](https://yandex.com/dev/market/partner-api/doc/en/reference/shipments/setShipmentPalletsCount.md).

To get shortcuts for them, use a request [GET v2/campaigns/{campaignId}/first-mile/shipments/{shipmentId}/pallet/labels](https://yandex.com/dev/market/partner-api/doc/en/reference/shipments/downloadShipmentPalletLabels.md).

{% endcut %}

## If the product is not enough: postponement, cancellation and reduction of the order {#cancel-by-seller}

During the preparation of an order, your warehouse may discover that one or more items are missing. If this happens, you will have to postpone the delivery of the order or cancel it in whole or in part.

The postponement of the delivery date and the complete cancellation of the order are made by separate requests.

To change the order composition, use [PUT v2/campaigns/{campaignId}/orders/{orderId}/boxes](https://yandex.com/dev/market/partner-api/doc/en/reference/orders/setOrderBoxLayout.md) — the same request that transmits the labeling codes and the distribution of goods in boxes.

<!-- source: en/_includes/mermaid/fbs-cancel.md -->
```mermaid
%%{
  init: {
    'theme': 'base',
    'themeVariables': {
      'primaryColor': '#FDF3E8',
      'primaryTextColor': '#000000',
      'primaryBorderColor': '#BA9C80',
      'lineColor': '#BA9C80',
      'secondaryColor': '#94E1C4',
      'tertiaryColor': '#F84E57',
      'noteBkgColor': '#FED58D'
    }
  }
}%%

sequenceDiagram
    participant Merchant as Your store
    participant Market as Yandex Market

    opt
      note right of Merchant: Optional steps

      rect rgb(251, 243, 232)
        note right of Merchant: If the warehouse doesn't have many needed items, you can cancel the order
        Merchant ->> Market: "status": "CANCELLED", "substatus": "SHOP_FAILED"<br>PUT v2/campaigns/{campaignId}/orders/{orderId}/status
        Market -->> Merchant: OK
      end

      rect rgb(251, 243, 232)
        note right of Merchant: If the warehouse is missing some items, you can remove them from the order
        Merchant ->> Market: PUT v2/campaigns/{campaignId}/orders/{orderId}/boxes
        Market -->> Merchant: OK
      end

      rect rgb(251, 243, 232)
        note right of Merchant: If the item is already on its way to the warehouse, you can change the delivery date
        Merchant ->> Market: POST v2/campaigns/{campaignId}/first-mile/shipments/{shipmentId}/orders/transfer
        Market -->> Merchant: OK
      end
    end
```
<!-- endsource: en/_includes/mermaid/fbs-cancel.md -->

|**Order action**| **Request**|
|-------------|-------------|
|Transfer to the next shipment|[POST v2/campaigns/{campaignId}/first-mile/shipments/{shipmentId}/orders/transfer](../reference/shipments/transferOrdersFromShipment.md)|
|Complete cancellation of the order|Request [PUT v2/campaigns/{campaignId}/orders/{orderId}/status](../reference/orders/updateOrderStatus.md). (Transfer the order to `"status":"CANCELLED"` `"substatus": "SHOP_FAILED"`.)|
|Exclusion of the product from the order|[PUT v2/campaigns/{campaignId}/orders/{orderId}/boxes](../reference/orders/setOrderBoxLayout.md)|

{% note warning "You can't do that often." %}

Any of these actions will lower the [quality index](*quality-index) the store. When the quality index decreases, the store faces limitations.

{% endnote %}

[*trust-acceptance]: Доверительная приемка — это передача заказов Маркету без пересчета в общей таре. [Узнать больше](https://yandex.ru/support/marketplace/orders/fbs/process.html#by-places)

[*quality-index]: Индекс качества — число от 0 до 100. Если магазин работает по модели FBY, индекс качества показывает, насколько хорошо продавец делает поставки на склады Маркета, а в моделях FBS, DBS и Экспресс индекс оценивает работу с заказами. [Узнать больше](https://yandex.ru/support/marketplace/quality/score/index.html)