---
title: "Move the Supply to the Delivery"
description: "Closes the supply and moves all assembly orders to complete (In Delivery) status. You cannot add any assembly orders to the supply after it is closed. If the…"
lang: en-US
source: https://valeryverkhoturov.github.io/wb-api-client-docs/en/reference/api/orders-fbs/patch-api-v3-supplies-supplyid-deliver
---

# Move the Supply to the Delivery

```http
PATCH /api/v3/supplies/{supplyId}/deliver
```

**Base URL:** `https://marketplace-api.wildberries.ru` · **Module:** [`orders-fbs`](https://valeryverkhoturov.github.io/wb-api-client-docs/en/reference/api/orders-fbs/) · **Section:** FBS Supplies · [Specification doc ↗](https://dev.wildberries.ru/en/docs/openapi/orders-fbs#tag/fbsSupplies/operation/patchV3SuppliesSupplyIdDeliver)

Closes the supply and moves all assembly orders to `complete` (`In Delivery`) status. You cannot add any assembly orders to the supply after it is closed.
If the supply wasn't handed over for delivery, than scanning its QR code or accepting the first item will automatically close the supply.
You can transfer the supply to delivery only if:

- there is at least one assembly order
- required labeling is specified for all assembly orders
- labeling of all assembly orders passed validation
  If the supply contains assembly orders with required UIN, make sure that you have created and uploaded the Delivery Contract Specification in advance. The [GIIS DMDK](https://minfin.gov.ru/ru/perfomance/jewels/dmdk) takes about 30 minutes to process changes in UIN statuses.
  It is required to [specify the shipping parameters](https://dev.wildberries.ru/openapi/orders-fbs#tag/fbsSupplies/operation/patchV3FbsSuppliesShippingMethod) for supplies from Russian sellers to Russia shipping points. If the shipping method, shipping date, or shipping point is not specified, a `409` error is returned.

[Request limit](https://dev.wildberries.ru/openapi/api-information#tag/introduction/Rate-Limits) per one seller account for **FBS assembly orders, supplies, passes and auto-return settings** methods:

| Period                                                           | Limit        | Interval | Burst       |
| ---------------------------------------------------------------- | ------------ | -------- | ----------- |
| 1 min                                                            | 300 requests | 200 ms   | 20 requests |
| One request with `4XX` response codes is counted as 10 requests. |

---

In [Sandbox](https://dev.wildberries.ru/en/sandbox) — maximum of 1 request per second for all **Marketplace** methods in total.

## Responses

| Code  | Description                      | Schema                      |
| ----- | -------------------------------- | --------------------------- |
| `204` | The supply moved to the delivery | —                           |
| `400` | Bad request                      | `Error`                     |
| `401` | Unauthorized                     | `object`                    |
| `402` | Payment required                 | `object`                    |
| `403` | Access denied                    | `Error`                     |
| `404` | Not found                        | `Error`                     |
| `409` | Error closing supply             | `Http409SupplyDeliverError` |
| `429` | Too many requests                | `object`                    |

**Structure `400`:**

- `code` `string` — Error code
- `message` `string` — Error description
- `data` `object` — Additional data for the error

**Structure `401`:**

- `title` `string` — Error title
- `detail` `string` — Error details
- `code` `string` — Internal error code
- `requestId` `string` — Unique request ID
- `origin` `string` — WB internal service ID
- `status` `number` — HTTP status code
- `statusText` `string` — Text of the HTTP status code
- `timestamp` `string` — Request date and time

**Structure `402`:**

- `title` `string` — Error title
- `detail` `string` — Error details. The error is only returned to services from the [Solutions for business Catalog](https://dev.wildberries.ru/business-solutions)

**Structure `403`:**

- `code` `string` — Error code
- `message` `string` — Error description
- `data` `object` — Additional data for the error

**Structure `404`:**

- `code` `string` — Error code
- `message` `string` — Error description
- `data` `object` — Additional data for the error

**Structure `409`:**

- `code` `string` — Error code
- `message` `string` — Error description
- `data` `object` — Additional data for the error
  - `orders` `object[]` — Assembly orders those label identifiers has not passed or has not yet completed validation
    - `id` `integer<int64>` — Assembly order ID
    - `metaDetails` `object[]` — Errors info
      - `key` `string` — Label identifier
      - `value` `string` — Label identifier value
      - `decision` `string` — State: - `imei` - `pending` — Label identifier validation continues. Wait for the validation status to change - `required` — Required label identifier is not added to the assembly order - `imeiInvalidFormat` — Invalid format - `imeiAlreadySold` — The item with this IMEI has already been sold - `uin` - `required` — Required label identifier is not added to the assembly order - `pending` — Label identifier validation continues. Wait for the validation status to change - `uinInvalidFormat` — Invalid format - `uinBadStatus` — Invalid batch status - `uinBadProcess` — Invalid processing stage - `uinBadStatusAndBadProcess` — Invalid batch status. Invalid processing stage - `uinNotFound` — Not found in GIIS DMDK [https://minfin.gov.ru/ru/perfomance/jewels/dmdk]. When you receive this error, make sure that the UIN: - is specified in the uploaded Delivery Contract Specification. If the specification was uploaded more than 30 minutes ago, [delete UIN](https://dev.wildberries.ru/openapi/orders-fbs#tag/fbsLabelIdentifiers/operation/deleteV3OrdersOrderIdMeta) from the assembly order and [add it](https://dev.wildberries.ru/openapi/orders-fbs#tag/fbsLabelIdentifiers/operation/putV3OrdersOrderIdMetaUin) again - is registered in GIIS DMDK - is specified correctly and is read from the tag without errors - is in circulation - `sgtin` - `pending` — Label identifier validation continues. Wait for the validation status to change - `required` — Required label identifier is not added to the assembly order - `sgtinInvalidFormat` — Invalid format - `sgtinNoGS` — Label identifier does not contain the GS separator `\u001d` - `sgtinHasInvalidSymbols` — Label identifier contains incorrect characters or spaces - `sgtinHasNonLatinSymbols` — Label identifier contains non-special or Latin characters - `sgtinInvalidPattern` — Label identifier structure is incorrect - `sgtinNotFound` — Label identifier not found in [Chestny ZNAK](https://chestnyznak.ru/en/) - `sgtinEmitted` — Label identifier has been issued - `sgtinApplied` — Putting into circulation not completed - `sgtinWrittenOff` — Written off - `sgtinRetired` — Retired - `sgtinWithdrawn` — Withdrawn - `sgtinDisaggregation` — Disaggregation - `sgtinDisaggregated` — Disaggregated - `sgtinAppliedNotPaid` — Not paid - `gtin` - `required` — Required label identifier is not added to the assembly order - `expiration` - `required` — Required label identifier is not added to the assembly order - `customsDeclaration` - `required` — Required label identifier is not added to the assembly order

**Structure `429`:**

- `title` `string` — Error title
- `detail` `string` — Error details
- `code` `string` — Internal error code
- `requestId` `string` — Unique request ID
- `origin` `string` — WB internal service ID
- `status` `number` — HTTP status code
- `statusText` `string` — Text of the HTTP status code
- `timestamp` `string` — Request date and time

## Call examples

Arguments are shown as parameter names — substitute your own values. Languages whose client does not expose this operation are omitted.

**Python**

```python
from wb_api_client.orders_fbs import Configuration, ApiClient
from wb_api_client.orders_fbs.api import OrdersFbsApi

cfg = Configuration(access_token="<your WB JWT>")
api = OrdersFbsApi(ApiClient(cfg))

result = api.patch_v3_supplies_supply_id_deliver(supply_id=...)
print(result)
```

**TypeScript**

```ts
import {
  Configuration,
  OrdersFbsApi,
} from "@valeryverkhoturov/wb-api-client/orders-fbs";

const cfg = new Configuration({});
cfg.setAccessToken("<your WB JWT>");
const api = new OrdersFbsApi(cfg);

const { data } = await api.patchV3SuppliesSupplyIdDeliver(supplyId);
console.log(data);
```

**Go**

```go
import (
	"context"
	"fmt"

	wbordersfbs "github.com/ValeryVerkhoturov/wb-api-client-go/orders_fbs"
)

cfg := wbordersfbs.NewConfiguration()
cfg.SetAccessToken("<your WB JWT>")
client := wbordersfbs.NewAPIClient(cfg)

result, _, err := client.OrdersFbsAPI.PatchV3SuppliesSupplyIdDeliver(context.Background(), supplyId).Execute()
if err != nil {
    panic(err)
}
fmt.Printf("%+v\n", result)
```

**Java**

```java
import io.github.valeryverkhoturov.wbapi.orders_fbs.ApiClient;
import io.github.valeryverkhoturov.wbapi.orders_fbs.SecretString;
import io.github.valeryverkhoturov.wbapi.orders_fbs.api.OrdersFbsApi;

ApiClient client = new ApiClient();
client.setAccessToken(new SecretString("<your WB JWT>"));
OrdersFbsApi api = new OrdersFbsApi(client);

System.out.println(api.patchV3SuppliesSupplyIdDeliver(supplyId));
```

**PHP**

```php
use ValeryVerkhoturov\WbApiClient\OrdersFbs\Configuration;
use ValeryVerkhoturov\WbApiClient\OrdersFbs\SecretString;
use ValeryVerkhoturov\WbApiClient\OrdersFbs\Api\OrdersFbsApi;
use GuzzleHttp\Client;

$config = (new Configuration())
    ->setAccessTokenSecret(new SecretString('<your WB JWT>'));
$api = new OrdersFbsApi(new Client(), $config);

print_r($api->patchV3SuppliesSupplyIdDeliver($supply_id));
```

**OneScript**

```bsl
#Использовать "wb-api-client"

Настройки = Новый Конфигурация();
Настройки.УстановитьТокен("<your WB JWT>");
Клиент = Новый OrdersFbsApi(Настройки);

Сообщить(Клиент.PatchV3SuppliesSupplyIdDeliver(supplyId).Тело);
```

**C#**

```csharp
using ValeryVerkhoturov.WbApiClient.OrdersFbs.Api;
using ValeryVerkhoturov.WbApiClient.OrdersFbs.Client;

var config = new Configuration();
config.AccessTokenSecret = new SecretString("<your WB JWT>");
var api = new OrdersFbsApi(config);

Console.WriteLine(api.PatchV3SuppliesSupplyIdDeliver(supplyId));
```

**Rust**

```rust
use wb_api_client::orders_fbs::apis::{configuration::Configuration, orders_fbs_api};

#[tokio::main]
async fn main() {
    let mut cfg = Configuration::new();
    cfg.set_access_token("<your WB JWT>");

    let result = orders_fbs_api::patch_v3_supplies_supply_id_deliver(&cfg, supply_id).await;
    println!("{:#?}", result);
}
```
