Send Documents
Every operation below is generated from the OpenAPI v2 specification and includes parameters, request fields, response fields, errors, and examples.
Send Documents
List send documents
| operationId | listSendDocuments |
|---|---|
| Tag | Send Documents |
| Security | bearerAuth |
Returns send documents visible to the authenticated account. Use documented query parameters for filtering, sorting, and pagination.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
HTTP request example (cURL)
Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.
curl --globoff --request GET "${NWMS_BASE_URL}/api/v2/send-documents" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}"Parameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
page |
query | no | integer:int64 |
form | true | min: 1 | Page number. The same filter may also be sent as filter[page] where supported by the Laravel query adapter. |
1 |
per_page |
query | no | integer:int64 |
form | true | min: 1 max: 100 |
Number of records per page. Default is 20; maximum is 100. The same filter may also be sent as filter[per_page] where supported by the Laravel query adapter. |
20 |
sort |
query | no | string |
form | false | pattern: ^-?[A-Za-z0-9_]+(,-?[A-Za-z0-9_]+)*$ | Comma-separated sort fields. Prefix with - for descending order. Allowed fields: id, document_date, status_id, warehouse_id, order_count, processing_mode, pipeline_state, created_at, updated_at. Default: -id. The same filter may also be sent as filter[sort] where supported by the Laravel query adapter. |
"-id" |
include |
query | no | string |
form | false | Comma-separated optional relations. Allowed values: status, warehouse, delivery_services, orders, orders.products, orders.datamatrix, orders.wildberries, wildberries_supplies, batch. The same filter may also be sent as filter[include] where supported by the Laravel query adapter. |
"status,warehouse,delivery_services,orders,orders.products,orders.datamatrix,orders.wildberries,wildberries_supplies,batch" |
|
id |
query | no | integer:int64 |
form | true | min: 1 | Filter by id using exact matching. The same filter may also be sent as filter[id] where supported by the Laravel query adapter. |
1001 |
status_id |
query | no | integer:int64 |
form | true | min: 1 | Filter by status_id using exact matching. The same filter may also be sent as filter[status_id] where supported by the Laravel query adapter. |
1 |
warehouse_id |
query | no | integer:int64 |
form | true | min: 1 | Filter by warehouse_id using exact matching. The same filter may also be sent as filter[warehouse_id] where supported by the Laravel query adapter. |
42 |
delivery_service_id |
query | no | integer:int64 |
form | true | min: 1 | Filter by delivery_service_id using exact matching. The same filter may also be sent as filter[delivery_service_id] where supported by the Laravel query adapter. |
1 |
order_id |
query | no | integer:int64 |
form | true | min: 1 | Filter by order_id using exact matching. The same filter may also be sent as filter[order_id] where supported by the Laravel query adapter. |
1 |
processing_mode |
query | no | string |
form | true | Filter by processing_mode using exact matching. The same filter may also be sent as filter[processing_mode] where supported by the Laravel query adapter. |
"standard" |
|
pipeline_state |
query | no | string |
form | true | Filter by pipeline_state using exact matching. The same filter may also be sent as filter[pipeline_state] where supported by the Laravel query adapter. |
"open" |
|
wb_fulfillment_state |
query | no | string |
form | true | Filter by wb_fulfillment_state using exact matching. The same filter may also be sent as filter[wb_fulfillment_state] where supported by the Laravel query adapter. |
"delivered" |
|
comment |
query | no | string |
form | true | Filter by comment using partial text matching. The same filter may also be sent as filter[comment] where supported by the Laravel query adapter. |
"Priority" |
|
document_date_from |
query | no | string:date |
form | true | Lower inclusive date boundary for document_date. The same filter may also be sent as filter[document_date_from] where supported by the Laravel query adapter. |
"2026-07-14" |
|
document_date_to |
query | no | string:date |
form | true | Upper inclusive date boundary for document_date. The same filter may also be sent as filter[document_date_to] where supported by the Laravel query adapter. |
"2026-07-14" |
|
created_at_from |
query | no | string:date |
form | true | Lower inclusive date boundary for created_at. The same filter may also be sent as filter[created_at_from] where supported by the Laravel query adapter. |
"2026-07-14" |
|
created_at_to |
query | no | string:date |
form | true | Upper inclusive date boundary for created_at. The same filter may also be sent as filter[created_at_to] where supported by the Laravel query adapter. |
"2026-07-14" |
|
updated_at_from |
query | no | string:date |
form | true | Lower inclusive date boundary for updated_at. The same filter may also be sent as filter[updated_at_from] where supported by the Laravel query adapter. |
"2026-07-14" |
|
updated_at_to |
query | no | string:date |
form | true | Upper inclusive date boundary for updated_at. The same filter may also be sent as filter[updated_at_to] where supported by the Laravel query adapter. |
"2026-07-14" |
Request body
No request body.
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | array<SendDocument> |
|
|||
data[] |
no | SendDocument |
Outbound shipment document with its complete operational composition. Collection relations are empty unless requested through include; the item endpoint always loads them. |
|
||
data[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data[].status_id |
no | integer:int64 | null |
1 |
|||
data[].status |
no | object | null |
|
|||
data[].status.id |
yes | integer:int64 |
1 |
|||
data[].status.name |
yes | string |
"Открыт" |
|||
data[].status.color |
no | string | null |
"#2457c5" |
|||
data[].status.background_color |
no | string | null |
"#eaf0ff" |
|||
data[].warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data[].warehouse |
no | object | null |
|
|||
data[].warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data[].warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data[].warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data[].warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data[].delivery_service_ids |
yes | array<integer:int64> |
|
|||
data[].delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data[].delivery_services |
yes | array<SendDocumentDeliveryService> |
|
|||
data[].delivery_services[] |
no | SendDocumentDeliveryService |
|
|||
data[].delivery_services[].id |
yes | integer:int64 |
min: 1 | 17 |
||
data[].delivery_services[].name |
yes | string |
"Wildberries FBS" |
|||
data[].delivery_services[].status_id |
yes | integer:int64 |
1 |
|||
data[].delivery_services[].external_id |
no | string | null |
"wb-fbs" |
|||
data[].delivery_services[].source_id |
no | string | null |
"wildberries" |
|||
data[].delivery_services[].delivery_type |
no | string | null |
"pickup_point" |
|||
data[].delivery_services[].is_courier |
yes | boolean |
false |
|||
data[].document_date |
no | string:date | null |
"2026-08-11" |
|||
data[].closed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data[].comment |
no | string | null |
"Wildberries shipment 740" |
|||
data[].order_count |
yes | integer:int64 |
min: 0 | 1 |
||
data[].processing |
yes | SendDocumentProcessing |
|
|||
data[].processing.mode |
no | string | null |
"standard" |
|||
data[].processing.pipeline |
yes | array<string> |
|
|||
data[].processing.pipeline[] |
no | string |
"assignment" |
|||
data[].processing.state |
no | string | null |
"open" |
|||
data[].processing.batch_profile_id |
no | integer:int64 | null |
min: 1 | 31 |
||
data[].processing.batch_profile |
no | object | null |
|
|||
data[].processing.batch_profile.id |
yes | integer:int64 |
min: 1 | 31 |
||
data[].processing.batch_profile.name |
yes | string |
"Standard packing" |
|||
data[].processing.batch_profile.processing_mode |
no | string | null |
"standard" |
|||
data[].processing.composition_frozen_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].processing.batch_started_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].processing.batch_completed_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].wildberries |
yes | SendDocumentWildberries |
Wildberries document-level state and safe supply/QR/sticker artifact metadata. Binary label content and encrypted provider payloads are not returned. | |
||
data[].wildberries.fulfillment_state |
no | string | null |
"delivered" |
|||
data[].wildberries.error_message |
no | string | null |
"" |
|||
data[].wildberries.processed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data[].wildberries.supplies |
yes | array<object> |
|
|||
data[].wildberries.supplies[] |
no | object |
|
|||
data[].orders |
yes | array<SendDocumentOrderAssignment> |
|
|||
data[].orders[] |
no | SendDocumentOrderAssignment |
|
|||
data[].orders[].assignment_id |
yes | integer:int64 |
min: 1 | 8801 |
||
data[].orders[].marked_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data[].orders[].created_at |
no | string:date-time | null |
"2026-08-11T09:00:00Z" |
|||
data[].orders[].updated_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data[].orders[].order |
yes | object | null |
Complete order snapshot embedded into a shipment document. Marketplace and batch objects preserve provider-specific fields. | |
||
data[].orders[].order.id |
yes | integer:int64 |
min: 1 | 49060 |
||
data[].orders[].order.external_id |
no | string | null |
"WB-900001234" |
|||
data[].orders[].order.status_id |
no | integer:int64 | null |
20 |
|||
data[].orders[].order.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data[].orders[].order.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data[].orders[].order.order_date |
no | string:date | null |
"2026-08-10" |
|||
data[].orders[].order.send_date |
no | string:date | null |
"2026-08-11" |
|||
data[].orders[].order.amounts |
no | object | null |
|
|||
data[].orders[].order.amounts.shipping_price |
no | number:float | null |
8.6 |
|||
data[].orders[].order.amounts.shipping_cost |
no | number:float | null |
0 |
|||
data[].orders[].order.amounts.sum |
no | number:float | null |
39.98 |
|||
data[].orders[].order.amounts.cod_sum |
no | number:float | null |
48.58 |
|||
data[].orders[].order.contact |
no | object | null |
|
|||
data[].orders[].order.contact.first_name |
no | string | null |
"Ivan" |
|||
data[].orders[].order.contact.middle_name |
no | string | null |
"Ivanovich" |
|||
data[].orders[].order.contact.last_name |
no | string | null |
"Petrov" |
|||
data[].orders[].order.contact.phone |
no | string | null |
"+359888123456" |
|||
data[].orders[].order.contact.email |
no | string:email | null |
"customer@example.com" |
|||
data[].orders[].order.contact.country_id |
no | integer:int64 | null |
min: 1 | 100 |
||
data[].orders[].order.contact.city_id |
no | integer:int64 | null |
min: 1 | 200 |
||
data[].orders[].order.contact.postcode |
no | string | null |
"1000" |
|||
data[].orders[].order.contact.latitude |
no | number:float | null |
min: -90 max: 90 |
42.6977 |
||
data[].orders[].order.contact.longitude |
no | number:float | null |
min: -180 max: 180 |
23.3219 |
||
data[].orders[].order.contact.full_address |
no | string | null |
"1 Vitosha Boulevard, Sofia" |
|||
data[].orders[].order.delivery |
no | object | null |
|
|||
data[].orders[].order.delivery.service_id |
no | integer:int64 | null |
min: 1 | 1 |
||
data[].orders[].order.delivery.delivery_type |
yes | enum | null |
enum: door, pickup_point | Normalized delivery channel derived from the configured delivery service. Null when the service type is unknown. | "door" |
|
data[].orders[].order.delivery.is_courier |
yes | boolean |
True for door delivery; false for pickup-point delivery or an unknown service type. | true |
||
data[].orders[].order.delivery.status |
no | string | null |
"created" |
|||
data[].orders[].order.delivery.track_number |
no | string | null |
"CDEK-123456789" |
|||
data[].orders[].order.delivery.pickup_point_id |
no | string | null |
"SOFIA-01" |
|||
data[].orders[].order.delivery.source_id |
no | string | null |
"cdek-15" |
|||
data[].orders[].order.delivery.tariff_code |
no | integer:int64 | null |
136 |
|||
data[].orders[].order.delivery.additional_services |
no | object |
Values of additional CDEK services configured for the selected integration. Boolean true enables a code-only service; other values are sent as the CDEK parameter. |
{"TRYING_ON":true,"PART_DELIV":false,"PACKAGE_1":2} |
||
data[].orders[].order.delivery.label |
no | string:uri | null |
"https://betawms.ffcdek.ru/labels/CDEK-123456789.pdf" |
|||
data[].orders[].order.delivery.delivery_date |
no | string:date | null |
"2026-07-16" |
|||
data[].orders[].order.delivery.delivery_time_start |
no | string:time | null |
"09:00:00Z" |
|||
data[].orders[].order.delivery.delivery_time_end |
no | string:time | null |
"18:00:00Z" |
|||
data[].orders[].order.comments |
no | object | null |
|
|||
data[].orders[].order.comments.delivery_service_text |
no | string | null |
"Call before delivery" |
|||
data[].orders[].order.comments.inner_text |
no | string | null |
"VIP customer" |
|||
data[].orders[].order.offers |
yes | array<SendDocumentOrderLine> |
|
|||
data[].orders[].order.offers[] |
no | SendDocumentOrderLine |
|
|||
data[].orders[].order.offers[].id |
yes | integer:int64 |
min: 1 | 7001 |
||
data[].orders[].order.offers[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data[].orders[].order.offers[].quantity |
no | number:float | null |
2 |
|||
data[].orders[].order.offers[].estimated_price |
no | number:float | null |
19.5 |
|||
data[].orders[].order.offers[].price |
no | number:float | null |
19.99 |
|||
data[].orders[].order.offers[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data[].orders[].order.offers[].batch |
no | string | null |
"LOT-2026" |
|||
data[].orders[].order.offers[].operation_user_id |
no | integer:int64 | null |
min: 1 | 9 |
||
data[].orders[].order.offers[].product |
no | object | null |
|
|||
data[].orders[].order.offers[].reservation |
no | object | null |
Reservation totals for one order line. | |
||
data[].orders[].order.offers[].reservation_items |
no | array<OrderReservationItem> |
|
|||
data[].orders[].order.offers[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].orders[].order.offers[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].orders[].order.datamatrix_codes |
yes | array<DataMatrix> |
|
|||
data[].orders[].order.datamatrix_codes[] |
no | DataMatrix |
Marked goods DataMatrix code. | |
||
data[].orders[].order.datamatrix_codes[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data[].orders[].order.datamatrix_codes[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].orders[].order.datamatrix_codes[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].orders[].order.datamatrix_codes[].domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data[].orders[].order.datamatrix_codes[].warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data[].orders[].order.datamatrix_codes[].status_id |
no | enum:int64 | null |
enum: 0, 1, 2 | 0 - Imported and available for future warehouse operations. 1 - Reserved or attached by an operational document. 2 - Used by an outbound or completed operation. |
0 |
|
data[].orders[].order.datamatrix_codes[].acceptance_id |
no | integer:int64 | null |
min: 1 | 5101 |
||
data[].orders[].order.datamatrix_codes[].order_id |
no | integer:int64 | null |
min: 1 | 8101 |
||
data[].orders[].order.datamatrix_codes[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data[].orders[].order.datamatrix_codes[].barcode |
no | string | null |
maxLength: 14 | "04601234567890" |
||
data[].orders[].order.datamatrix_codes[].short_code |
no | string | null |
maxLength: 14 | "ABC123" |
||
data[].orders[].order.datamatrix_codes[].crypto_tail |
no | string | null |
"CRYPTO" |
|||
data[].orders[].order.datamatrix_codes[].datamatrix |
no | string | null |
maxLength: 125 | "010460123456789021ABC123" |
||
data[].orders[].order.datamatrix_codes[].production_date |
no | string:date | null |
"2026-01-15" |
|||
data[].orders[].order.datamatrix_codes[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data[].orders[].order.datamatrix_codes[].batch |
no | string | null |
"LOT-2026" |
|||
data[].orders[].order.datamatrix_codes[].used_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].orders[].order.warehouse |
no | object | null |
|
|||
data[].orders[].order.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data[].orders[].order.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data[].orders[].order.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data[].orders[].order.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data[].orders[].order.shop |
no | object | null |
|
|||
data[].orders[].order.shop.id |
yes | integer:int64 |
min: 1 | 12 |
||
data[].orders[].order.shop.name |
yes | string |
"Demo Online Store" |
|||
data[].orders[].order.shop.status_id |
no | integer:int64 | null |
1 |
|||
data[].orders[].order.company |
no | object | null |
|
|||
data[].orders[].order.company.id |
yes | integer:int64 |
min: 1 | 7 |
||
data[].orders[].order.company.name |
yes | string |
"Demo Company" |
|||
data[].orders[].order.company.legal_name |
no | string | null |
"Demo Company Ltd." |
|||
data[].orders[].order.place |
no | object | null |
|
|||
data[].orders[].order.accumulation_place |
no | object | null |
|
|||
data[].orders[].order.measurements |
no | object | null |
|
|||
data[].orders[].order.settings |
no | object | null |
|
|||
data[].orders[].order.consumables |
yes | array<object> |
|
|||
data[].orders[].order.consumables[] |
no | object |
|
|||
data[].orders[].order.wildberries |
no | object | null |
|
|||
data[].orders[].order.wildberries.completed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data[].orders[].order.batch_matches |
yes | array<object> |
|
|||
data[].orders[].order.batch_matches[] |
no | object |
|
|||
links |
yes | PaginationLinks |
|
|||
links.first |
yes | string:uri | null |
"https://betawms.ffcdek.ru/api/v2/orders?page=1" |
|||
links.last |
yes | string:uri | null |
"https://betawms.ffcdek.ru/api/v2/orders?page=2" |
|||
links.prev |
yes | string:uri | null |
|
|||
links.next |
yes | string:uri | null |
"https://betawms.ffcdek.ru/api/v2/orders?page=2" |
|||
meta |
yes | PaginationMeta |
|
|||
meta.api_version |
yes | enum |
enum: v2 | "v2" |
||
meta.current_page |
yes | integer:int32 |
min: 1 | 1 |
||
meta.from |
yes | integer:int32 | null |
min: 1 | 1 |
||
meta.last_page |
yes | integer:int32 |
min: 1 | 2 |
||
meta.path |
yes | string:uri |
"https://betawms.ffcdek.ru/api/v2/orders" |
|||
meta.per_page |
yes | integer:int32 |
min: 1 | 50 |
||
meta.to |
yes | integer:int32 | null |
min: 1 | 50 |
||
meta.total |
yes | integer:int32 |
min: 0 | 73 |
Response examples
success
{
"data": [
{
"id": 740,
"domain_id": 3,
"status_id": 1,
"status": {
"id": 1,
"name": "Открыт",
"color": "#2457c5",
"background_color": "#eaf0ff"
},
"warehouse_id": 42,
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"delivery_service_ids": [
17
],
"delivery_services": [
{
"id": 17,
"name": "Wildberries FBS",
"status_id": 1,
"external_id": "wb-fbs",
"source_id": "wildberries",
"delivery_type": "pickup_point",
"is_courier": false
}
],
"document_date": "2026-08-11",
"closed_at": "2026-08-11T10:15:00Z",
"comment": "Wildberries shipment 740",
"order_count": 1,
"processing": {
"mode": "standard",
"pipeline": [
"assignment",
"marking",
"transfer"
],
"state": "open",
"batch_profile_id": null,
"batch_profile": null,
"composition_frozen_at": null,
"batch_started_at": null,
"batch_completed_at": null
},
"wildberries": {
"fulfillment_state": "delivered",
"error_message": null,
"processed_at": "2026-08-11T10:15:00Z",
"supplies": [
{
"id": 3201,
"account_id": 71,
"external_id": "WB-GI-740",
"name": "Поставка 740",
"state": "delivered",
"state_name": "Доставлена",
"destination_type": "office",
"destination_office_id": 507,
"is_automatic": false,
"is_b2b": false,
"cargo_type": "box",
"cross_border_type": null,
"order_count": 1,
"current_qr": {
"id": 3301,
"kind": "supply_qr",
"format": "svg",
"width": 580,
"height": 400,
"barcode": "WB-GI-740",
"part_a": null,
"part_b": null,
"content_hash": "sha256:qr-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:00:00Z",
"last_printed_at": null,
"print_count": 0
},
"boxes": [
],
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-11T09:00:00Z",
"remote_closed_at": null,
"last_synced_at": "2026-08-11T10:15:00Z",
"delivered_at": "2026-08-11T10:15:00Z"
}
]
},
"orders": [
{
"assignment_id": 8801,
"marked_at": "2026-08-11T09:30:00Z",
"created_at": "2026-08-11T09:00:00Z",
"updated_at": "2026-08-11T09:30:00Z",
"order": {
"id": 49060,
"external_id": "WB-900001234",
"status_id": 20,
"warehouse_id": 42,
"shop_id": 12,
"order_date": "2026-08-10",
"send_date": "2026-08-11",
"amounts": {
"shipping_price": 0,
"shipping_cost": 0,
"sum": 39.98,
"cod_sum": 0
},
"contact": {
"first_name": "Иван",
"middle_name": null,
"last_name": "Петров",
"phone": "+359888123456",
"email": "customer@example.com",
"country_id": 100,
"city_id": 200,
"postcode": "1000",
"latitude": 42.6977,
"longitude": 23.3219,
"full_address": "Sofia"
},
"delivery": {
"service_id": 17,
"delivery_type": "pickup_point",
"is_courier": false,
"status": "created",
"track_number": "WB-900001234",
"pickup_point_id": "WB-SOF-01",
"source_id": "wildberries",
"tariff_code": null,
"additional_services": {
},
"label": null,
"delivery_date": "2026-08-12",
"delivery_time_start": null,
"delivery_time_end": null
},
"comments": {
"delivery_service_text": null,
"inner_text": "Клиентский пример для документа 740"
},
"offers": [
{
"id": 7001,
"product_id": 1201,
"quantity": 2,
"estimated_price": 19.5,
"price": 19.99,
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"operation_user_id": 9,
"product": {
"id": 1201,
"external_id": "EXT-10045",
"shop_id": 12,
"domain_id": 3,
"status_id": 1,
"type_id": 1,
"name": "Coffee 250g",
"article": "ART-001245",
"sku": "SKU-001245",
"price": 19.99,
"estimated_price": 21.5,
"image_url": null,
"dimensions": {
"x": 105,
"y": 200,
"z": 32,
"unit": "mm"
},
"weight": {
"value": 250,
"unit": "g"
},
"datamatrix_required": true,
"expiration_required": true,
"comment": null,
"description": "Ground coffee package",
"barcodes": [
{
"barcode": "4601234567890",
"is_main": true
}
],
"package": {
"kind": "unit",
"parent_product_id": null,
"base_product_id": null,
"multiplicity": null,
"base_multiplicity": null,
"depth": 0
},
"created_at": "2026-08-01T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
},
"reservation": {
"required_qty": 2,
"reserved_qty": 2,
"unreserved_qty": 0,
"missing_qty": 0,
"status": "reserved"
},
"reservation_items": [
],
"created_at": "2026-08-10T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
}
],
"datamatrix_codes": [
{
"id": 6101,
"domain_id": 3,
"warehouse_id": 42,
"status_id": 1,
"acceptance_id": 5101,
"order_id": 49060,
"product_id": 1201,
"barcode": "04601234567890",
"short_code": "ABC123",
"crypto_tail": "CRYPTO",
"datamatrix": "010460123456789021ABC123",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"created_at": "2026-08-11T09:15:00Z",
"updated_at": "2026-08-11T09:15:00Z",
"used_at": null
}
],
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"shop": {
"id": 12,
"name": "Demo Online Store",
"status_id": 1
},
"company": {
"id": 7,
"name": "Demo Company",
"legal_name": "Demo Company Ltd."
},
"place": null,
"accumulation_place": null,
"measurements": {
"places": 1,
"dimensions": {
"x": 220,
"y": 160,
"z": 120,
"unit": "mm"
},
"weight": {
"value": 600,
"unit": "g"
}
},
"settings": {
"blank_url": null
},
"consumables": [
],
"wildberries": {
"id": 2101,
"account_id": 71,
"wb_order_id": "900001234",
"order_uid": "WB-UID-49060",
"rid": "WB-RID-49060",
"product_id": 1201,
"state": "confirmed",
"state_name": "Подтверждён",
"fulfillment_state": "delivered",
"fulfillment_state_name": "Доставлен",
"supplier_status": "confirm",
"wb_status": "sold",
"supply_id": 3201,
"external_supply_id": "WB-GI-740",
"supply_state": "delivered",
"delivery_type": "fbs",
"cross_border_type": null,
"is_b2b": false,
"wb_warehouse_id": 507,
"office_id": 507,
"nm_id": 12345678,
"chrt_id": 87654321,
"article": "ART-001245",
"skus": [
"4601234567890"
],
"required_meta": [
"sgtin"
],
"optional_meta": [
],
"meta_state": "accepted",
"sticker_state": "ready",
"prices": {
"price_minor": 1999,
"final_price_minor": 1999,
"sale_price_minor": 1999,
"currency": "RUB"
},
"markings": [
{
"id": 1,
"datamatrix_id": 6101,
"type": "sgtin",
"masked_value": "010460…ABC123",
"value_hash": "sha256:example",
"state": "accepted",
"remote_decision": "accepted",
"error_code": null,
"error_message": null,
"submitted_at": "2026-08-11T09:30:00Z",
"verified_at": "2026-08-11T09:31:00Z",
"ambiguous_at": null
}
],
"current_sticker": {
"id": 3401,
"kind": "order_sticker",
"format": "png",
"width": 580,
"height": 400,
"barcode": "WB-900001234",
"part_a": "123456",
"part_b": "7890",
"content_hash": "sha256:sticker-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:25:00Z",
"last_printed_at": null,
"print_count": 0
},
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-10T09:00:00Z",
"seller_date": "2026-08-10",
"delivery_date": "2026-08-12",
"confirmed_at": "2026-08-11T09:20:00Z",
"completed_at": "2026-08-11T10:15:00Z",
"imported_at": "2026-08-10T09:05:00Z",
"mapped_at": "2026-08-10T09:06:00Z",
"reserved_at": "2026-08-11T09:10:00Z",
"remote_status_checked_at": "2026-08-11T10:15:00Z"
},
"batch_matches": [
]
}
}
],
"created_at": "2026-08-11T08:45:00Z",
"updated_at": "2026-08-11T10:15:00Z"
}
],
"links": {
"first": "https://betawms.ffcdek.ru/api/v2/send-documents?page=1",
"last": "https://betawms.ffcdek.ru/api/v2/send-documents?page=3",
"prev": null,
"next": "https://betawms.ffcdek.ru/api/v2/send-documents?page=2"
},
"meta": {
"api_version": "v2",
"current_page": 1,
"from": 1,
"last_page": 3,
"path": "https://betawms.ffcdek.ru/api/v2/send-documents",
"per_page": 20,
"to": 20,
"total": 43
}
}
401 Authentication required
Unauthorized
Authentication is required.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
AUTH_REQUIRED
{
"message": "Authentication is required.",
"error": "AUTH_REQUIRED"
}
403 Forbidden
Forbidden
The authenticated account is not allowed to perform this action.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
FORBIDDEN
{
"message": "The authenticated account is not allowed to perform this action.",
"error": "FORBIDDEN"
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
Create send document
| operationId | createSendDocuments |
|---|---|
| Tag | Send Documents |
| Security | bearerAuth |
Create send document. The request uses the documented payload schema, validates tenant visibility, and returns a normalized API envelope.
HTTP request example (cURL)
Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.
curl --globoff --request POST "${NWMS_BASE_URL}/api/v2/send-documents" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
--header "Content-Type: application/json" \
--data-binary @request.jsonParameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
CreateSendDocumentRequest required
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | CreateSendDocumentPayload |
Creates an open shipment document. Warehouse and delivery services must be active and visible in tenant scope. | |
||
data.document_date |
yes | string:date |
"2026-08-11" |
|||
data.warehouse_id |
yes | integer:int64 |
min: 1 | 42 |
||
data.delivery_service_ids |
yes | array<integer:int64> |
minItems: 1 | |
||
data.delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data.comment |
no | string | null |
maxLength: 1000 | "Wildberries shipment 740" |
Request examples
default
{
"data": {
"document_date": "2026-08-11",
"warehouse_id": 42,
"delivery_service_ids": [
17
],
"comment": "Wildberries shipment 740"
}
}
Responses
201 Created.
Created.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | SendDocument |
Outbound shipment document with its complete operational composition. Collection relations are empty unless requested through include; the item endpoint always loads them. |
|
||
data.id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.status_id |
no | integer:int64 | null |
1 |
|||
data.status |
no | object | null |
|
|||
data.status.id |
yes | integer:int64 |
1 |
|||
data.status.name |
yes | string |
"Открыт" |
|||
data.status.color |
no | string | null |
"#2457c5" |
|||
data.status.background_color |
no | string | null |
"#eaf0ff" |
|||
data.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.warehouse |
no | object | null |
|
|||
data.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.delivery_service_ids |
yes | array<integer:int64> |
|
|||
data.delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data.delivery_services |
yes | array<SendDocumentDeliveryService> |
|
|||
data.delivery_services[] |
no | SendDocumentDeliveryService |
|
|||
data.delivery_services[].id |
yes | integer:int64 |
min: 1 | 17 |
||
data.delivery_services[].name |
yes | string |
"Wildberries FBS" |
|||
data.delivery_services[].status_id |
yes | integer:int64 |
1 |
|||
data.delivery_services[].external_id |
no | string | null |
"wb-fbs" |
|||
data.delivery_services[].source_id |
no | string | null |
"wildberries" |
|||
data.delivery_services[].delivery_type |
no | string | null |
"pickup_point" |
|||
data.delivery_services[].is_courier |
yes | boolean |
false |
|||
data.document_date |
no | string:date | null |
"2026-08-11" |
|||
data.closed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.comment |
no | string | null |
"Wildberries shipment 740" |
|||
data.order_count |
yes | integer:int64 |
min: 0 | 1 |
||
data.processing |
yes | SendDocumentProcessing |
|
|||
data.processing.mode |
no | string | null |
"standard" |
|||
data.processing.pipeline |
yes | array<string> |
|
|||
data.processing.pipeline[] |
no | string |
"assignment" |
|||
data.processing.state |
no | string | null |
"open" |
|||
data.processing.batch_profile_id |
no | integer:int64 | null |
min: 1 | 31 |
||
data.processing.batch_profile |
no | object | null |
|
|||
data.processing.batch_profile.id |
yes | integer:int64 |
min: 1 | 31 |
||
data.processing.batch_profile.name |
yes | string |
"Standard packing" |
|||
data.processing.batch_profile.processing_mode |
no | string | null |
"standard" |
|||
data.processing.composition_frozen_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_started_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_completed_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.wildberries |
yes | SendDocumentWildberries |
Wildberries document-level state and safe supply/QR/sticker artifact metadata. Binary label content and encrypted provider payloads are not returned. | |
||
data.wildberries.fulfillment_state |
no | string | null |
"delivered" |
|||
data.wildberries.error_message |
no | string | null |
"" |
|||
data.wildberries.processed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.wildberries.supplies |
yes | array<object> |
|
|||
data.wildberries.supplies[] |
no | object |
|
|||
data.orders |
yes | array<SendDocumentOrderAssignment> |
|
|||
data.orders[] |
no | SendDocumentOrderAssignment |
|
|||
data.orders[].assignment_id |
yes | integer:int64 |
min: 1 | 8801 |
||
data.orders[].marked_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].created_at |
no | string:date-time | null |
"2026-08-11T09:00:00Z" |
|||
data.orders[].updated_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].order |
yes | object | null |
Complete order snapshot embedded into a shipment document. Marketplace and batch objects preserve provider-specific fields. | |
||
data.orders[].order.id |
yes | integer:int64 |
min: 1 | 49060 |
||
data.orders[].order.external_id |
no | string | null |
"WB-900001234" |
|||
data.orders[].order.status_id |
no | integer:int64 | null |
20 |
|||
data.orders[].order.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.order_date |
no | string:date | null |
"2026-08-10" |
|||
data.orders[].order.send_date |
no | string:date | null |
"2026-08-11" |
|||
data.orders[].order.amounts |
no | object | null |
|
|||
data.orders[].order.amounts.shipping_price |
no | number:float | null |
8.6 |
|||
data.orders[].order.amounts.shipping_cost |
no | number:float | null |
0 |
|||
data.orders[].order.amounts.sum |
no | number:float | null |
39.98 |
|||
data.orders[].order.amounts.cod_sum |
no | number:float | null |
48.58 |
|||
data.orders[].order.contact |
no | object | null |
|
|||
data.orders[].order.contact.first_name |
no | string | null |
"Ivan" |
|||
data.orders[].order.contact.middle_name |
no | string | null |
"Ivanovich" |
|||
data.orders[].order.contact.last_name |
no | string | null |
"Petrov" |
|||
data.orders[].order.contact.phone |
no | string | null |
"+359888123456" |
|||
data.orders[].order.contact.email |
no | string:email | null |
"customer@example.com" |
|||
data.orders[].order.contact.country_id |
no | integer:int64 | null |
min: 1 | 100 |
||
data.orders[].order.contact.city_id |
no | integer:int64 | null |
min: 1 | 200 |
||
data.orders[].order.contact.postcode |
no | string | null |
"1000" |
|||
data.orders[].order.contact.latitude |
no | number:float | null |
min: -90 max: 90 |
42.6977 |
||
data.orders[].order.contact.longitude |
no | number:float | null |
min: -180 max: 180 |
23.3219 |
||
data.orders[].order.contact.full_address |
no | string | null |
"1 Vitosha Boulevard, Sofia" |
|||
data.orders[].order.delivery |
no | object | null |
|
|||
data.orders[].order.delivery.service_id |
no | integer:int64 | null |
min: 1 | 1 |
||
data.orders[].order.delivery.delivery_type |
yes | enum | null |
enum: door, pickup_point | Normalized delivery channel derived from the configured delivery service. Null when the service type is unknown. | "door" |
|
data.orders[].order.delivery.is_courier |
yes | boolean |
True for door delivery; false for pickup-point delivery or an unknown service type. | true |
||
data.orders[].order.delivery.status |
no | string | null |
"created" |
|||
data.orders[].order.delivery.track_number |
no | string | null |
"CDEK-123456789" |
|||
data.orders[].order.delivery.pickup_point_id |
no | string | null |
"SOFIA-01" |
|||
data.orders[].order.delivery.source_id |
no | string | null |
"cdek-15" |
|||
data.orders[].order.delivery.tariff_code |
no | integer:int64 | null |
136 |
|||
data.orders[].order.delivery.additional_services |
no | object |
Values of additional CDEK services configured for the selected integration. Boolean true enables a code-only service; other values are sent as the CDEK parameter. |
{"TRYING_ON":true,"PART_DELIV":false,"PACKAGE_1":2} |
||
data.orders[].order.delivery.label |
no | string:uri | null |
"https://betawms.ffcdek.ru/labels/CDEK-123456789.pdf" |
|||
data.orders[].order.delivery.delivery_date |
no | string:date | null |
"2026-07-16" |
|||
data.orders[].order.delivery.delivery_time_start |
no | string:time | null |
"09:00:00Z" |
|||
data.orders[].order.delivery.delivery_time_end |
no | string:time | null |
"18:00:00Z" |
|||
data.orders[].order.comments |
no | object | null |
|
|||
data.orders[].order.comments.delivery_service_text |
no | string | null |
"Call before delivery" |
|||
data.orders[].order.comments.inner_text |
no | string | null |
"VIP customer" |
|||
data.orders[].order.offers |
yes | array<SendDocumentOrderLine> |
|
|||
data.orders[].order.offers[] |
no | SendDocumentOrderLine |
|
|||
data.orders[].order.offers[].id |
yes | integer:int64 |
min: 1 | 7001 |
||
data.orders[].order.offers[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.offers[].quantity |
no | number:float | null |
2 |
|||
data.orders[].order.offers[].estimated_price |
no | number:float | null |
19.5 |
|||
data.orders[].order.offers[].price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.offers[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.offers[].operation_user_id |
no | integer:int64 | null |
min: 1 | 9 |
||
data.orders[].order.offers[].product |
no | object | null |
|
|||
data.orders[].order.offers[].product.id |
yes | integer:int64 |
min: 1 | 1201 |
||
data.orders[].order.offers[].product.external_id |
no | string | null |
"EXT-10045" |
|||
data.orders[].order.offers[].product.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.offers[].product.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.offers[].product.status_id |
no | enum:int64 | null |
enum: 1, 2, 3 | 1 - active; 2 - disabled; 3 - deleted. |
1 |
|
data.orders[].order.offers[].product.type_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.offers[].product.name |
yes | string |
"Coffee 250g" |
|||
data.orders[].order.offers[].product.article |
no | string | null |
"ART-001245" |
|||
data.orders[].order.offers[].product.sku |
no | string | null |
"SKU-001245" |
|||
data.orders[].order.offers[].product.price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].product.estimated_price |
no | number:float | null |
21.5 |
|||
data.orders[].order.offers[].product.image_url |
no | string:uri | null |
"https://betawms.ffcdek.ru/offer-images/products/coffee-250g.jpg" |
|||
data.orders[].order.offers[].product.dimensions |
yes | Dimensions |
|
|||
data.orders[].order.offers[].product.weight |
yes | Weight |
|
|||
data.orders[].order.offers[].product.datamatrix_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.expiration_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.comment |
no | string | null |
"Keep dry" |
|||
data.orders[].order.offers[].product.description |
no | string | null |
"Ground coffee package" |
|||
data.orders[].order.offers[].product.barcodes |
yes | array<ProductBarcode> |
|
|||
data.orders[].order.offers[].product.package |
yes | object |
|
|||
data.orders[].order.offers[].product.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].product.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].reservation |
no | object | null |
Reservation totals for one order line. | |
||
data.orders[].order.offers[].reservation.required_qty |
yes | number:float |
3 |
|||
data.orders[].order.offers[].reservation.reserved_qty |
yes | number:float |
1 |
|||
data.orders[].order.offers[].reservation.unreserved_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.missing_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.status |
yes | enum |
enum: not_required, missing, partial, reserved | Reservation state calculated from the quantity required by the order and the quantity actually reserved. | "partial" |
|
data.orders[].order.offers[].reservation_items |
no | array<OrderReservationItem> |
|
|||
data.orders[].order.offers[].reservation_items[] |
no | OrderReservationItem |
Physical product or expanded component used to explain a reservation shortage. | |
||
data.orders[].order.offers[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes |
yes | array<DataMatrix> |
|
|||
data.orders[].order.datamatrix_codes[] |
no | DataMatrix |
Marked goods DataMatrix code. | |
||
data.orders[].order.datamatrix_codes[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.orders[].order.datamatrix_codes[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.datamatrix_codes[].warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.datamatrix_codes[].status_id |
no | enum:int64 | null |
enum: 0, 1, 2 | 0 - Imported and available for future warehouse operations. 1 - Reserved or attached by an operational document. 2 - Used by an outbound or completed operation. |
0 |
|
data.orders[].order.datamatrix_codes[].acceptance_id |
no | integer:int64 | null |
min: 1 | 5101 |
||
data.orders[].order.datamatrix_codes[].order_id |
no | integer:int64 | null |
min: 1 | 8101 |
||
data.orders[].order.datamatrix_codes[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.datamatrix_codes[].barcode |
no | string | null |
maxLength: 14 | "04601234567890" |
||
data.orders[].order.datamatrix_codes[].short_code |
no | string | null |
maxLength: 14 | "ABC123" |
||
data.orders[].order.datamatrix_codes[].crypto_tail |
no | string | null |
"CRYPTO" |
|||
data.orders[].order.datamatrix_codes[].datamatrix |
no | string | null |
maxLength: 125 | "010460123456789021ABC123" |
||
data.orders[].order.datamatrix_codes[].production_date |
no | string:date | null |
"2026-01-15" |
|||
data.orders[].order.datamatrix_codes[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.datamatrix_codes[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.datamatrix_codes[].used_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.warehouse |
no | object | null |
|
|||
data.orders[].order.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.orders[].order.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.orders[].order.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.orders[].order.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.orders[].order.shop |
no | object | null |
|
|||
data.orders[].order.shop.id |
yes | integer:int64 |
min: 1 | 12 |
||
data.orders[].order.shop.name |
yes | string |
"Demo Online Store" |
|||
data.orders[].order.shop.status_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.company |
no | object | null |
|
|||
data.orders[].order.company.id |
yes | integer:int64 |
min: 1 | 7 |
||
data.orders[].order.company.name |
yes | string |
"Demo Company" |
|||
data.orders[].order.company.legal_name |
no | string | null |
"Demo Company Ltd." |
|||
data.orders[].order.place |
no | object | null |
|
|||
data.orders[].order.accumulation_place |
no | object | null |
|
|||
data.orders[].order.measurements |
no | object | null |
|
|||
data.orders[].order.settings |
no | object | null |
|
|||
data.orders[].order.consumables |
yes | array<object> |
|
|||
data.orders[].order.consumables[] |
no | object |
|
|||
data.orders[].order.wildberries |
no | object | null |
|
|||
data.orders[].order.wildberries.completed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.orders[].order.batch_matches |
yes | array<object> |
|
|||
data.orders[].order.batch_matches[] |
no | object |
|
|||
meta |
yes | ResponseMeta |
|
|||
meta.api_version |
yes | enum |
enum: v2 | "v2" |
||
meta.deleted |
no | boolean |
true |
|||
meta.id |
no | integer:int64 | null |
min: 1 | 1001 |
||
meta.command_replayed |
no | boolean |
True when an idempotent cross-dock command returned the original successful result. | false |
||
meta.crossdock_configuration |
no | object | null |
|
|||
meta.crossdock_configuration.physical_warehouse_id |
yes | integer:int64 |
min: 1 | 42 |
||
meta.crossdock_configuration.enabled |
yes | boolean |
true |
|||
meta.crossdock_configuration.process_version |
yes | string |
"direct_order_v1" |
Response examples
success
{
"data": {
"id": 740,
"domain_id": 3,
"status_id": 1,
"status": {
"id": 1,
"name": "Открыт",
"color": "#2457c5",
"background_color": "#eaf0ff"
},
"warehouse_id": 42,
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"delivery_service_ids": [
17
],
"delivery_services": [
{
"id": 17,
"name": "Wildberries FBS",
"status_id": 1,
"external_id": "wb-fbs",
"source_id": "wildberries",
"delivery_type": "pickup_point",
"is_courier": false
}
],
"document_date": "2026-08-11",
"closed_at": "2026-08-11T10:15:00Z",
"comment": "Wildberries shipment 740",
"order_count": 1,
"processing": {
"mode": "standard",
"pipeline": [
"assignment",
"marking",
"transfer"
],
"state": "open",
"batch_profile_id": null,
"batch_profile": null,
"composition_frozen_at": null,
"batch_started_at": null,
"batch_completed_at": null
},
"wildberries": {
"fulfillment_state": "delivered",
"error_message": null,
"processed_at": "2026-08-11T10:15:00Z",
"supplies": [
{
"id": 3201,
"account_id": 71,
"external_id": "WB-GI-740",
"name": "Поставка 740",
"state": "delivered",
"state_name": "Доставлена",
"destination_type": "office",
"destination_office_id": 507,
"is_automatic": false,
"is_b2b": false,
"cargo_type": "box",
"cross_border_type": null,
"order_count": 1,
"current_qr": {
"id": 3301,
"kind": "supply_qr",
"format": "svg",
"width": 580,
"height": 400,
"barcode": "WB-GI-740",
"part_a": null,
"part_b": null,
"content_hash": "sha256:qr-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:00:00Z",
"last_printed_at": null,
"print_count": 0
},
"boxes": [
],
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-11T09:00:00Z",
"remote_closed_at": null,
"last_synced_at": "2026-08-11T10:15:00Z",
"delivered_at": "2026-08-11T10:15:00Z"
}
]
},
"orders": [
{
"assignment_id": 8801,
"marked_at": "2026-08-11T09:30:00Z",
"created_at": "2026-08-11T09:00:00Z",
"updated_at": "2026-08-11T09:30:00Z",
"order": {
"id": 49060,
"external_id": "WB-900001234",
"status_id": 20,
"warehouse_id": 42,
"shop_id": 12,
"order_date": "2026-08-10",
"send_date": "2026-08-11",
"amounts": {
"shipping_price": 0,
"shipping_cost": 0,
"sum": 39.98,
"cod_sum": 0
},
"contact": {
"first_name": "Иван",
"middle_name": null,
"last_name": "Петров",
"phone": "+359888123456",
"email": "customer@example.com",
"country_id": 100,
"city_id": 200,
"postcode": "1000",
"latitude": 42.6977,
"longitude": 23.3219,
"full_address": "Sofia"
},
"delivery": {
"service_id": 17,
"delivery_type": "pickup_point",
"is_courier": false,
"status": "created",
"track_number": "WB-900001234",
"pickup_point_id": "WB-SOF-01",
"source_id": "wildberries",
"tariff_code": null,
"additional_services": {
},
"label": null,
"delivery_date": "2026-08-12",
"delivery_time_start": null,
"delivery_time_end": null
},
"comments": {
"delivery_service_text": null,
"inner_text": "Клиентский пример для документа 740"
},
"offers": [
{
"id": 7001,
"product_id": 1201,
"quantity": 2,
"estimated_price": 19.5,
"price": 19.99,
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"operation_user_id": 9,
"product": {
"id": 1201,
"external_id": "EXT-10045",
"shop_id": 12,
"domain_id": 3,
"status_id": 1,
"type_id": 1,
"name": "Coffee 250g",
"article": "ART-001245",
"sku": "SKU-001245",
"price": 19.99,
"estimated_price": 21.5,
"image_url": null,
"dimensions": {
"x": 105,
"y": 200,
"z": 32,
"unit": "mm"
},
"weight": {
"value": 250,
"unit": "g"
},
"datamatrix_required": true,
"expiration_required": true,
"comment": null,
"description": "Ground coffee package",
"barcodes": [
{
"barcode": "4601234567890",
"is_main": true
}
],
"package": {
"kind": "unit",
"parent_product_id": null,
"base_product_id": null,
"multiplicity": null,
"base_multiplicity": null,
"depth": 0
},
"created_at": "2026-08-01T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
},
"reservation": {
"required_qty": 2,
"reserved_qty": 2,
"unreserved_qty": 0,
"missing_qty": 0,
"status": "reserved"
},
"reservation_items": [
],
"created_at": "2026-08-10T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
}
],
"datamatrix_codes": [
{
"id": 6101,
"domain_id": 3,
"warehouse_id": 42,
"status_id": 1,
"acceptance_id": 5101,
"order_id": 49060,
"product_id": 1201,
"barcode": "04601234567890",
"short_code": "ABC123",
"crypto_tail": "CRYPTO",
"datamatrix": "010460123456789021ABC123",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"created_at": "2026-08-11T09:15:00Z",
"updated_at": "2026-08-11T09:15:00Z",
"used_at": null
}
],
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"shop": {
"id": 12,
"name": "Demo Online Store",
"status_id": 1
},
"company": {
"id": 7,
"name": "Demo Company",
"legal_name": "Demo Company Ltd."
},
"place": null,
"accumulation_place": null,
"measurements": {
"places": 1,
"dimensions": {
"x": 220,
"y": 160,
"z": 120,
"unit": "mm"
},
"weight": {
"value": 600,
"unit": "g"
}
},
"settings": {
"blank_url": null
},
"consumables": [
],
"wildberries": {
"id": 2101,
"account_id": 71,
"wb_order_id": "900001234",
"order_uid": "WB-UID-49060",
"rid": "WB-RID-49060",
"product_id": 1201,
"state": "confirmed",
"state_name": "Подтверждён",
"fulfillment_state": "delivered",
"fulfillment_state_name": "Доставлен",
"supplier_status": "confirm",
"wb_status": "sold",
"supply_id": 3201,
"external_supply_id": "WB-GI-740",
"supply_state": "delivered",
"delivery_type": "fbs",
"cross_border_type": null,
"is_b2b": false,
"wb_warehouse_id": 507,
"office_id": 507,
"nm_id": 12345678,
"chrt_id": 87654321,
"article": "ART-001245",
"skus": [
"4601234567890"
],
"required_meta": [
"sgtin"
],
"optional_meta": [
],
"meta_state": "accepted",
"sticker_state": "ready",
"prices": {
"price_minor": 1999,
"final_price_minor": 1999,
"sale_price_minor": 1999,
"currency": "RUB"
},
"markings": [
{
"id": 1,
"datamatrix_id": 6101,
"type": "sgtin",
"masked_value": "010460…ABC123",
"value_hash": "sha256:example",
"state": "accepted",
"remote_decision": "accepted",
"error_code": null,
"error_message": null,
"submitted_at": "2026-08-11T09:30:00Z",
"verified_at": "2026-08-11T09:31:00Z",
"ambiguous_at": null
}
],
"current_sticker": {
"id": 3401,
"kind": "order_sticker",
"format": "png",
"width": 580,
"height": 400,
"barcode": "WB-900001234",
"part_a": "123456",
"part_b": "7890",
"content_hash": "sha256:sticker-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:25:00Z",
"last_printed_at": null,
"print_count": 0
},
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-10T09:00:00Z",
"seller_date": "2026-08-10",
"delivery_date": "2026-08-12",
"confirmed_at": "2026-08-11T09:20:00Z",
"completed_at": "2026-08-11T10:15:00Z",
"imported_at": "2026-08-10T09:05:00Z",
"mapped_at": "2026-08-10T09:06:00Z",
"reserved_at": "2026-08-11T09:10:00Z",
"remote_status_checked_at": "2026-08-11T10:15:00Z"
},
"batch_matches": [
]
}
}
],
"created_at": "2026-08-11T08:45:00Z",
"updated_at": "2026-08-11T10:15:00Z"
},
"meta": {
"api_version": "v2"
}
}
400 Bad request
BadRequest
Bad request.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
BAD_REQUEST
{
"message": "Bad request.",
"error": "BAD_REQUEST"
}
401 Authentication required
Unauthorized
Authentication is required.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
AUTH_REQUIRED
{
"message": "Authentication is required.",
"error": "AUTH_REQUIRED"
}
403 Forbidden
Forbidden
The authenticated account is not allowed to perform this action.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
FORBIDDEN
{
"message": "The authenticated account is not allowed to perform this action.",
"error": "FORBIDDEN"
}
409 Conflict
SendDocumentConflict
The shipment document lifecycle or composition does not allow the requested operation.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
documentStateConflict
{
"message": "Состав документа уже заморожен.",
"errors": {
"send_document": [
"Состав документа уже заморожен."
]
}
}
422 Validation error
ValidationError
Validation failed.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
validationError
{
"message": "The given data was invalid.",
"error": "VALIDATION_ERROR",
"errors": {
"warehouse_id": [
"The selected warehouse is invalid."
]
}
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
Get send document
| operationId | getSendDocuments |
|---|---|
| Tag | Send Documents |
| Security | bearerAuth |
Returns one send document when it exists and is visible to the authenticated account.
HTTP request example (cURL)
Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.
curl --globoff --request GET "${NWMS_BASE_URL}/api/v2/send-documents/740" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}"Parameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
id |
path | yes | integer:int64 |
min: 1 | Shipment document ID. | 740 |
Request body
No request body.
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | SendDocument |
Outbound shipment document with its complete operational composition. Collection relations are empty unless requested through include; the item endpoint always loads them. |
|
||
data.id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.status_id |
no | integer:int64 | null |
1 |
|||
data.status |
no | object | null |
|
|||
data.status.id |
yes | integer:int64 |
1 |
|||
data.status.name |
yes | string |
"Открыт" |
|||
data.status.color |
no | string | null |
"#2457c5" |
|||
data.status.background_color |
no | string | null |
"#eaf0ff" |
|||
data.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.warehouse |
no | object | null |
|
|||
data.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.delivery_service_ids |
yes | array<integer:int64> |
|
|||
data.delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data.delivery_services |
yes | array<SendDocumentDeliveryService> |
|
|||
data.delivery_services[] |
no | SendDocumentDeliveryService |
|
|||
data.delivery_services[].id |
yes | integer:int64 |
min: 1 | 17 |
||
data.delivery_services[].name |
yes | string |
"Wildberries FBS" |
|||
data.delivery_services[].status_id |
yes | integer:int64 |
1 |
|||
data.delivery_services[].external_id |
no | string | null |
"wb-fbs" |
|||
data.delivery_services[].source_id |
no | string | null |
"wildberries" |
|||
data.delivery_services[].delivery_type |
no | string | null |
"pickup_point" |
|||
data.delivery_services[].is_courier |
yes | boolean |
false |
|||
data.document_date |
no | string:date | null |
"2026-08-11" |
|||
data.closed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.comment |
no | string | null |
"Wildberries shipment 740" |
|||
data.order_count |
yes | integer:int64 |
min: 0 | 1 |
||
data.processing |
yes | SendDocumentProcessing |
|
|||
data.processing.mode |
no | string | null |
"standard" |
|||
data.processing.pipeline |
yes | array<string> |
|
|||
data.processing.pipeline[] |
no | string |
"assignment" |
|||
data.processing.state |
no | string | null |
"open" |
|||
data.processing.batch_profile_id |
no | integer:int64 | null |
min: 1 | 31 |
||
data.processing.batch_profile |
no | object | null |
|
|||
data.processing.batch_profile.id |
yes | integer:int64 |
min: 1 | 31 |
||
data.processing.batch_profile.name |
yes | string |
"Standard packing" |
|||
data.processing.batch_profile.processing_mode |
no | string | null |
"standard" |
|||
data.processing.composition_frozen_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_started_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_completed_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.wildberries |
yes | SendDocumentWildberries |
Wildberries document-level state and safe supply/QR/sticker artifact metadata. Binary label content and encrypted provider payloads are not returned. | |
||
data.wildberries.fulfillment_state |
no | string | null |
"delivered" |
|||
data.wildberries.error_message |
no | string | null |
"" |
|||
data.wildberries.processed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.wildberries.supplies |
yes | array<object> |
|
|||
data.wildberries.supplies[] |
no | object |
|
|||
data.orders |
yes | array<SendDocumentOrderAssignment> |
|
|||
data.orders[] |
no | SendDocumentOrderAssignment |
|
|||
data.orders[].assignment_id |
yes | integer:int64 |
min: 1 | 8801 |
||
data.orders[].marked_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].created_at |
no | string:date-time | null |
"2026-08-11T09:00:00Z" |
|||
data.orders[].updated_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].order |
yes | object | null |
Complete order snapshot embedded into a shipment document. Marketplace and batch objects preserve provider-specific fields. | |
||
data.orders[].order.id |
yes | integer:int64 |
min: 1 | 49060 |
||
data.orders[].order.external_id |
no | string | null |
"WB-900001234" |
|||
data.orders[].order.status_id |
no | integer:int64 | null |
20 |
|||
data.orders[].order.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.order_date |
no | string:date | null |
"2026-08-10" |
|||
data.orders[].order.send_date |
no | string:date | null |
"2026-08-11" |
|||
data.orders[].order.amounts |
no | object | null |
|
|||
data.orders[].order.amounts.shipping_price |
no | number:float | null |
8.6 |
|||
data.orders[].order.amounts.shipping_cost |
no | number:float | null |
0 |
|||
data.orders[].order.amounts.sum |
no | number:float | null |
39.98 |
|||
data.orders[].order.amounts.cod_sum |
no | number:float | null |
48.58 |
|||
data.orders[].order.contact |
no | object | null |
|
|||
data.orders[].order.contact.first_name |
no | string | null |
"Ivan" |
|||
data.orders[].order.contact.middle_name |
no | string | null |
"Ivanovich" |
|||
data.orders[].order.contact.last_name |
no | string | null |
"Petrov" |
|||
data.orders[].order.contact.phone |
no | string | null |
"+359888123456" |
|||
data.orders[].order.contact.email |
no | string:email | null |
"customer@example.com" |
|||
data.orders[].order.contact.country_id |
no | integer:int64 | null |
min: 1 | 100 |
||
data.orders[].order.contact.city_id |
no | integer:int64 | null |
min: 1 | 200 |
||
data.orders[].order.contact.postcode |
no | string | null |
"1000" |
|||
data.orders[].order.contact.latitude |
no | number:float | null |
min: -90 max: 90 |
42.6977 |
||
data.orders[].order.contact.longitude |
no | number:float | null |
min: -180 max: 180 |
23.3219 |
||
data.orders[].order.contact.full_address |
no | string | null |
"1 Vitosha Boulevard, Sofia" |
|||
data.orders[].order.delivery |
no | object | null |
|
|||
data.orders[].order.delivery.service_id |
no | integer:int64 | null |
min: 1 | 1 |
||
data.orders[].order.delivery.delivery_type |
yes | enum | null |
enum: door, pickup_point | Normalized delivery channel derived from the configured delivery service. Null when the service type is unknown. | "door" |
|
data.orders[].order.delivery.is_courier |
yes | boolean |
True for door delivery; false for pickup-point delivery or an unknown service type. | true |
||
data.orders[].order.delivery.status |
no | string | null |
"created" |
|||
data.orders[].order.delivery.track_number |
no | string | null |
"CDEK-123456789" |
|||
data.orders[].order.delivery.pickup_point_id |
no | string | null |
"SOFIA-01" |
|||
data.orders[].order.delivery.source_id |
no | string | null |
"cdek-15" |
|||
data.orders[].order.delivery.tariff_code |
no | integer:int64 | null |
136 |
|||
data.orders[].order.delivery.additional_services |
no | object |
Values of additional CDEK services configured for the selected integration. Boolean true enables a code-only service; other values are sent as the CDEK parameter. |
{"TRYING_ON":true,"PART_DELIV":false,"PACKAGE_1":2} |
||
data.orders[].order.delivery.label |
no | string:uri | null |
"https://betawms.ffcdek.ru/labels/CDEK-123456789.pdf" |
|||
data.orders[].order.delivery.delivery_date |
no | string:date | null |
"2026-07-16" |
|||
data.orders[].order.delivery.delivery_time_start |
no | string:time | null |
"09:00:00Z" |
|||
data.orders[].order.delivery.delivery_time_end |
no | string:time | null |
"18:00:00Z" |
|||
data.orders[].order.comments |
no | object | null |
|
|||
data.orders[].order.comments.delivery_service_text |
no | string | null |
"Call before delivery" |
|||
data.orders[].order.comments.inner_text |
no | string | null |
"VIP customer" |
|||
data.orders[].order.offers |
yes | array<SendDocumentOrderLine> |
|
|||
data.orders[].order.offers[] |
no | SendDocumentOrderLine |
|
|||
data.orders[].order.offers[].id |
yes | integer:int64 |
min: 1 | 7001 |
||
data.orders[].order.offers[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.offers[].quantity |
no | number:float | null |
2 |
|||
data.orders[].order.offers[].estimated_price |
no | number:float | null |
19.5 |
|||
data.orders[].order.offers[].price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.offers[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.offers[].operation_user_id |
no | integer:int64 | null |
min: 1 | 9 |
||
data.orders[].order.offers[].product |
no | object | null |
|
|||
data.orders[].order.offers[].product.id |
yes | integer:int64 |
min: 1 | 1201 |
||
data.orders[].order.offers[].product.external_id |
no | string | null |
"EXT-10045" |
|||
data.orders[].order.offers[].product.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.offers[].product.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.offers[].product.status_id |
no | enum:int64 | null |
enum: 1, 2, 3 | 1 - active; 2 - disabled; 3 - deleted. |
1 |
|
data.orders[].order.offers[].product.type_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.offers[].product.name |
yes | string |
"Coffee 250g" |
|||
data.orders[].order.offers[].product.article |
no | string | null |
"ART-001245" |
|||
data.orders[].order.offers[].product.sku |
no | string | null |
"SKU-001245" |
|||
data.orders[].order.offers[].product.price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].product.estimated_price |
no | number:float | null |
21.5 |
|||
data.orders[].order.offers[].product.image_url |
no | string:uri | null |
"https://betawms.ffcdek.ru/offer-images/products/coffee-250g.jpg" |
|||
data.orders[].order.offers[].product.dimensions |
yes | Dimensions |
|
|||
data.orders[].order.offers[].product.weight |
yes | Weight |
|
|||
data.orders[].order.offers[].product.datamatrix_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.expiration_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.comment |
no | string | null |
"Keep dry" |
|||
data.orders[].order.offers[].product.description |
no | string | null |
"Ground coffee package" |
|||
data.orders[].order.offers[].product.barcodes |
yes | array<ProductBarcode> |
|
|||
data.orders[].order.offers[].product.package |
yes | object |
|
|||
data.orders[].order.offers[].product.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].product.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].reservation |
no | object | null |
Reservation totals for one order line. | |
||
data.orders[].order.offers[].reservation.required_qty |
yes | number:float |
3 |
|||
data.orders[].order.offers[].reservation.reserved_qty |
yes | number:float |
1 |
|||
data.orders[].order.offers[].reservation.unreserved_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.missing_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.status |
yes | enum |
enum: not_required, missing, partial, reserved | Reservation state calculated from the quantity required by the order and the quantity actually reserved. | "partial" |
|
data.orders[].order.offers[].reservation_items |
no | array<OrderReservationItem> |
|
|||
data.orders[].order.offers[].reservation_items[] |
no | OrderReservationItem |
Physical product or expanded component used to explain a reservation shortage. | |
||
data.orders[].order.offers[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes |
yes | array<DataMatrix> |
|
|||
data.orders[].order.datamatrix_codes[] |
no | DataMatrix |
Marked goods DataMatrix code. | |
||
data.orders[].order.datamatrix_codes[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.orders[].order.datamatrix_codes[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.datamatrix_codes[].warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.datamatrix_codes[].status_id |
no | enum:int64 | null |
enum: 0, 1, 2 | 0 - Imported and available for future warehouse operations. 1 - Reserved or attached by an operational document. 2 - Used by an outbound or completed operation. |
0 |
|
data.orders[].order.datamatrix_codes[].acceptance_id |
no | integer:int64 | null |
min: 1 | 5101 |
||
data.orders[].order.datamatrix_codes[].order_id |
no | integer:int64 | null |
min: 1 | 8101 |
||
data.orders[].order.datamatrix_codes[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.datamatrix_codes[].barcode |
no | string | null |
maxLength: 14 | "04601234567890" |
||
data.orders[].order.datamatrix_codes[].short_code |
no | string | null |
maxLength: 14 | "ABC123" |
||
data.orders[].order.datamatrix_codes[].crypto_tail |
no | string | null |
"CRYPTO" |
|||
data.orders[].order.datamatrix_codes[].datamatrix |
no | string | null |
maxLength: 125 | "010460123456789021ABC123" |
||
data.orders[].order.datamatrix_codes[].production_date |
no | string:date | null |
"2026-01-15" |
|||
data.orders[].order.datamatrix_codes[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.datamatrix_codes[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.datamatrix_codes[].used_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.warehouse |
no | object | null |
|
|||
data.orders[].order.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.orders[].order.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.orders[].order.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.orders[].order.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.orders[].order.shop |
no | object | null |
|
|||
data.orders[].order.shop.id |
yes | integer:int64 |
min: 1 | 12 |
||
data.orders[].order.shop.name |
yes | string |
"Demo Online Store" |
|||
data.orders[].order.shop.status_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.company |
no | object | null |
|
|||
data.orders[].order.company.id |
yes | integer:int64 |
min: 1 | 7 |
||
data.orders[].order.company.name |
yes | string |
"Demo Company" |
|||
data.orders[].order.company.legal_name |
no | string | null |
"Demo Company Ltd." |
|||
data.orders[].order.place |
no | object | null |
|
|||
data.orders[].order.accumulation_place |
no | object | null |
|
|||
data.orders[].order.measurements |
no | object | null |
|
|||
data.orders[].order.settings |
no | object | null |
|
|||
data.orders[].order.consumables |
yes | array<object> |
|
|||
data.orders[].order.consumables[] |
no | object |
|
|||
data.orders[].order.wildberries |
no | object | null |
|
|||
data.orders[].order.wildberries.completed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.orders[].order.batch_matches |
yes | array<object> |
|
|||
data.orders[].order.batch_matches[] |
no | object |
|
|||
meta |
yes | ResponseMeta |
|
|||
meta.api_version |
yes | enum |
enum: v2 | "v2" |
||
meta.deleted |
no | boolean |
true |
|||
meta.id |
no | integer:int64 | null |
min: 1 | 1001 |
||
meta.command_replayed |
no | boolean |
True when an idempotent cross-dock command returned the original successful result. | false |
||
meta.crossdock_configuration |
no | object | null |
|
|||
meta.crossdock_configuration.physical_warehouse_id |
yes | integer:int64 |
min: 1 | 42 |
||
meta.crossdock_configuration.enabled |
yes | boolean |
true |
|||
meta.crossdock_configuration.process_version |
yes | string |
"direct_order_v1" |
Response examples
success
{
"data": {
"id": 740,
"domain_id": 3,
"status_id": 1,
"status": {
"id": 1,
"name": "Открыт",
"color": "#2457c5",
"background_color": "#eaf0ff"
},
"warehouse_id": 42,
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"delivery_service_ids": [
17
],
"delivery_services": [
{
"id": 17,
"name": "Wildberries FBS",
"status_id": 1,
"external_id": "wb-fbs",
"source_id": "wildberries",
"delivery_type": "pickup_point",
"is_courier": false
}
],
"document_date": "2026-08-11",
"closed_at": "2026-08-11T10:15:00Z",
"comment": "Wildberries shipment 740",
"order_count": 1,
"processing": {
"mode": "standard",
"pipeline": [
"assignment",
"marking",
"transfer"
],
"state": "open",
"batch_profile_id": null,
"batch_profile": null,
"composition_frozen_at": null,
"batch_started_at": null,
"batch_completed_at": null
},
"wildberries": {
"fulfillment_state": "delivered",
"error_message": null,
"processed_at": "2026-08-11T10:15:00Z",
"supplies": [
{
"id": 3201,
"account_id": 71,
"external_id": "WB-GI-740",
"name": "Поставка 740",
"state": "delivered",
"state_name": "Доставлена",
"destination_type": "office",
"destination_office_id": 507,
"is_automatic": false,
"is_b2b": false,
"cargo_type": "box",
"cross_border_type": null,
"order_count": 1,
"current_qr": {
"id": 3301,
"kind": "supply_qr",
"format": "svg",
"width": 580,
"height": 400,
"barcode": "WB-GI-740",
"part_a": null,
"part_b": null,
"content_hash": "sha256:qr-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:00:00Z",
"last_printed_at": null,
"print_count": 0
},
"boxes": [
],
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-11T09:00:00Z",
"remote_closed_at": null,
"last_synced_at": "2026-08-11T10:15:00Z",
"delivered_at": "2026-08-11T10:15:00Z"
}
]
},
"orders": [
{
"assignment_id": 8801,
"marked_at": "2026-08-11T09:30:00Z",
"created_at": "2026-08-11T09:00:00Z",
"updated_at": "2026-08-11T09:30:00Z",
"order": {
"id": 49060,
"external_id": "WB-900001234",
"status_id": 20,
"warehouse_id": 42,
"shop_id": 12,
"order_date": "2026-08-10",
"send_date": "2026-08-11",
"amounts": {
"shipping_price": 0,
"shipping_cost": 0,
"sum": 39.98,
"cod_sum": 0
},
"contact": {
"first_name": "Иван",
"middle_name": null,
"last_name": "Петров",
"phone": "+359888123456",
"email": "customer@example.com",
"country_id": 100,
"city_id": 200,
"postcode": "1000",
"latitude": 42.6977,
"longitude": 23.3219,
"full_address": "Sofia"
},
"delivery": {
"service_id": 17,
"delivery_type": "pickup_point",
"is_courier": false,
"status": "created",
"track_number": "WB-900001234",
"pickup_point_id": "WB-SOF-01",
"source_id": "wildberries",
"tariff_code": null,
"additional_services": {
},
"label": null,
"delivery_date": "2026-08-12",
"delivery_time_start": null,
"delivery_time_end": null
},
"comments": {
"delivery_service_text": null,
"inner_text": "Клиентский пример для документа 740"
},
"offers": [
{
"id": 7001,
"product_id": 1201,
"quantity": 2,
"estimated_price": 19.5,
"price": 19.99,
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"operation_user_id": 9,
"product": {
"id": 1201,
"external_id": "EXT-10045",
"shop_id": 12,
"domain_id": 3,
"status_id": 1,
"type_id": 1,
"name": "Coffee 250g",
"article": "ART-001245",
"sku": "SKU-001245",
"price": 19.99,
"estimated_price": 21.5,
"image_url": null,
"dimensions": {
"x": 105,
"y": 200,
"z": 32,
"unit": "mm"
},
"weight": {
"value": 250,
"unit": "g"
},
"datamatrix_required": true,
"expiration_required": true,
"comment": null,
"description": "Ground coffee package",
"barcodes": [
{
"barcode": "4601234567890",
"is_main": true
}
],
"package": {
"kind": "unit",
"parent_product_id": null,
"base_product_id": null,
"multiplicity": null,
"base_multiplicity": null,
"depth": 0
},
"created_at": "2026-08-01T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
},
"reservation": {
"required_qty": 2,
"reserved_qty": 2,
"unreserved_qty": 0,
"missing_qty": 0,
"status": "reserved"
},
"reservation_items": [
],
"created_at": "2026-08-10T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
}
],
"datamatrix_codes": [
{
"id": 6101,
"domain_id": 3,
"warehouse_id": 42,
"status_id": 1,
"acceptance_id": 5101,
"order_id": 49060,
"product_id": 1201,
"barcode": "04601234567890",
"short_code": "ABC123",
"crypto_tail": "CRYPTO",
"datamatrix": "010460123456789021ABC123",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"created_at": "2026-08-11T09:15:00Z",
"updated_at": "2026-08-11T09:15:00Z",
"used_at": null
}
],
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"shop": {
"id": 12,
"name": "Demo Online Store",
"status_id": 1
},
"company": {
"id": 7,
"name": "Demo Company",
"legal_name": "Demo Company Ltd."
},
"place": null,
"accumulation_place": null,
"measurements": {
"places": 1,
"dimensions": {
"x": 220,
"y": 160,
"z": 120,
"unit": "mm"
},
"weight": {
"value": 600,
"unit": "g"
}
},
"settings": {
"blank_url": null
},
"consumables": [
],
"wildberries": {
"id": 2101,
"account_id": 71,
"wb_order_id": "900001234",
"order_uid": "WB-UID-49060",
"rid": "WB-RID-49060",
"product_id": 1201,
"state": "confirmed",
"state_name": "Подтверждён",
"fulfillment_state": "delivered",
"fulfillment_state_name": "Доставлен",
"supplier_status": "confirm",
"wb_status": "sold",
"supply_id": 3201,
"external_supply_id": "WB-GI-740",
"supply_state": "delivered",
"delivery_type": "fbs",
"cross_border_type": null,
"is_b2b": false,
"wb_warehouse_id": 507,
"office_id": 507,
"nm_id": 12345678,
"chrt_id": 87654321,
"article": "ART-001245",
"skus": [
"4601234567890"
],
"required_meta": [
"sgtin"
],
"optional_meta": [
],
"meta_state": "accepted",
"sticker_state": "ready",
"prices": {
"price_minor": 1999,
"final_price_minor": 1999,
"sale_price_minor": 1999,
"currency": "RUB"
},
"markings": [
{
"id": 1,
"datamatrix_id": 6101,
"type": "sgtin",
"masked_value": "010460…ABC123",
"value_hash": "sha256:example",
"state": "accepted",
"remote_decision": "accepted",
"error_code": null,
"error_message": null,
"submitted_at": "2026-08-11T09:30:00Z",
"verified_at": "2026-08-11T09:31:00Z",
"ambiguous_at": null
}
],
"current_sticker": {
"id": 3401,
"kind": "order_sticker",
"format": "png",
"width": 580,
"height": 400,
"barcode": "WB-900001234",
"part_a": "123456",
"part_b": "7890",
"content_hash": "sha256:sticker-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:25:00Z",
"last_printed_at": null,
"print_count": 0
},
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-10T09:00:00Z",
"seller_date": "2026-08-10",
"delivery_date": "2026-08-12",
"confirmed_at": "2026-08-11T09:20:00Z",
"completed_at": "2026-08-11T10:15:00Z",
"imported_at": "2026-08-10T09:05:00Z",
"mapped_at": "2026-08-10T09:06:00Z",
"reserved_at": "2026-08-11T09:10:00Z",
"remote_status_checked_at": "2026-08-11T10:15:00Z"
},
"batch_matches": [
]
}
}
],
"created_at": "2026-08-11T08:45:00Z",
"updated_at": "2026-08-11T10:15:00Z"
},
"meta": {
"api_version": "v2"
}
}
401 Authentication required
Unauthorized
Authentication is required.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
AUTH_REQUIRED
{
"message": "Authentication is required.",
"error": "AUTH_REQUIRED"
}
403 Forbidden
Forbidden
The authenticated account is not allowed to perform this action.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
FORBIDDEN
{
"message": "The authenticated account is not allowed to perform this action.",
"error": "FORBIDDEN"
}
404 Not found
NotFound
The requested resource was not found or is outside the authenticated account scope.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
NOT_FOUND
{
"message": "The requested resource was not found or is outside the authenticated account scope.",
"error": "NOT_FOUND"
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
Update send document
| operationId | replaceSendDocuments |
|---|---|
| Tag | Send Documents |
| Security | bearerAuth |
Update send document. The request uses the documented payload schema, validates tenant visibility, and returns a normalized API envelope.
Current backend behavior is legacy partial-update semantics: omitted fields are left unchanged.
HTTP request example (cURL)
Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.
curl --globoff --request PUT "${NWMS_BASE_URL}/api/v2/send-documents/740" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
--header "Content-Type: application/json" \
--data-binary @request.jsonParameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
id |
path | yes | integer:int64 |
min: 1 | Shipment document ID. | 740 |
||
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
ReplaceSendDocumentRequest required
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | ReplaceSendDocumentPayload |
Shipment document update. Omitted fields remain unchanged; status transitions follow the administrative lifecycle rules. | |
||
data.status_id |
no | integer:int64 | null |
2 |
|||
data.document_date |
no | string:date | null |
"2026-08-11" |
|||
data.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.delivery_service_ids |
no | array<integer:int64> |
minItems: 1 | |
||
data.delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data.comment |
no | string | null |
maxLength: 1000 | "Передано перевозчику" |
Request examples
default
{
"data": {
"status_id": 2,
"comment": "Передано перевозчику"
}
}
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | SendDocument |
Outbound shipment document with its complete operational composition. Collection relations are empty unless requested through include; the item endpoint always loads them. |
|
||
data.id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.status_id |
no | integer:int64 | null |
1 |
|||
data.status |
no | object | null |
|
|||
data.status.id |
yes | integer:int64 |
1 |
|||
data.status.name |
yes | string |
"Открыт" |
|||
data.status.color |
no | string | null |
"#2457c5" |
|||
data.status.background_color |
no | string | null |
"#eaf0ff" |
|||
data.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.warehouse |
no | object | null |
|
|||
data.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.delivery_service_ids |
yes | array<integer:int64> |
|
|||
data.delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data.delivery_services |
yes | array<SendDocumentDeliveryService> |
|
|||
data.delivery_services[] |
no | SendDocumentDeliveryService |
|
|||
data.delivery_services[].id |
yes | integer:int64 |
min: 1 | 17 |
||
data.delivery_services[].name |
yes | string |
"Wildberries FBS" |
|||
data.delivery_services[].status_id |
yes | integer:int64 |
1 |
|||
data.delivery_services[].external_id |
no | string | null |
"wb-fbs" |
|||
data.delivery_services[].source_id |
no | string | null |
"wildberries" |
|||
data.delivery_services[].delivery_type |
no | string | null |
"pickup_point" |
|||
data.delivery_services[].is_courier |
yes | boolean |
false |
|||
data.document_date |
no | string:date | null |
"2026-08-11" |
|||
data.closed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.comment |
no | string | null |
"Wildberries shipment 740" |
|||
data.order_count |
yes | integer:int64 |
min: 0 | 1 |
||
data.processing |
yes | SendDocumentProcessing |
|
|||
data.processing.mode |
no | string | null |
"standard" |
|||
data.processing.pipeline |
yes | array<string> |
|
|||
data.processing.pipeline[] |
no | string |
"assignment" |
|||
data.processing.state |
no | string | null |
"open" |
|||
data.processing.batch_profile_id |
no | integer:int64 | null |
min: 1 | 31 |
||
data.processing.batch_profile |
no | object | null |
|
|||
data.processing.batch_profile.id |
yes | integer:int64 |
min: 1 | 31 |
||
data.processing.batch_profile.name |
yes | string |
"Standard packing" |
|||
data.processing.batch_profile.processing_mode |
no | string | null |
"standard" |
|||
data.processing.composition_frozen_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_started_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_completed_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.wildberries |
yes | SendDocumentWildberries |
Wildberries document-level state and safe supply/QR/sticker artifact metadata. Binary label content and encrypted provider payloads are not returned. | |
||
data.wildberries.fulfillment_state |
no | string | null |
"delivered" |
|||
data.wildberries.error_message |
no | string | null |
"" |
|||
data.wildberries.processed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.wildberries.supplies |
yes | array<object> |
|
|||
data.wildberries.supplies[] |
no | object |
|
|||
data.orders |
yes | array<SendDocumentOrderAssignment> |
|
|||
data.orders[] |
no | SendDocumentOrderAssignment |
|
|||
data.orders[].assignment_id |
yes | integer:int64 |
min: 1 | 8801 |
||
data.orders[].marked_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].created_at |
no | string:date-time | null |
"2026-08-11T09:00:00Z" |
|||
data.orders[].updated_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].order |
yes | object | null |
Complete order snapshot embedded into a shipment document. Marketplace and batch objects preserve provider-specific fields. | |
||
data.orders[].order.id |
yes | integer:int64 |
min: 1 | 49060 |
||
data.orders[].order.external_id |
no | string | null |
"WB-900001234" |
|||
data.orders[].order.status_id |
no | integer:int64 | null |
20 |
|||
data.orders[].order.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.order_date |
no | string:date | null |
"2026-08-10" |
|||
data.orders[].order.send_date |
no | string:date | null |
"2026-08-11" |
|||
data.orders[].order.amounts |
no | object | null |
|
|||
data.orders[].order.amounts.shipping_price |
no | number:float | null |
8.6 |
|||
data.orders[].order.amounts.shipping_cost |
no | number:float | null |
0 |
|||
data.orders[].order.amounts.sum |
no | number:float | null |
39.98 |
|||
data.orders[].order.amounts.cod_sum |
no | number:float | null |
48.58 |
|||
data.orders[].order.contact |
no | object | null |
|
|||
data.orders[].order.contact.first_name |
no | string | null |
"Ivan" |
|||
data.orders[].order.contact.middle_name |
no | string | null |
"Ivanovich" |
|||
data.orders[].order.contact.last_name |
no | string | null |
"Petrov" |
|||
data.orders[].order.contact.phone |
no | string | null |
"+359888123456" |
|||
data.orders[].order.contact.email |
no | string:email | null |
"customer@example.com" |
|||
data.orders[].order.contact.country_id |
no | integer:int64 | null |
min: 1 | 100 |
||
data.orders[].order.contact.city_id |
no | integer:int64 | null |
min: 1 | 200 |
||
data.orders[].order.contact.postcode |
no | string | null |
"1000" |
|||
data.orders[].order.contact.latitude |
no | number:float | null |
min: -90 max: 90 |
42.6977 |
||
data.orders[].order.contact.longitude |
no | number:float | null |
min: -180 max: 180 |
23.3219 |
||
data.orders[].order.contact.full_address |
no | string | null |
"1 Vitosha Boulevard, Sofia" |
|||
data.orders[].order.delivery |
no | object | null |
|
|||
data.orders[].order.delivery.service_id |
no | integer:int64 | null |
min: 1 | 1 |
||
data.orders[].order.delivery.delivery_type |
yes | enum | null |
enum: door, pickup_point | Normalized delivery channel derived from the configured delivery service. Null when the service type is unknown. | "door" |
|
data.orders[].order.delivery.is_courier |
yes | boolean |
True for door delivery; false for pickup-point delivery or an unknown service type. | true |
||
data.orders[].order.delivery.status |
no | string | null |
"created" |
|||
data.orders[].order.delivery.track_number |
no | string | null |
"CDEK-123456789" |
|||
data.orders[].order.delivery.pickup_point_id |
no | string | null |
"SOFIA-01" |
|||
data.orders[].order.delivery.source_id |
no | string | null |
"cdek-15" |
|||
data.orders[].order.delivery.tariff_code |
no | integer:int64 | null |
136 |
|||
data.orders[].order.delivery.additional_services |
no | object |
Values of additional CDEK services configured for the selected integration. Boolean true enables a code-only service; other values are sent as the CDEK parameter. |
{"TRYING_ON":true,"PART_DELIV":false,"PACKAGE_1":2} |
||
data.orders[].order.delivery.label |
no | string:uri | null |
"https://betawms.ffcdek.ru/labels/CDEK-123456789.pdf" |
|||
data.orders[].order.delivery.delivery_date |
no | string:date | null |
"2026-07-16" |
|||
data.orders[].order.delivery.delivery_time_start |
no | string:time | null |
"09:00:00Z" |
|||
data.orders[].order.delivery.delivery_time_end |
no | string:time | null |
"18:00:00Z" |
|||
data.orders[].order.comments |
no | object | null |
|
|||
data.orders[].order.comments.delivery_service_text |
no | string | null |
"Call before delivery" |
|||
data.orders[].order.comments.inner_text |
no | string | null |
"VIP customer" |
|||
data.orders[].order.offers |
yes | array<SendDocumentOrderLine> |
|
|||
data.orders[].order.offers[] |
no | SendDocumentOrderLine |
|
|||
data.orders[].order.offers[].id |
yes | integer:int64 |
min: 1 | 7001 |
||
data.orders[].order.offers[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.offers[].quantity |
no | number:float | null |
2 |
|||
data.orders[].order.offers[].estimated_price |
no | number:float | null |
19.5 |
|||
data.orders[].order.offers[].price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.offers[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.offers[].operation_user_id |
no | integer:int64 | null |
min: 1 | 9 |
||
data.orders[].order.offers[].product |
no | object | null |
|
|||
data.orders[].order.offers[].product.id |
yes | integer:int64 |
min: 1 | 1201 |
||
data.orders[].order.offers[].product.external_id |
no | string | null |
"EXT-10045" |
|||
data.orders[].order.offers[].product.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.offers[].product.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.offers[].product.status_id |
no | enum:int64 | null |
enum: 1, 2, 3 | 1 - active; 2 - disabled; 3 - deleted. |
1 |
|
data.orders[].order.offers[].product.type_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.offers[].product.name |
yes | string |
"Coffee 250g" |
|||
data.orders[].order.offers[].product.article |
no | string | null |
"ART-001245" |
|||
data.orders[].order.offers[].product.sku |
no | string | null |
"SKU-001245" |
|||
data.orders[].order.offers[].product.price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].product.estimated_price |
no | number:float | null |
21.5 |
|||
data.orders[].order.offers[].product.image_url |
no | string:uri | null |
"https://betawms.ffcdek.ru/offer-images/products/coffee-250g.jpg" |
|||
data.orders[].order.offers[].product.dimensions |
yes | Dimensions |
|
|||
data.orders[].order.offers[].product.weight |
yes | Weight |
|
|||
data.orders[].order.offers[].product.datamatrix_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.expiration_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.comment |
no | string | null |
"Keep dry" |
|||
data.orders[].order.offers[].product.description |
no | string | null |
"Ground coffee package" |
|||
data.orders[].order.offers[].product.barcodes |
yes | array<ProductBarcode> |
|
|||
data.orders[].order.offers[].product.package |
yes | object |
|
|||
data.orders[].order.offers[].product.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].product.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].reservation |
no | object | null |
Reservation totals for one order line. | |
||
data.orders[].order.offers[].reservation.required_qty |
yes | number:float |
3 |
|||
data.orders[].order.offers[].reservation.reserved_qty |
yes | number:float |
1 |
|||
data.orders[].order.offers[].reservation.unreserved_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.missing_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.status |
yes | enum |
enum: not_required, missing, partial, reserved | Reservation state calculated from the quantity required by the order and the quantity actually reserved. | "partial" |
|
data.orders[].order.offers[].reservation_items |
no | array<OrderReservationItem> |
|
|||
data.orders[].order.offers[].reservation_items[] |
no | OrderReservationItem |
Physical product or expanded component used to explain a reservation shortage. | |
||
data.orders[].order.offers[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes |
yes | array<DataMatrix> |
|
|||
data.orders[].order.datamatrix_codes[] |
no | DataMatrix |
Marked goods DataMatrix code. | |
||
data.orders[].order.datamatrix_codes[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.orders[].order.datamatrix_codes[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.datamatrix_codes[].warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.datamatrix_codes[].status_id |
no | enum:int64 | null |
enum: 0, 1, 2 | 0 - Imported and available for future warehouse operations. 1 - Reserved or attached by an operational document. 2 - Used by an outbound or completed operation. |
0 |
|
data.orders[].order.datamatrix_codes[].acceptance_id |
no | integer:int64 | null |
min: 1 | 5101 |
||
data.orders[].order.datamatrix_codes[].order_id |
no | integer:int64 | null |
min: 1 | 8101 |
||
data.orders[].order.datamatrix_codes[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.datamatrix_codes[].barcode |
no | string | null |
maxLength: 14 | "04601234567890" |
||
data.orders[].order.datamatrix_codes[].short_code |
no | string | null |
maxLength: 14 | "ABC123" |
||
data.orders[].order.datamatrix_codes[].crypto_tail |
no | string | null |
"CRYPTO" |
|||
data.orders[].order.datamatrix_codes[].datamatrix |
no | string | null |
maxLength: 125 | "010460123456789021ABC123" |
||
data.orders[].order.datamatrix_codes[].production_date |
no | string:date | null |
"2026-01-15" |
|||
data.orders[].order.datamatrix_codes[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.datamatrix_codes[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.datamatrix_codes[].used_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.warehouse |
no | object | null |
|
|||
data.orders[].order.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.orders[].order.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.orders[].order.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.orders[].order.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.orders[].order.shop |
no | object | null |
|
|||
data.orders[].order.shop.id |
yes | integer:int64 |
min: 1 | 12 |
||
data.orders[].order.shop.name |
yes | string |
"Demo Online Store" |
|||
data.orders[].order.shop.status_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.company |
no | object | null |
|
|||
data.orders[].order.company.id |
yes | integer:int64 |
min: 1 | 7 |
||
data.orders[].order.company.name |
yes | string |
"Demo Company" |
|||
data.orders[].order.company.legal_name |
no | string | null |
"Demo Company Ltd." |
|||
data.orders[].order.place |
no | object | null |
|
|||
data.orders[].order.accumulation_place |
no | object | null |
|
|||
data.orders[].order.measurements |
no | object | null |
|
|||
data.orders[].order.settings |
no | object | null |
|
|||
data.orders[].order.consumables |
yes | array<object> |
|
|||
data.orders[].order.consumables[] |
no | object |
|
|||
data.orders[].order.wildberries |
no | object | null |
|
|||
data.orders[].order.wildberries.completed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.orders[].order.batch_matches |
yes | array<object> |
|
|||
data.orders[].order.batch_matches[] |
no | object |
|
|||
meta |
yes | ResponseMeta |
|
|||
meta.api_version |
yes | enum |
enum: v2 | "v2" |
||
meta.deleted |
no | boolean |
true |
|||
meta.id |
no | integer:int64 | null |
min: 1 | 1001 |
||
meta.command_replayed |
no | boolean |
True when an idempotent cross-dock command returned the original successful result. | false |
||
meta.crossdock_configuration |
no | object | null |
|
|||
meta.crossdock_configuration.physical_warehouse_id |
yes | integer:int64 |
min: 1 | 42 |
||
meta.crossdock_configuration.enabled |
yes | boolean |
true |
|||
meta.crossdock_configuration.process_version |
yes | string |
"direct_order_v1" |
Response examples
success
{
"data": {
"id": 740,
"domain_id": 3,
"status_id": 1,
"status": {
"id": 1,
"name": "Открыт",
"color": "#2457c5",
"background_color": "#eaf0ff"
},
"warehouse_id": 42,
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"delivery_service_ids": [
17
],
"delivery_services": [
{
"id": 17,
"name": "Wildberries FBS",
"status_id": 1,
"external_id": "wb-fbs",
"source_id": "wildberries",
"delivery_type": "pickup_point",
"is_courier": false
}
],
"document_date": "2026-08-11",
"closed_at": "2026-08-11T10:15:00Z",
"comment": "Wildberries shipment 740",
"order_count": 1,
"processing": {
"mode": "standard",
"pipeline": [
"assignment",
"marking",
"transfer"
],
"state": "open",
"batch_profile_id": null,
"batch_profile": null,
"composition_frozen_at": null,
"batch_started_at": null,
"batch_completed_at": null
},
"wildberries": {
"fulfillment_state": "delivered",
"error_message": null,
"processed_at": "2026-08-11T10:15:00Z",
"supplies": [
{
"id": 3201,
"account_id": 71,
"external_id": "WB-GI-740",
"name": "Поставка 740",
"state": "delivered",
"state_name": "Доставлена",
"destination_type": "office",
"destination_office_id": 507,
"is_automatic": false,
"is_b2b": false,
"cargo_type": "box",
"cross_border_type": null,
"order_count": 1,
"current_qr": {
"id": 3301,
"kind": "supply_qr",
"format": "svg",
"width": 580,
"height": 400,
"barcode": "WB-GI-740",
"part_a": null,
"part_b": null,
"content_hash": "sha256:qr-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:00:00Z",
"last_printed_at": null,
"print_count": 0
},
"boxes": [
],
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-11T09:00:00Z",
"remote_closed_at": null,
"last_synced_at": "2026-08-11T10:15:00Z",
"delivered_at": "2026-08-11T10:15:00Z"
}
]
},
"orders": [
{
"assignment_id": 8801,
"marked_at": "2026-08-11T09:30:00Z",
"created_at": "2026-08-11T09:00:00Z",
"updated_at": "2026-08-11T09:30:00Z",
"order": {
"id": 49060,
"external_id": "WB-900001234",
"status_id": 20,
"warehouse_id": 42,
"shop_id": 12,
"order_date": "2026-08-10",
"send_date": "2026-08-11",
"amounts": {
"shipping_price": 0,
"shipping_cost": 0,
"sum": 39.98,
"cod_sum": 0
},
"contact": {
"first_name": "Иван",
"middle_name": null,
"last_name": "Петров",
"phone": "+359888123456",
"email": "customer@example.com",
"country_id": 100,
"city_id": 200,
"postcode": "1000",
"latitude": 42.6977,
"longitude": 23.3219,
"full_address": "Sofia"
},
"delivery": {
"service_id": 17,
"delivery_type": "pickup_point",
"is_courier": false,
"status": "created",
"track_number": "WB-900001234",
"pickup_point_id": "WB-SOF-01",
"source_id": "wildberries",
"tariff_code": null,
"additional_services": {
},
"label": null,
"delivery_date": "2026-08-12",
"delivery_time_start": null,
"delivery_time_end": null
},
"comments": {
"delivery_service_text": null,
"inner_text": "Клиентский пример для документа 740"
},
"offers": [
{
"id": 7001,
"product_id": 1201,
"quantity": 2,
"estimated_price": 19.5,
"price": 19.99,
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"operation_user_id": 9,
"product": {
"id": 1201,
"external_id": "EXT-10045",
"shop_id": 12,
"domain_id": 3,
"status_id": 1,
"type_id": 1,
"name": "Coffee 250g",
"article": "ART-001245",
"sku": "SKU-001245",
"price": 19.99,
"estimated_price": 21.5,
"image_url": null,
"dimensions": {
"x": 105,
"y": 200,
"z": 32,
"unit": "mm"
},
"weight": {
"value": 250,
"unit": "g"
},
"datamatrix_required": true,
"expiration_required": true,
"comment": null,
"description": "Ground coffee package",
"barcodes": [
{
"barcode": "4601234567890",
"is_main": true
}
],
"package": {
"kind": "unit",
"parent_product_id": null,
"base_product_id": null,
"multiplicity": null,
"base_multiplicity": null,
"depth": 0
},
"created_at": "2026-08-01T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
},
"reservation": {
"required_qty": 2,
"reserved_qty": 2,
"unreserved_qty": 0,
"missing_qty": 0,
"status": "reserved"
},
"reservation_items": [
],
"created_at": "2026-08-10T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
}
],
"datamatrix_codes": [
{
"id": 6101,
"domain_id": 3,
"warehouse_id": 42,
"status_id": 1,
"acceptance_id": 5101,
"order_id": 49060,
"product_id": 1201,
"barcode": "04601234567890",
"short_code": "ABC123",
"crypto_tail": "CRYPTO",
"datamatrix": "010460123456789021ABC123",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"created_at": "2026-08-11T09:15:00Z",
"updated_at": "2026-08-11T09:15:00Z",
"used_at": null
}
],
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"shop": {
"id": 12,
"name": "Demo Online Store",
"status_id": 1
},
"company": {
"id": 7,
"name": "Demo Company",
"legal_name": "Demo Company Ltd."
},
"place": null,
"accumulation_place": null,
"measurements": {
"places": 1,
"dimensions": {
"x": 220,
"y": 160,
"z": 120,
"unit": "mm"
},
"weight": {
"value": 600,
"unit": "g"
}
},
"settings": {
"blank_url": null
},
"consumables": [
],
"wildberries": {
"id": 2101,
"account_id": 71,
"wb_order_id": "900001234",
"order_uid": "WB-UID-49060",
"rid": "WB-RID-49060",
"product_id": 1201,
"state": "confirmed",
"state_name": "Подтверждён",
"fulfillment_state": "delivered",
"fulfillment_state_name": "Доставлен",
"supplier_status": "confirm",
"wb_status": "sold",
"supply_id": 3201,
"external_supply_id": "WB-GI-740",
"supply_state": "delivered",
"delivery_type": "fbs",
"cross_border_type": null,
"is_b2b": false,
"wb_warehouse_id": 507,
"office_id": 507,
"nm_id": 12345678,
"chrt_id": 87654321,
"article": "ART-001245",
"skus": [
"4601234567890"
],
"required_meta": [
"sgtin"
],
"optional_meta": [
],
"meta_state": "accepted",
"sticker_state": "ready",
"prices": {
"price_minor": 1999,
"final_price_minor": 1999,
"sale_price_minor": 1999,
"currency": "RUB"
},
"markings": [
{
"id": 1,
"datamatrix_id": 6101,
"type": "sgtin",
"masked_value": "010460…ABC123",
"value_hash": "sha256:example",
"state": "accepted",
"remote_decision": "accepted",
"error_code": null,
"error_message": null,
"submitted_at": "2026-08-11T09:30:00Z",
"verified_at": "2026-08-11T09:31:00Z",
"ambiguous_at": null
}
],
"current_sticker": {
"id": 3401,
"kind": "order_sticker",
"format": "png",
"width": 580,
"height": 400,
"barcode": "WB-900001234",
"part_a": "123456",
"part_b": "7890",
"content_hash": "sha256:sticker-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:25:00Z",
"last_printed_at": null,
"print_count": 0
},
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-10T09:00:00Z",
"seller_date": "2026-08-10",
"delivery_date": "2026-08-12",
"confirmed_at": "2026-08-11T09:20:00Z",
"completed_at": "2026-08-11T10:15:00Z",
"imported_at": "2026-08-10T09:05:00Z",
"mapped_at": "2026-08-10T09:06:00Z",
"reserved_at": "2026-08-11T09:10:00Z",
"remote_status_checked_at": "2026-08-11T10:15:00Z"
},
"batch_matches": [
]
}
}
],
"created_at": "2026-08-11T08:45:00Z",
"updated_at": "2026-08-11T10:15:00Z"
},
"meta": {
"api_version": "v2"
}
}
400 Bad request
BadRequest
Bad request.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
BAD_REQUEST
{
"message": "Bad request.",
"error": "BAD_REQUEST"
}
401 Authentication required
Unauthorized
Authentication is required.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
AUTH_REQUIRED
{
"message": "Authentication is required.",
"error": "AUTH_REQUIRED"
}
403 Forbidden
Forbidden
The authenticated account is not allowed to perform this action.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
FORBIDDEN
{
"message": "The authenticated account is not allowed to perform this action.",
"error": "FORBIDDEN"
}
404 Not found
NotFound
The requested resource was not found or is outside the authenticated account scope.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
NOT_FOUND
{
"message": "The requested resource was not found or is outside the authenticated account scope.",
"error": "NOT_FOUND"
}
409 Conflict
SendDocumentConflict
The shipment document lifecycle or composition does not allow the requested operation.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
documentStateConflict
{
"message": "Состав документа уже заморожен.",
"errors": {
"send_document": [
"Состав документа уже заморожен."
]
}
}
422 Validation error
ValidationError
Validation failed.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
validationError
{
"message": "The given data was invalid.",
"error": "VALIDATION_ERROR",
"errors": {
"warehouse_id": [
"The selected warehouse is invalid."
]
}
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
Update send document
| operationId | patchSendDocuments |
|---|---|
| Tag | Send Documents |
| Security | bearerAuth |
Update send document. The request uses the documented payload schema, validates tenant visibility, and returns a normalized API envelope.
Current backend behavior is legacy partial-update semantics: omitted fields are left unchanged.
HTTP request example (cURL)
Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.
curl --globoff --request PATCH "${NWMS_BASE_URL}/api/v2/send-documents/740" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
--header "Content-Type: application/json" \
--data-binary @request.jsonParameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
id |
path | yes | integer:int64 |
min: 1 | Shipment document ID. | 740 |
||
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
PatchSendDocumentRequest required
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | PatchSendDocumentPayload |
Partial shipment document update. Omitted fields remain unchanged. | |
||
data.status_id |
no | integer:int64 | null |
2 |
|||
data.document_date |
no | string:date | null |
"2026-08-11" |
|||
data.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.delivery_service_ids |
no | array<integer:int64> |
minItems: 1 | |
||
data.delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data.comment |
no | string | null |
maxLength: 1000 | "Передано перевозчику" |
Request examples
default
{
"data": {
"comment": "Передано перевозчику"
}
}
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | SendDocument |
Outbound shipment document with its complete operational composition. Collection relations are empty unless requested through include; the item endpoint always loads them. |
|
||
data.id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.status_id |
no | integer:int64 | null |
1 |
|||
data.status |
no | object | null |
|
|||
data.status.id |
yes | integer:int64 |
1 |
|||
data.status.name |
yes | string |
"Открыт" |
|||
data.status.color |
no | string | null |
"#2457c5" |
|||
data.status.background_color |
no | string | null |
"#eaf0ff" |
|||
data.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.warehouse |
no | object | null |
|
|||
data.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.delivery_service_ids |
yes | array<integer:int64> |
|
|||
data.delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data.delivery_services |
yes | array<SendDocumentDeliveryService> |
|
|||
data.delivery_services[] |
no | SendDocumentDeliveryService |
|
|||
data.delivery_services[].id |
yes | integer:int64 |
min: 1 | 17 |
||
data.delivery_services[].name |
yes | string |
"Wildberries FBS" |
|||
data.delivery_services[].status_id |
yes | integer:int64 |
1 |
|||
data.delivery_services[].external_id |
no | string | null |
"wb-fbs" |
|||
data.delivery_services[].source_id |
no | string | null |
"wildberries" |
|||
data.delivery_services[].delivery_type |
no | string | null |
"pickup_point" |
|||
data.delivery_services[].is_courier |
yes | boolean |
false |
|||
data.document_date |
no | string:date | null |
"2026-08-11" |
|||
data.closed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.comment |
no | string | null |
"Wildberries shipment 740" |
|||
data.order_count |
yes | integer:int64 |
min: 0 | 1 |
||
data.processing |
yes | SendDocumentProcessing |
|
|||
data.processing.mode |
no | string | null |
"standard" |
|||
data.processing.pipeline |
yes | array<string> |
|
|||
data.processing.pipeline[] |
no | string |
"assignment" |
|||
data.processing.state |
no | string | null |
"open" |
|||
data.processing.batch_profile_id |
no | integer:int64 | null |
min: 1 | 31 |
||
data.processing.batch_profile |
no | object | null |
|
|||
data.processing.batch_profile.id |
yes | integer:int64 |
min: 1 | 31 |
||
data.processing.batch_profile.name |
yes | string |
"Standard packing" |
|||
data.processing.batch_profile.processing_mode |
no | string | null |
"standard" |
|||
data.processing.composition_frozen_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_started_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_completed_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.wildberries |
yes | SendDocumentWildberries |
Wildberries document-level state and safe supply/QR/sticker artifact metadata. Binary label content and encrypted provider payloads are not returned. | |
||
data.wildberries.fulfillment_state |
no | string | null |
"delivered" |
|||
data.wildberries.error_message |
no | string | null |
"" |
|||
data.wildberries.processed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.wildberries.supplies |
yes | array<object> |
|
|||
data.wildberries.supplies[] |
no | object |
|
|||
data.orders |
yes | array<SendDocumentOrderAssignment> |
|
|||
data.orders[] |
no | SendDocumentOrderAssignment |
|
|||
data.orders[].assignment_id |
yes | integer:int64 |
min: 1 | 8801 |
||
data.orders[].marked_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].created_at |
no | string:date-time | null |
"2026-08-11T09:00:00Z" |
|||
data.orders[].updated_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].order |
yes | object | null |
Complete order snapshot embedded into a shipment document. Marketplace and batch objects preserve provider-specific fields. | |
||
data.orders[].order.id |
yes | integer:int64 |
min: 1 | 49060 |
||
data.orders[].order.external_id |
no | string | null |
"WB-900001234" |
|||
data.orders[].order.status_id |
no | integer:int64 | null |
20 |
|||
data.orders[].order.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.order_date |
no | string:date | null |
"2026-08-10" |
|||
data.orders[].order.send_date |
no | string:date | null |
"2026-08-11" |
|||
data.orders[].order.amounts |
no | object | null |
|
|||
data.orders[].order.amounts.shipping_price |
no | number:float | null |
8.6 |
|||
data.orders[].order.amounts.shipping_cost |
no | number:float | null |
0 |
|||
data.orders[].order.amounts.sum |
no | number:float | null |
39.98 |
|||
data.orders[].order.amounts.cod_sum |
no | number:float | null |
48.58 |
|||
data.orders[].order.contact |
no | object | null |
|
|||
data.orders[].order.contact.first_name |
no | string | null |
"Ivan" |
|||
data.orders[].order.contact.middle_name |
no | string | null |
"Ivanovich" |
|||
data.orders[].order.contact.last_name |
no | string | null |
"Petrov" |
|||
data.orders[].order.contact.phone |
no | string | null |
"+359888123456" |
|||
data.orders[].order.contact.email |
no | string:email | null |
"customer@example.com" |
|||
data.orders[].order.contact.country_id |
no | integer:int64 | null |
min: 1 | 100 |
||
data.orders[].order.contact.city_id |
no | integer:int64 | null |
min: 1 | 200 |
||
data.orders[].order.contact.postcode |
no | string | null |
"1000" |
|||
data.orders[].order.contact.latitude |
no | number:float | null |
min: -90 max: 90 |
42.6977 |
||
data.orders[].order.contact.longitude |
no | number:float | null |
min: -180 max: 180 |
23.3219 |
||
data.orders[].order.contact.full_address |
no | string | null |
"1 Vitosha Boulevard, Sofia" |
|||
data.orders[].order.delivery |
no | object | null |
|
|||
data.orders[].order.delivery.service_id |
no | integer:int64 | null |
min: 1 | 1 |
||
data.orders[].order.delivery.delivery_type |
yes | enum | null |
enum: door, pickup_point | Normalized delivery channel derived from the configured delivery service. Null when the service type is unknown. | "door" |
|
data.orders[].order.delivery.is_courier |
yes | boolean |
True for door delivery; false for pickup-point delivery or an unknown service type. | true |
||
data.orders[].order.delivery.status |
no | string | null |
"created" |
|||
data.orders[].order.delivery.track_number |
no | string | null |
"CDEK-123456789" |
|||
data.orders[].order.delivery.pickup_point_id |
no | string | null |
"SOFIA-01" |
|||
data.orders[].order.delivery.source_id |
no | string | null |
"cdek-15" |
|||
data.orders[].order.delivery.tariff_code |
no | integer:int64 | null |
136 |
|||
data.orders[].order.delivery.additional_services |
no | object |
Values of additional CDEK services configured for the selected integration. Boolean true enables a code-only service; other values are sent as the CDEK parameter. |
{"TRYING_ON":true,"PART_DELIV":false,"PACKAGE_1":2} |
||
data.orders[].order.delivery.label |
no | string:uri | null |
"https://betawms.ffcdek.ru/labels/CDEK-123456789.pdf" |
|||
data.orders[].order.delivery.delivery_date |
no | string:date | null |
"2026-07-16" |
|||
data.orders[].order.delivery.delivery_time_start |
no | string:time | null |
"09:00:00Z" |
|||
data.orders[].order.delivery.delivery_time_end |
no | string:time | null |
"18:00:00Z" |
|||
data.orders[].order.comments |
no | object | null |
|
|||
data.orders[].order.comments.delivery_service_text |
no | string | null |
"Call before delivery" |
|||
data.orders[].order.comments.inner_text |
no | string | null |
"VIP customer" |
|||
data.orders[].order.offers |
yes | array<SendDocumentOrderLine> |
|
|||
data.orders[].order.offers[] |
no | SendDocumentOrderLine |
|
|||
data.orders[].order.offers[].id |
yes | integer:int64 |
min: 1 | 7001 |
||
data.orders[].order.offers[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.offers[].quantity |
no | number:float | null |
2 |
|||
data.orders[].order.offers[].estimated_price |
no | number:float | null |
19.5 |
|||
data.orders[].order.offers[].price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.offers[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.offers[].operation_user_id |
no | integer:int64 | null |
min: 1 | 9 |
||
data.orders[].order.offers[].product |
no | object | null |
|
|||
data.orders[].order.offers[].product.id |
yes | integer:int64 |
min: 1 | 1201 |
||
data.orders[].order.offers[].product.external_id |
no | string | null |
"EXT-10045" |
|||
data.orders[].order.offers[].product.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.offers[].product.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.offers[].product.status_id |
no | enum:int64 | null |
enum: 1, 2, 3 | 1 - active; 2 - disabled; 3 - deleted. |
1 |
|
data.orders[].order.offers[].product.type_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.offers[].product.name |
yes | string |
"Coffee 250g" |
|||
data.orders[].order.offers[].product.article |
no | string | null |
"ART-001245" |
|||
data.orders[].order.offers[].product.sku |
no | string | null |
"SKU-001245" |
|||
data.orders[].order.offers[].product.price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].product.estimated_price |
no | number:float | null |
21.5 |
|||
data.orders[].order.offers[].product.image_url |
no | string:uri | null |
"https://betawms.ffcdek.ru/offer-images/products/coffee-250g.jpg" |
|||
data.orders[].order.offers[].product.dimensions |
yes | Dimensions |
|
|||
data.orders[].order.offers[].product.weight |
yes | Weight |
|
|||
data.orders[].order.offers[].product.datamatrix_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.expiration_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.comment |
no | string | null |
"Keep dry" |
|||
data.orders[].order.offers[].product.description |
no | string | null |
"Ground coffee package" |
|||
data.orders[].order.offers[].product.barcodes |
yes | array<ProductBarcode> |
|
|||
data.orders[].order.offers[].product.package |
yes | object |
|
|||
data.orders[].order.offers[].product.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].product.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].reservation |
no | object | null |
Reservation totals for one order line. | |
||
data.orders[].order.offers[].reservation.required_qty |
yes | number:float |
3 |
|||
data.orders[].order.offers[].reservation.reserved_qty |
yes | number:float |
1 |
|||
data.orders[].order.offers[].reservation.unreserved_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.missing_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.status |
yes | enum |
enum: not_required, missing, partial, reserved | Reservation state calculated from the quantity required by the order and the quantity actually reserved. | "partial" |
|
data.orders[].order.offers[].reservation_items |
no | array<OrderReservationItem> |
|
|||
data.orders[].order.offers[].reservation_items[] |
no | OrderReservationItem |
Physical product or expanded component used to explain a reservation shortage. | |
||
data.orders[].order.offers[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes |
yes | array<DataMatrix> |
|
|||
data.orders[].order.datamatrix_codes[] |
no | DataMatrix |
Marked goods DataMatrix code. | |
||
data.orders[].order.datamatrix_codes[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.orders[].order.datamatrix_codes[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.datamatrix_codes[].warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.datamatrix_codes[].status_id |
no | enum:int64 | null |
enum: 0, 1, 2 | 0 - Imported and available for future warehouse operations. 1 - Reserved or attached by an operational document. 2 - Used by an outbound or completed operation. |
0 |
|
data.orders[].order.datamatrix_codes[].acceptance_id |
no | integer:int64 | null |
min: 1 | 5101 |
||
data.orders[].order.datamatrix_codes[].order_id |
no | integer:int64 | null |
min: 1 | 8101 |
||
data.orders[].order.datamatrix_codes[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.datamatrix_codes[].barcode |
no | string | null |
maxLength: 14 | "04601234567890" |
||
data.orders[].order.datamatrix_codes[].short_code |
no | string | null |
maxLength: 14 | "ABC123" |
||
data.orders[].order.datamatrix_codes[].crypto_tail |
no | string | null |
"CRYPTO" |
|||
data.orders[].order.datamatrix_codes[].datamatrix |
no | string | null |
maxLength: 125 | "010460123456789021ABC123" |
||
data.orders[].order.datamatrix_codes[].production_date |
no | string:date | null |
"2026-01-15" |
|||
data.orders[].order.datamatrix_codes[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.datamatrix_codes[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.datamatrix_codes[].used_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.warehouse |
no | object | null |
|
|||
data.orders[].order.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.orders[].order.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.orders[].order.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.orders[].order.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.orders[].order.shop |
no | object | null |
|
|||
data.orders[].order.shop.id |
yes | integer:int64 |
min: 1 | 12 |
||
data.orders[].order.shop.name |
yes | string |
"Demo Online Store" |
|||
data.orders[].order.shop.status_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.company |
no | object | null |
|
|||
data.orders[].order.company.id |
yes | integer:int64 |
min: 1 | 7 |
||
data.orders[].order.company.name |
yes | string |
"Demo Company" |
|||
data.orders[].order.company.legal_name |
no | string | null |
"Demo Company Ltd." |
|||
data.orders[].order.place |
no | object | null |
|
|||
data.orders[].order.accumulation_place |
no | object | null |
|
|||
data.orders[].order.measurements |
no | object | null |
|
|||
data.orders[].order.settings |
no | object | null |
|
|||
data.orders[].order.consumables |
yes | array<object> |
|
|||
data.orders[].order.consumables[] |
no | object |
|
|||
data.orders[].order.wildberries |
no | object | null |
|
|||
data.orders[].order.wildberries.completed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.orders[].order.batch_matches |
yes | array<object> |
|
|||
data.orders[].order.batch_matches[] |
no | object |
|
|||
meta |
yes | ResponseMeta |
|
|||
meta.api_version |
yes | enum |
enum: v2 | "v2" |
||
meta.deleted |
no | boolean |
true |
|||
meta.id |
no | integer:int64 | null |
min: 1 | 1001 |
||
meta.command_replayed |
no | boolean |
True when an idempotent cross-dock command returned the original successful result. | false |
||
meta.crossdock_configuration |
no | object | null |
|
|||
meta.crossdock_configuration.physical_warehouse_id |
yes | integer:int64 |
min: 1 | 42 |
||
meta.crossdock_configuration.enabled |
yes | boolean |
true |
|||
meta.crossdock_configuration.process_version |
yes | string |
"direct_order_v1" |
Response examples
success
{
"data": {
"id": 740,
"domain_id": 3,
"status_id": 1,
"status": {
"id": 1,
"name": "Открыт",
"color": "#2457c5",
"background_color": "#eaf0ff"
},
"warehouse_id": 42,
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"delivery_service_ids": [
17
],
"delivery_services": [
{
"id": 17,
"name": "Wildberries FBS",
"status_id": 1,
"external_id": "wb-fbs",
"source_id": "wildberries",
"delivery_type": "pickup_point",
"is_courier": false
}
],
"document_date": "2026-08-11",
"closed_at": "2026-08-11T10:15:00Z",
"comment": "Wildberries shipment 740",
"order_count": 1,
"processing": {
"mode": "standard",
"pipeline": [
"assignment",
"marking",
"transfer"
],
"state": "open",
"batch_profile_id": null,
"batch_profile": null,
"composition_frozen_at": null,
"batch_started_at": null,
"batch_completed_at": null
},
"wildberries": {
"fulfillment_state": "delivered",
"error_message": null,
"processed_at": "2026-08-11T10:15:00Z",
"supplies": [
{
"id": 3201,
"account_id": 71,
"external_id": "WB-GI-740",
"name": "Поставка 740",
"state": "delivered",
"state_name": "Доставлена",
"destination_type": "office",
"destination_office_id": 507,
"is_automatic": false,
"is_b2b": false,
"cargo_type": "box",
"cross_border_type": null,
"order_count": 1,
"current_qr": {
"id": 3301,
"kind": "supply_qr",
"format": "svg",
"width": 580,
"height": 400,
"barcode": "WB-GI-740",
"part_a": null,
"part_b": null,
"content_hash": "sha256:qr-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:00:00Z",
"last_printed_at": null,
"print_count": 0
},
"boxes": [
],
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-11T09:00:00Z",
"remote_closed_at": null,
"last_synced_at": "2026-08-11T10:15:00Z",
"delivered_at": "2026-08-11T10:15:00Z"
}
]
},
"orders": [
{
"assignment_id": 8801,
"marked_at": "2026-08-11T09:30:00Z",
"created_at": "2026-08-11T09:00:00Z",
"updated_at": "2026-08-11T09:30:00Z",
"order": {
"id": 49060,
"external_id": "WB-900001234",
"status_id": 20,
"warehouse_id": 42,
"shop_id": 12,
"order_date": "2026-08-10",
"send_date": "2026-08-11",
"amounts": {
"shipping_price": 0,
"shipping_cost": 0,
"sum": 39.98,
"cod_sum": 0
},
"contact": {
"first_name": "Иван",
"middle_name": null,
"last_name": "Петров",
"phone": "+359888123456",
"email": "customer@example.com",
"country_id": 100,
"city_id": 200,
"postcode": "1000",
"latitude": 42.6977,
"longitude": 23.3219,
"full_address": "Sofia"
},
"delivery": {
"service_id": 17,
"delivery_type": "pickup_point",
"is_courier": false,
"status": "created",
"track_number": "WB-900001234",
"pickup_point_id": "WB-SOF-01",
"source_id": "wildberries",
"tariff_code": null,
"additional_services": {
},
"label": null,
"delivery_date": "2026-08-12",
"delivery_time_start": null,
"delivery_time_end": null
},
"comments": {
"delivery_service_text": null,
"inner_text": "Клиентский пример для документа 740"
},
"offers": [
{
"id": 7001,
"product_id": 1201,
"quantity": 2,
"estimated_price": 19.5,
"price": 19.99,
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"operation_user_id": 9,
"product": {
"id": 1201,
"external_id": "EXT-10045",
"shop_id": 12,
"domain_id": 3,
"status_id": 1,
"type_id": 1,
"name": "Coffee 250g",
"article": "ART-001245",
"sku": "SKU-001245",
"price": 19.99,
"estimated_price": 21.5,
"image_url": null,
"dimensions": {
"x": 105,
"y": 200,
"z": 32,
"unit": "mm"
},
"weight": {
"value": 250,
"unit": "g"
},
"datamatrix_required": true,
"expiration_required": true,
"comment": null,
"description": "Ground coffee package",
"barcodes": [
{
"barcode": "4601234567890",
"is_main": true
}
],
"package": {
"kind": "unit",
"parent_product_id": null,
"base_product_id": null,
"multiplicity": null,
"base_multiplicity": null,
"depth": 0
},
"created_at": "2026-08-01T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
},
"reservation": {
"required_qty": 2,
"reserved_qty": 2,
"unreserved_qty": 0,
"missing_qty": 0,
"status": "reserved"
},
"reservation_items": [
],
"created_at": "2026-08-10T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
}
],
"datamatrix_codes": [
{
"id": 6101,
"domain_id": 3,
"warehouse_id": 42,
"status_id": 1,
"acceptance_id": 5101,
"order_id": 49060,
"product_id": 1201,
"barcode": "04601234567890",
"short_code": "ABC123",
"crypto_tail": "CRYPTO",
"datamatrix": "010460123456789021ABC123",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"created_at": "2026-08-11T09:15:00Z",
"updated_at": "2026-08-11T09:15:00Z",
"used_at": null
}
],
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"shop": {
"id": 12,
"name": "Demo Online Store",
"status_id": 1
},
"company": {
"id": 7,
"name": "Demo Company",
"legal_name": "Demo Company Ltd."
},
"place": null,
"accumulation_place": null,
"measurements": {
"places": 1,
"dimensions": {
"x": 220,
"y": 160,
"z": 120,
"unit": "mm"
},
"weight": {
"value": 600,
"unit": "g"
}
},
"settings": {
"blank_url": null
},
"consumables": [
],
"wildberries": {
"id": 2101,
"account_id": 71,
"wb_order_id": "900001234",
"order_uid": "WB-UID-49060",
"rid": "WB-RID-49060",
"product_id": 1201,
"state": "confirmed",
"state_name": "Подтверждён",
"fulfillment_state": "delivered",
"fulfillment_state_name": "Доставлен",
"supplier_status": "confirm",
"wb_status": "sold",
"supply_id": 3201,
"external_supply_id": "WB-GI-740",
"supply_state": "delivered",
"delivery_type": "fbs",
"cross_border_type": null,
"is_b2b": false,
"wb_warehouse_id": 507,
"office_id": 507,
"nm_id": 12345678,
"chrt_id": 87654321,
"article": "ART-001245",
"skus": [
"4601234567890"
],
"required_meta": [
"sgtin"
],
"optional_meta": [
],
"meta_state": "accepted",
"sticker_state": "ready",
"prices": {
"price_minor": 1999,
"final_price_minor": 1999,
"sale_price_minor": 1999,
"currency": "RUB"
},
"markings": [
{
"id": 1,
"datamatrix_id": 6101,
"type": "sgtin",
"masked_value": "010460…ABC123",
"value_hash": "sha256:example",
"state": "accepted",
"remote_decision": "accepted",
"error_code": null,
"error_message": null,
"submitted_at": "2026-08-11T09:30:00Z",
"verified_at": "2026-08-11T09:31:00Z",
"ambiguous_at": null
}
],
"current_sticker": {
"id": 3401,
"kind": "order_sticker",
"format": "png",
"width": 580,
"height": 400,
"barcode": "WB-900001234",
"part_a": "123456",
"part_b": "7890",
"content_hash": "sha256:sticker-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:25:00Z",
"last_printed_at": null,
"print_count": 0
},
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-10T09:00:00Z",
"seller_date": "2026-08-10",
"delivery_date": "2026-08-12",
"confirmed_at": "2026-08-11T09:20:00Z",
"completed_at": "2026-08-11T10:15:00Z",
"imported_at": "2026-08-10T09:05:00Z",
"mapped_at": "2026-08-10T09:06:00Z",
"reserved_at": "2026-08-11T09:10:00Z",
"remote_status_checked_at": "2026-08-11T10:15:00Z"
},
"batch_matches": [
]
}
}
],
"created_at": "2026-08-11T08:45:00Z",
"updated_at": "2026-08-11T10:15:00Z"
},
"meta": {
"api_version": "v2"
}
}
400 Bad request
BadRequest
Bad request.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
BAD_REQUEST
{
"message": "Bad request.",
"error": "BAD_REQUEST"
}
401 Authentication required
Unauthorized
Authentication is required.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
AUTH_REQUIRED
{
"message": "Authentication is required.",
"error": "AUTH_REQUIRED"
}
403 Forbidden
Forbidden
The authenticated account is not allowed to perform this action.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
FORBIDDEN
{
"message": "The authenticated account is not allowed to perform this action.",
"error": "FORBIDDEN"
}
404 Not found
NotFound
The requested resource was not found or is outside the authenticated account scope.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
NOT_FOUND
{
"message": "The requested resource was not found or is outside the authenticated account scope.",
"error": "NOT_FOUND"
}
409 Conflict
SendDocumentConflict
The shipment document lifecycle or composition does not allow the requested operation.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
documentStateConflict
{
"message": "Состав документа уже заморожен.",
"errors": {
"send_document": [
"Состав документа уже заморожен."
]
}
}
422 Validation error
ValidationError
Validation failed.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
validationError
{
"message": "The given data was invalid.",
"error": "VALIDATION_ERROR",
"errors": {
"warehouse_id": [
"The selected warehouse is invalid."
]
}
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
Remove send document
| operationId | deleteSendDocuments |
|---|---|
| Tag | Send Documents |
| Security | bearerAuth |
Deletes the resource when the authenticated account has permission and the current lifecycle state allows deletion. If deletion is blocked by related records or document state, the API returns a validation error.
HTTP request example (cURL)
Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.
curl --globoff --request DELETE "${NWMS_BASE_URL}/api/v2/send-documents/740" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}"Parameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
id |
path | yes | integer:int64 |
min: 1 | Shipment document ID. | 740 |
||
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
No request body.
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | object | null |
|
|||
meta |
yes | object |
|
|||
meta.api_version |
yes | enum |
enum: v2 | "v2" |
||
meta.deleted |
yes | boolean |
true |
|||
meta.id |
yes | integer:int64 |
min: 1 | 1001 |
Response examples
success
{
"data": null,
"meta": {
"api_version": "v2",
"deleted": true,
"id": 740
}
}
400 Bad request
BadRequest
Bad request.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
BAD_REQUEST
{
"message": "Bad request.",
"error": "BAD_REQUEST"
}
401 Authentication required
Unauthorized
Authentication is required.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
AUTH_REQUIRED
{
"message": "Authentication is required.",
"error": "AUTH_REQUIRED"
}
403 Forbidden
Forbidden
The authenticated account is not allowed to perform this action.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
FORBIDDEN
{
"message": "The authenticated account is not allowed to perform this action.",
"error": "FORBIDDEN"
}
404 Not found
NotFound
The requested resource was not found or is outside the authenticated account scope.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
NOT_FOUND
{
"message": "The requested resource was not found or is outside the authenticated account scope.",
"error": "NOT_FOUND"
}
409 Conflict
SendDocumentConflict
The shipment document lifecycle or composition does not allow the requested operation.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
documentStateConflict
{
"message": "Состав документа уже заморожен.",
"errors": {
"send_document": [
"Состав документа уже заморожен."
]
}
}
422 Validation error
ValidationError
Validation failed.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
validationError
{
"message": "The given data was invalid.",
"error": "VALIDATION_ERROR",
"errors": {
"warehouse_id": [
"The selected warehouse is invalid."
]
}
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
List send document events
| operationId | listSendDocumentsEvents |
|---|---|
| Tag | Send Documents |
| Security | bearerAuth |
Returns send documents visible to the authenticated account. Use documented query parameters for filtering, sorting, and pagination.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
Unknown read parameters are ignored. per_page is silently capped; use meta.per_page. Date-only boundaries follow the installation's stored calendar dates; ISO timestamps are serialized in UTC. The default general API limit is 600/minute; a user-specific override may apply. Its bucket is shared by authenticated user, not by shop/domain; Retry-After is returned on throttling.
HTTP request example (cURL)
Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.
curl --globoff --request GET "${NWMS_BASE_URL}/api/v2/send-documents/740/events" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}"Parameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
id |
path | yes | integer:int64 |
min: 1 | Shipment document ID. | 740 |
||
page |
query | no | integer:int64 |
form | true | min: 1 | Page number. The same filter may also be sent as filter[page] where supported by the Laravel query adapter. |
1 |
per_page |
query | no | integer:int64 |
form | true | min: 1 max: 500 |
Number of records per page. Default is 100; maximum is 500. The same filter may also be sent as filter[per_page] where supported by the Laravel query adapter. |
100 |
sort |
query | no | string |
form | false | pattern: ^-?[A-Za-z0-9_]+(,-?[A-Za-z0-9_]+)*$ | Comma-separated sort fields. Prefix with - for descending order. Allowed fields: id, happened_at, created_at. Default: id. The same filter may also be sent as filter[sort] where supported by the Laravel query adapter. |
"id" |
id |
query | no | integer:int64 |
form | true | min: 1 | Filter by id using exact matching. The same filter may also be sent as filter[id] where supported by the Laravel query adapter. |
1001 |
category |
query | no | string |
form | true | Filter by category using exact matching. The same filter may also be sent as filter[category] where supported by the Laravel query adapter. |
"document" |
|
state |
query | no | string |
form | true | Filter by state using exact matching. The same filter may also be sent as filter[state] where supported by the Laravel query adapter. |
"ready" |
|
direction |
query | no | string |
form | true | Filter by direction using exact matching. The same filter may also be sent as filter[direction] where supported by the Laravel query adapter. |
"outbound" |
|
order_id |
query | no | integer:int64 |
form | true | min: 1 | Filter by order_id using exact matching. The same filter may also be sent as filter[order_id] where supported by the Laravel query adapter. |
1 |
product_id |
query | no | integer:int64 |
form | true | min: 1 | Filter by product_id using exact matching. The same filter may also be sent as filter[product_id] where supported by the Laravel query adapter. |
1201 |
event |
query | no | string |
form | true | Filter by event using partial text matching. The same filter may also be sent as filter[event] where supported by the Laravel query adapter. |
"order_attached" |
|
error_message |
query | no | string |
form | true | Filter by error_message using partial text matching. The same filter may also be sent as filter[error_message] where supported by the Laravel query adapter. |
"Remote service rejected the shipment" |
|
happened_at_from |
query | no | string:date |
form | true | Lower inclusive date boundary for happened_at. The same filter may also be sent as filter[happened_at_from] where supported by the Laravel query adapter. |
"2026-07-14" |
|
happened_at_to |
query | no | string:date |
form | true | Upper inclusive date boundary for happened_at. The same filter may also be sent as filter[happened_at_to] where supported by the Laravel query adapter. |
"2026-07-14" |
|
created_at_from |
query | no | string:date |
form | true | Lower inclusive date boundary for created_at. The same filter may also be sent as filter[created_at_from] where supported by the Laravel query adapter. |
"2026-07-14" |
|
created_at_to |
query | no | string:date |
form | true | Upper inclusive date boundary for created_at. The same filter may also be sent as filter[created_at_to] where supported by the Laravel query adapter. |
"2026-07-14" |
Request body
No request body.
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | array<SendDocumentAuditEvent> |
|
|||
data[] |
no | SendDocumentAuditEvent |
Append-only audit event for a shipment document. | |
||
data[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].category |
no | string | null |
"document" |
|||
data[].event |
yes | string |
"order_attached" |
|||
data[].state |
no | string | null |
"open" |
|||
data[].direction |
no | string | null |
"outbound" |
|||
data[].happened_at |
no | string:date-time | null |
"2026-08-11T09:00:00Z" |
|||
data[].actor_id |
no | integer:int64 | null |
min: 1 | 15 |
||
data[].actor_type |
no | string | null |
"user" |
|||
data[].request_id |
no | string | null |
"req-740-attach" |
|||
data[].order_id |
no | integer:int64 | null |
min: 1 | 49060 |
||
data[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data[].entity_type |
no | string | null |
"shipment" |
|||
data[].entity_id |
no | integer:int64 | null |
min: 1 | 740 |
||
data[].context |
yes | object |
|
|||
data[].error_code |
no | string | null |
"" |
|||
data[].error_message |
no | string | null |
"" |
|||
links |
yes | PaginationLinks |
|
|||
links.first |
yes | string:uri | null |
"https://betawms.ffcdek.ru/api/v2/orders?page=1" |
|||
links.last |
yes | string:uri | null |
"https://betawms.ffcdek.ru/api/v2/orders?page=2" |
|||
links.prev |
yes | string:uri | null |
|
|||
links.next |
yes | string:uri | null |
"https://betawms.ffcdek.ru/api/v2/orders?page=2" |
|||
meta |
yes | PaginationMeta |
|
|||
meta.api_version |
yes | enum |
enum: v2 | "v2" |
||
meta.current_page |
yes | integer:int32 |
min: 1 | 1 |
||
meta.from |
yes | integer:int32 | null |
min: 1 | 1 |
||
meta.last_page |
yes | integer:int32 |
min: 1 | 2 |
||
meta.path |
yes | string:uri |
"https://betawms.ffcdek.ru/api/v2/orders" |
|||
meta.per_page |
yes | integer:int32 |
min: 1 | 50 |
||
meta.to |
yes | integer:int32 | null |
min: 1 | 50 |
||
meta.total |
yes | integer:int32 |
min: 0 | 73 |
Response examples
success
{
"data": [
{
"id": 9901,
"category": "document",
"event": "order_attached",
"state": "open",
"direction": "outbound",
"happened_at": "2026-08-11T09:00:00Z",
"actor_id": 15,
"actor_type": "user",
"request_id": "req-740-attach",
"order_id": 49060,
"product_id": null,
"entity_type": "shipment",
"entity_id": 740,
"context": {
"document_id": 740,
"order_id": 49060
},
"error_code": null,
"error_message": null,
"created_at": "2026-08-11T09:00:00Z",
"updated_at": "2026-08-11T09:00:00Z"
}
],
"links": {
"first": "https://betawms.ffcdek.ru/api/v2/send-documents/740/events?page=1",
"last": "https://betawms.ffcdek.ru/api/v2/send-documents/740/events?page=2",
"prev": null,
"next": "https://betawms.ffcdek.ru/api/v2/send-documents/740/events?page=2"
},
"meta": {
"api_version": "v2",
"current_page": 1,
"from": 1,
"last_page": 2,
"path": "https://betawms.ffcdek.ru/api/v2/send-documents/740/events",
"per_page": 100,
"to": 100,
"total": 123
}
}
401 Authentication required
Unauthorized
Authentication is required.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
AUTH_REQUIRED
{
"message": "Authentication is required.",
"error": "AUTH_REQUIRED"
}
403 Forbidden
Forbidden
The authenticated account is not allowed to perform this action.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
FORBIDDEN
{
"message": "The authenticated account is not allowed to perform this action.",
"error": "FORBIDDEN"
}
404 Not found
NotFound
The requested resource was not found or is outside the authenticated account scope.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
NOT_FOUND
{
"message": "The requested resource was not found or is outside the authenticated account scope.",
"error": "NOT_FOUND"
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
Attach orders to send document
| operationId | createSendDocumentsOrders |
|---|---|
| Tag | Send Documents |
| Security | bearerAuth |
Attach orders to send document. The request uses the documented payload schema, validates tenant visibility, and returns a normalized API envelope.
HTTP request example (cURL)
Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.
curl --globoff --request POST "${NWMS_BASE_URL}/api/v2/send-documents/740/orders" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
--header "Content-Type: application/json" \
--data-binary @request.jsonParameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
id |
path | yes | integer:int64 |
min: 1 | Shipment document ID. | 740 |
||
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
AttachSendDocumentOrdersRequest required
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | AttachSendDocumentOrdersPayload |
Orders to attach. Every order must be visible to the caller and compatible with the document warehouse, delivery services and lifecycle state. | |
||
data.order_ids |
yes | array<integer:int64> |
minItems: 1 maxItems: 100 |
|
||
data.order_ids[] |
no | integer:int64 |
min: 1 | 49060 |
Request examples
default
{
"data": {
"order_ids": [
49060
]
}
}
Responses
201 Created.
Created.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | SendDocument |
Outbound shipment document with its complete operational composition. Collection relations are empty unless requested through include; the item endpoint always loads them. |
|
||
data.id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.status_id |
no | integer:int64 | null |
1 |
|||
data.status |
no | object | null |
|
|||
data.status.id |
yes | integer:int64 |
1 |
|||
data.status.name |
yes | string |
"Открыт" |
|||
data.status.color |
no | string | null |
"#2457c5" |
|||
data.status.background_color |
no | string | null |
"#eaf0ff" |
|||
data.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.warehouse |
no | object | null |
|
|||
data.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.delivery_service_ids |
yes | array<integer:int64> |
|
|||
data.delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data.delivery_services |
yes | array<SendDocumentDeliveryService> |
|
|||
data.delivery_services[] |
no | SendDocumentDeliveryService |
|
|||
data.delivery_services[].id |
yes | integer:int64 |
min: 1 | 17 |
||
data.delivery_services[].name |
yes | string |
"Wildberries FBS" |
|||
data.delivery_services[].status_id |
yes | integer:int64 |
1 |
|||
data.delivery_services[].external_id |
no | string | null |
"wb-fbs" |
|||
data.delivery_services[].source_id |
no | string | null |
"wildberries" |
|||
data.delivery_services[].delivery_type |
no | string | null |
"pickup_point" |
|||
data.delivery_services[].is_courier |
yes | boolean |
false |
|||
data.document_date |
no | string:date | null |
"2026-08-11" |
|||
data.closed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.comment |
no | string | null |
"Wildberries shipment 740" |
|||
data.order_count |
yes | integer:int64 |
min: 0 | 1 |
||
data.processing |
yes | SendDocumentProcessing |
|
|||
data.processing.mode |
no | string | null |
"standard" |
|||
data.processing.pipeline |
yes | array<string> |
|
|||
data.processing.pipeline[] |
no | string |
"assignment" |
|||
data.processing.state |
no | string | null |
"open" |
|||
data.processing.batch_profile_id |
no | integer:int64 | null |
min: 1 | 31 |
||
data.processing.batch_profile |
no | object | null |
|
|||
data.processing.batch_profile.id |
yes | integer:int64 |
min: 1 | 31 |
||
data.processing.batch_profile.name |
yes | string |
"Standard packing" |
|||
data.processing.batch_profile.processing_mode |
no | string | null |
"standard" |
|||
data.processing.composition_frozen_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_started_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_completed_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.wildberries |
yes | SendDocumentWildberries |
Wildberries document-level state and safe supply/QR/sticker artifact metadata. Binary label content and encrypted provider payloads are not returned. | |
||
data.wildberries.fulfillment_state |
no | string | null |
"delivered" |
|||
data.wildberries.error_message |
no | string | null |
"" |
|||
data.wildberries.processed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.wildberries.supplies |
yes | array<object> |
|
|||
data.wildberries.supplies[] |
no | object |
|
|||
data.orders |
yes | array<SendDocumentOrderAssignment> |
|
|||
data.orders[] |
no | SendDocumentOrderAssignment |
|
|||
data.orders[].assignment_id |
yes | integer:int64 |
min: 1 | 8801 |
||
data.orders[].marked_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].created_at |
no | string:date-time | null |
"2026-08-11T09:00:00Z" |
|||
data.orders[].updated_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].order |
yes | object | null |
Complete order snapshot embedded into a shipment document. Marketplace and batch objects preserve provider-specific fields. | |
||
data.orders[].order.id |
yes | integer:int64 |
min: 1 | 49060 |
||
data.orders[].order.external_id |
no | string | null |
"WB-900001234" |
|||
data.orders[].order.status_id |
no | integer:int64 | null |
20 |
|||
data.orders[].order.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.order_date |
no | string:date | null |
"2026-08-10" |
|||
data.orders[].order.send_date |
no | string:date | null |
"2026-08-11" |
|||
data.orders[].order.amounts |
no | object | null |
|
|||
data.orders[].order.amounts.shipping_price |
no | number:float | null |
8.6 |
|||
data.orders[].order.amounts.shipping_cost |
no | number:float | null |
0 |
|||
data.orders[].order.amounts.sum |
no | number:float | null |
39.98 |
|||
data.orders[].order.amounts.cod_sum |
no | number:float | null |
48.58 |
|||
data.orders[].order.contact |
no | object | null |
|
|||
data.orders[].order.contact.first_name |
no | string | null |
"Ivan" |
|||
data.orders[].order.contact.middle_name |
no | string | null |
"Ivanovich" |
|||
data.orders[].order.contact.last_name |
no | string | null |
"Petrov" |
|||
data.orders[].order.contact.phone |
no | string | null |
"+359888123456" |
|||
data.orders[].order.contact.email |
no | string:email | null |
"customer@example.com" |
|||
data.orders[].order.contact.country_id |
no | integer:int64 | null |
min: 1 | 100 |
||
data.orders[].order.contact.city_id |
no | integer:int64 | null |
min: 1 | 200 |
||
data.orders[].order.contact.postcode |
no | string | null |
"1000" |
|||
data.orders[].order.contact.latitude |
no | number:float | null |
min: -90 max: 90 |
42.6977 |
||
data.orders[].order.contact.longitude |
no | number:float | null |
min: -180 max: 180 |
23.3219 |
||
data.orders[].order.contact.full_address |
no | string | null |
"1 Vitosha Boulevard, Sofia" |
|||
data.orders[].order.delivery |
no | object | null |
|
|||
data.orders[].order.delivery.service_id |
no | integer:int64 | null |
min: 1 | 1 |
||
data.orders[].order.delivery.delivery_type |
yes | enum | null |
enum: door, pickup_point | Normalized delivery channel derived from the configured delivery service. Null when the service type is unknown. | "door" |
|
data.orders[].order.delivery.is_courier |
yes | boolean |
True for door delivery; false for pickup-point delivery or an unknown service type. | true |
||
data.orders[].order.delivery.status |
no | string | null |
"created" |
|||
data.orders[].order.delivery.track_number |
no | string | null |
"CDEK-123456789" |
|||
data.orders[].order.delivery.pickup_point_id |
no | string | null |
"SOFIA-01" |
|||
data.orders[].order.delivery.source_id |
no | string | null |
"cdek-15" |
|||
data.orders[].order.delivery.tariff_code |
no | integer:int64 | null |
136 |
|||
data.orders[].order.delivery.additional_services |
no | object |
Values of additional CDEK services configured for the selected integration. Boolean true enables a code-only service; other values are sent as the CDEK parameter. |
{"TRYING_ON":true,"PART_DELIV":false,"PACKAGE_1":2} |
||
data.orders[].order.delivery.label |
no | string:uri | null |
"https://betawms.ffcdek.ru/labels/CDEK-123456789.pdf" |
|||
data.orders[].order.delivery.delivery_date |
no | string:date | null |
"2026-07-16" |
|||
data.orders[].order.delivery.delivery_time_start |
no | string:time | null |
"09:00:00Z" |
|||
data.orders[].order.delivery.delivery_time_end |
no | string:time | null |
"18:00:00Z" |
|||
data.orders[].order.comments |
no | object | null |
|
|||
data.orders[].order.comments.delivery_service_text |
no | string | null |
"Call before delivery" |
|||
data.orders[].order.comments.inner_text |
no | string | null |
"VIP customer" |
|||
data.orders[].order.offers |
yes | array<SendDocumentOrderLine> |
|
|||
data.orders[].order.offers[] |
no | SendDocumentOrderLine |
|
|||
data.orders[].order.offers[].id |
yes | integer:int64 |
min: 1 | 7001 |
||
data.orders[].order.offers[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.offers[].quantity |
no | number:float | null |
2 |
|||
data.orders[].order.offers[].estimated_price |
no | number:float | null |
19.5 |
|||
data.orders[].order.offers[].price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.offers[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.offers[].operation_user_id |
no | integer:int64 | null |
min: 1 | 9 |
||
data.orders[].order.offers[].product |
no | object | null |
|
|||
data.orders[].order.offers[].product.id |
yes | integer:int64 |
min: 1 | 1201 |
||
data.orders[].order.offers[].product.external_id |
no | string | null |
"EXT-10045" |
|||
data.orders[].order.offers[].product.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.offers[].product.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.offers[].product.status_id |
no | enum:int64 | null |
enum: 1, 2, 3 | 1 - active; 2 - disabled; 3 - deleted. |
1 |
|
data.orders[].order.offers[].product.type_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.offers[].product.name |
yes | string |
"Coffee 250g" |
|||
data.orders[].order.offers[].product.article |
no | string | null |
"ART-001245" |
|||
data.orders[].order.offers[].product.sku |
no | string | null |
"SKU-001245" |
|||
data.orders[].order.offers[].product.price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].product.estimated_price |
no | number:float | null |
21.5 |
|||
data.orders[].order.offers[].product.image_url |
no | string:uri | null |
"https://betawms.ffcdek.ru/offer-images/products/coffee-250g.jpg" |
|||
data.orders[].order.offers[].product.dimensions |
yes | Dimensions |
|
|||
data.orders[].order.offers[].product.weight |
yes | Weight |
|
|||
data.orders[].order.offers[].product.datamatrix_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.expiration_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.comment |
no | string | null |
"Keep dry" |
|||
data.orders[].order.offers[].product.description |
no | string | null |
"Ground coffee package" |
|||
data.orders[].order.offers[].product.barcodes |
yes | array<ProductBarcode> |
|
|||
data.orders[].order.offers[].product.package |
yes | object |
|
|||
data.orders[].order.offers[].product.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].product.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].reservation |
no | object | null |
Reservation totals for one order line. | |
||
data.orders[].order.offers[].reservation.required_qty |
yes | number:float |
3 |
|||
data.orders[].order.offers[].reservation.reserved_qty |
yes | number:float |
1 |
|||
data.orders[].order.offers[].reservation.unreserved_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.missing_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.status |
yes | enum |
enum: not_required, missing, partial, reserved | Reservation state calculated from the quantity required by the order and the quantity actually reserved. | "partial" |
|
data.orders[].order.offers[].reservation_items |
no | array<OrderReservationItem> |
|
|||
data.orders[].order.offers[].reservation_items[] |
no | OrderReservationItem |
Physical product or expanded component used to explain a reservation shortage. | |
||
data.orders[].order.offers[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes |
yes | array<DataMatrix> |
|
|||
data.orders[].order.datamatrix_codes[] |
no | DataMatrix |
Marked goods DataMatrix code. | |
||
data.orders[].order.datamatrix_codes[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.orders[].order.datamatrix_codes[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.datamatrix_codes[].warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.datamatrix_codes[].status_id |
no | enum:int64 | null |
enum: 0, 1, 2 | 0 - Imported and available for future warehouse operations. 1 - Reserved or attached by an operational document. 2 - Used by an outbound or completed operation. |
0 |
|
data.orders[].order.datamatrix_codes[].acceptance_id |
no | integer:int64 | null |
min: 1 | 5101 |
||
data.orders[].order.datamatrix_codes[].order_id |
no | integer:int64 | null |
min: 1 | 8101 |
||
data.orders[].order.datamatrix_codes[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.datamatrix_codes[].barcode |
no | string | null |
maxLength: 14 | "04601234567890" |
||
data.orders[].order.datamatrix_codes[].short_code |
no | string | null |
maxLength: 14 | "ABC123" |
||
data.orders[].order.datamatrix_codes[].crypto_tail |
no | string | null |
"CRYPTO" |
|||
data.orders[].order.datamatrix_codes[].datamatrix |
no | string | null |
maxLength: 125 | "010460123456789021ABC123" |
||
data.orders[].order.datamatrix_codes[].production_date |
no | string:date | null |
"2026-01-15" |
|||
data.orders[].order.datamatrix_codes[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.datamatrix_codes[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.datamatrix_codes[].used_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.warehouse |
no | object | null |
|
|||
data.orders[].order.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.orders[].order.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.orders[].order.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.orders[].order.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.orders[].order.shop |
no | object | null |
|
|||
data.orders[].order.shop.id |
yes | integer:int64 |
min: 1 | 12 |
||
data.orders[].order.shop.name |
yes | string |
"Demo Online Store" |
|||
data.orders[].order.shop.status_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.company |
no | object | null |
|
|||
data.orders[].order.company.id |
yes | integer:int64 |
min: 1 | 7 |
||
data.orders[].order.company.name |
yes | string |
"Demo Company" |
|||
data.orders[].order.company.legal_name |
no | string | null |
"Demo Company Ltd." |
|||
data.orders[].order.place |
no | object | null |
|
|||
data.orders[].order.accumulation_place |
no | object | null |
|
|||
data.orders[].order.measurements |
no | object | null |
|
|||
data.orders[].order.settings |
no | object | null |
|
|||
data.orders[].order.consumables |
yes | array<object> |
|
|||
data.orders[].order.consumables[] |
no | object |
|
|||
data.orders[].order.wildberries |
no | object | null |
|
|||
data.orders[].order.wildberries.completed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.orders[].order.batch_matches |
yes | array<object> |
|
|||
data.orders[].order.batch_matches[] |
no | object |
|
|||
meta |
yes | ResponseMeta |
|
|||
meta.api_version |
yes | enum |
enum: v2 | "v2" |
||
meta.deleted |
no | boolean |
true |
|||
meta.id |
no | integer:int64 | null |
min: 1 | 1001 |
||
meta.command_replayed |
no | boolean |
True when an idempotent cross-dock command returned the original successful result. | false |
||
meta.crossdock_configuration |
no | object | null |
|
|||
meta.crossdock_configuration.physical_warehouse_id |
yes | integer:int64 |
min: 1 | 42 |
||
meta.crossdock_configuration.enabled |
yes | boolean |
true |
|||
meta.crossdock_configuration.process_version |
yes | string |
"direct_order_v1" |
Response examples
success
{
"data": {
"id": 740,
"domain_id": 3,
"status_id": 1,
"status": {
"id": 1,
"name": "Открыт",
"color": "#2457c5",
"background_color": "#eaf0ff"
},
"warehouse_id": 42,
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"delivery_service_ids": [
17
],
"delivery_services": [
{
"id": 17,
"name": "Wildberries FBS",
"status_id": 1,
"external_id": "wb-fbs",
"source_id": "wildberries",
"delivery_type": "pickup_point",
"is_courier": false
}
],
"document_date": "2026-08-11",
"closed_at": "2026-08-11T10:15:00Z",
"comment": "Wildberries shipment 740",
"order_count": 1,
"processing": {
"mode": "standard",
"pipeline": [
"assignment",
"marking",
"transfer"
],
"state": "open",
"batch_profile_id": null,
"batch_profile": null,
"composition_frozen_at": null,
"batch_started_at": null,
"batch_completed_at": null
},
"wildberries": {
"fulfillment_state": "delivered",
"error_message": null,
"processed_at": "2026-08-11T10:15:00Z",
"supplies": [
{
"id": 3201,
"account_id": 71,
"external_id": "WB-GI-740",
"name": "Поставка 740",
"state": "delivered",
"state_name": "Доставлена",
"destination_type": "office",
"destination_office_id": 507,
"is_automatic": false,
"is_b2b": false,
"cargo_type": "box",
"cross_border_type": null,
"order_count": 1,
"current_qr": {
"id": 3301,
"kind": "supply_qr",
"format": "svg",
"width": 580,
"height": 400,
"barcode": "WB-GI-740",
"part_a": null,
"part_b": null,
"content_hash": "sha256:qr-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:00:00Z",
"last_printed_at": null,
"print_count": 0
},
"boxes": [
],
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-11T09:00:00Z",
"remote_closed_at": null,
"last_synced_at": "2026-08-11T10:15:00Z",
"delivered_at": "2026-08-11T10:15:00Z"
}
]
},
"orders": [
{
"assignment_id": 8801,
"marked_at": "2026-08-11T09:30:00Z",
"created_at": "2026-08-11T09:00:00Z",
"updated_at": "2026-08-11T09:30:00Z",
"order": {
"id": 49060,
"external_id": "WB-900001234",
"status_id": 20,
"warehouse_id": 42,
"shop_id": 12,
"order_date": "2026-08-10",
"send_date": "2026-08-11",
"amounts": {
"shipping_price": 0,
"shipping_cost": 0,
"sum": 39.98,
"cod_sum": 0
},
"contact": {
"first_name": "Иван",
"middle_name": null,
"last_name": "Петров",
"phone": "+359888123456",
"email": "customer@example.com",
"country_id": 100,
"city_id": 200,
"postcode": "1000",
"latitude": 42.6977,
"longitude": 23.3219,
"full_address": "Sofia"
},
"delivery": {
"service_id": 17,
"delivery_type": "pickup_point",
"is_courier": false,
"status": "created",
"track_number": "WB-900001234",
"pickup_point_id": "WB-SOF-01",
"source_id": "wildberries",
"tariff_code": null,
"additional_services": {
},
"label": null,
"delivery_date": "2026-08-12",
"delivery_time_start": null,
"delivery_time_end": null
},
"comments": {
"delivery_service_text": null,
"inner_text": "Клиентский пример для документа 740"
},
"offers": [
{
"id": 7001,
"product_id": 1201,
"quantity": 2,
"estimated_price": 19.5,
"price": 19.99,
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"operation_user_id": 9,
"product": {
"id": 1201,
"external_id": "EXT-10045",
"shop_id": 12,
"domain_id": 3,
"status_id": 1,
"type_id": 1,
"name": "Coffee 250g",
"article": "ART-001245",
"sku": "SKU-001245",
"price": 19.99,
"estimated_price": 21.5,
"image_url": null,
"dimensions": {
"x": 105,
"y": 200,
"z": 32,
"unit": "mm"
},
"weight": {
"value": 250,
"unit": "g"
},
"datamatrix_required": true,
"expiration_required": true,
"comment": null,
"description": "Ground coffee package",
"barcodes": [
{
"barcode": "4601234567890",
"is_main": true
}
],
"package": {
"kind": "unit",
"parent_product_id": null,
"base_product_id": null,
"multiplicity": null,
"base_multiplicity": null,
"depth": 0
},
"created_at": "2026-08-01T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
},
"reservation": {
"required_qty": 2,
"reserved_qty": 2,
"unreserved_qty": 0,
"missing_qty": 0,
"status": "reserved"
},
"reservation_items": [
],
"created_at": "2026-08-10T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
}
],
"datamatrix_codes": [
{
"id": 6101,
"domain_id": 3,
"warehouse_id": 42,
"status_id": 1,
"acceptance_id": 5101,
"order_id": 49060,
"product_id": 1201,
"barcode": "04601234567890",
"short_code": "ABC123",
"crypto_tail": "CRYPTO",
"datamatrix": "010460123456789021ABC123",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"created_at": "2026-08-11T09:15:00Z",
"updated_at": "2026-08-11T09:15:00Z",
"used_at": null
}
],
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"shop": {
"id": 12,
"name": "Demo Online Store",
"status_id": 1
},
"company": {
"id": 7,
"name": "Demo Company",
"legal_name": "Demo Company Ltd."
},
"place": null,
"accumulation_place": null,
"measurements": {
"places": 1,
"dimensions": {
"x": 220,
"y": 160,
"z": 120,
"unit": "mm"
},
"weight": {
"value": 600,
"unit": "g"
}
},
"settings": {
"blank_url": null
},
"consumables": [
],
"wildberries": {
"id": 2101,
"account_id": 71,
"wb_order_id": "900001234",
"order_uid": "WB-UID-49060",
"rid": "WB-RID-49060",
"product_id": 1201,
"state": "confirmed",
"state_name": "Подтверждён",
"fulfillment_state": "delivered",
"fulfillment_state_name": "Доставлен",
"supplier_status": "confirm",
"wb_status": "sold",
"supply_id": 3201,
"external_supply_id": "WB-GI-740",
"supply_state": "delivered",
"delivery_type": "fbs",
"cross_border_type": null,
"is_b2b": false,
"wb_warehouse_id": 507,
"office_id": 507,
"nm_id": 12345678,
"chrt_id": 87654321,
"article": "ART-001245",
"skus": [
"4601234567890"
],
"required_meta": [
"sgtin"
],
"optional_meta": [
],
"meta_state": "accepted",
"sticker_state": "ready",
"prices": {
"price_minor": 1999,
"final_price_minor": 1999,
"sale_price_minor": 1999,
"currency": "RUB"
},
"markings": [
{
"id": 1,
"datamatrix_id": 6101,
"type": "sgtin",
"masked_value": "010460…ABC123",
"value_hash": "sha256:example",
"state": "accepted",
"remote_decision": "accepted",
"error_code": null,
"error_message": null,
"submitted_at": "2026-08-11T09:30:00Z",
"verified_at": "2026-08-11T09:31:00Z",
"ambiguous_at": null
}
],
"current_sticker": {
"id": 3401,
"kind": "order_sticker",
"format": "png",
"width": 580,
"height": 400,
"barcode": "WB-900001234",
"part_a": "123456",
"part_b": "7890",
"content_hash": "sha256:sticker-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:25:00Z",
"last_printed_at": null,
"print_count": 0
},
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-10T09:00:00Z",
"seller_date": "2026-08-10",
"delivery_date": "2026-08-12",
"confirmed_at": "2026-08-11T09:20:00Z",
"completed_at": "2026-08-11T10:15:00Z",
"imported_at": "2026-08-10T09:05:00Z",
"mapped_at": "2026-08-10T09:06:00Z",
"reserved_at": "2026-08-11T09:10:00Z",
"remote_status_checked_at": "2026-08-11T10:15:00Z"
},
"batch_matches": [
]
}
}
],
"created_at": "2026-08-11T08:45:00Z",
"updated_at": "2026-08-11T10:15:00Z"
},
"meta": {
"api_version": "v2"
}
}
400 Bad request
BadRequest
Bad request.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
BAD_REQUEST
{
"message": "Bad request.",
"error": "BAD_REQUEST"
}
401 Authentication required
Unauthorized
Authentication is required.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
AUTH_REQUIRED
{
"message": "Authentication is required.",
"error": "AUTH_REQUIRED"
}
403 Forbidden
Forbidden
The authenticated account is not allowed to perform this action.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
FORBIDDEN
{
"message": "The authenticated account is not allowed to perform this action.",
"error": "FORBIDDEN"
}
404 Not found
NotFound
The requested resource was not found or is outside the authenticated account scope.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
NOT_FOUND
{
"message": "The requested resource was not found or is outside the authenticated account scope.",
"error": "NOT_FOUND"
}
409 Conflict
SendDocumentConflict
The shipment document lifecycle or composition does not allow the requested operation.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
documentStateConflict
{
"message": "Состав документа уже заморожен.",
"errors": {
"send_document": [
"Состав документа уже заморожен."
]
}
}
422 Validation error
ValidationError
Validation failed.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
validationError
{
"message": "The given data was invalid.",
"error": "VALIDATION_ERROR",
"errors": {
"warehouse_id": [
"The selected warehouse is invalid."
]
}
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
Detach order from send document
| operationId | deleteSendDocumentsOrders |
|---|---|
| Tag | Send Documents |
| Security | bearerAuth |
Deletes the resource when the authenticated account has permission and the current lifecycle state allows deletion. If deletion is blocked by related records or document state, the API returns a validation error.
HTTP request example (cURL)
Set your server and token. Replace sample IDs with accessible IDs. For requests with a body, save the applicable JSON example below as request.json and replace sample values before sending. Idempotency-Key identifies one logical operation.
curl --globoff --request DELETE "${NWMS_BASE_URL}/api/v2/send-documents/740/orders/49060" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}"Parameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
id |
path | yes | integer:int64 |
min: 1 | Shipment document ID. | 740 |
||
orderId |
path | yes | integer:int64 |
min: 1 | Order ID assigned to the shipment document. | 49060 |
||
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
No request body.
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | SendDocument |
Outbound shipment document with its complete operational composition. Collection relations are empty unless requested through include; the item endpoint always loads them. |
|
||
data.id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.status_id |
no | integer:int64 | null |
1 |
|||
data.status |
no | object | null |
|
|||
data.status.id |
yes | integer:int64 |
1 |
|||
data.status.name |
yes | string |
"Открыт" |
|||
data.status.color |
no | string | null |
"#2457c5" |
|||
data.status.background_color |
no | string | null |
"#eaf0ff" |
|||
data.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.warehouse |
no | object | null |
|
|||
data.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.delivery_service_ids |
yes | array<integer:int64> |
|
|||
data.delivery_service_ids[] |
no | integer:int64 |
min: 1 | 17 |
||
data.delivery_services |
yes | array<SendDocumentDeliveryService> |
|
|||
data.delivery_services[] |
no | SendDocumentDeliveryService |
|
|||
data.delivery_services[].id |
yes | integer:int64 |
min: 1 | 17 |
||
data.delivery_services[].name |
yes | string |
"Wildberries FBS" |
|||
data.delivery_services[].status_id |
yes | integer:int64 |
1 |
|||
data.delivery_services[].external_id |
no | string | null |
"wb-fbs" |
|||
data.delivery_services[].source_id |
no | string | null |
"wildberries" |
|||
data.delivery_services[].delivery_type |
no | string | null |
"pickup_point" |
|||
data.delivery_services[].is_courier |
yes | boolean |
false |
|||
data.document_date |
no | string:date | null |
"2026-08-11" |
|||
data.closed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.comment |
no | string | null |
"Wildberries shipment 740" |
|||
data.order_count |
yes | integer:int64 |
min: 0 | 1 |
||
data.processing |
yes | SendDocumentProcessing |
|
|||
data.processing.mode |
no | string | null |
"standard" |
|||
data.processing.pipeline |
yes | array<string> |
|
|||
data.processing.pipeline[] |
no | string |
"assignment" |
|||
data.processing.state |
no | string | null |
"open" |
|||
data.processing.batch_profile_id |
no | integer:int64 | null |
min: 1 | 31 |
||
data.processing.batch_profile |
no | object | null |
|
|||
data.processing.batch_profile.id |
yes | integer:int64 |
min: 1 | 31 |
||
data.processing.batch_profile.name |
yes | string |
"Standard packing" |
|||
data.processing.batch_profile.processing_mode |
no | string | null |
"standard" |
|||
data.processing.composition_frozen_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_started_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.processing.batch_completed_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.wildberries |
yes | SendDocumentWildberries |
Wildberries document-level state and safe supply/QR/sticker artifact metadata. Binary label content and encrypted provider payloads are not returned. | |
||
data.wildberries.fulfillment_state |
no | string | null |
"delivered" |
|||
data.wildberries.error_message |
no | string | null |
"" |
|||
data.wildberries.processed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.wildberries.supplies |
yes | array<object> |
|
|||
data.wildberries.supplies[] |
no | object |
|
|||
data.orders |
yes | array<SendDocumentOrderAssignment> |
|
|||
data.orders[] |
no | SendDocumentOrderAssignment |
|
|||
data.orders[].assignment_id |
yes | integer:int64 |
min: 1 | 8801 |
||
data.orders[].marked_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].created_at |
no | string:date-time | null |
"2026-08-11T09:00:00Z" |
|||
data.orders[].updated_at |
no | string:date-time | null |
"2026-08-11T09:30:00Z" |
|||
data.orders[].order |
yes | object | null |
Complete order snapshot embedded into a shipment document. Marketplace and batch objects preserve provider-specific fields. | |
||
data.orders[].order.id |
yes | integer:int64 |
min: 1 | 49060 |
||
data.orders[].order.external_id |
no | string | null |
"WB-900001234" |
|||
data.orders[].order.status_id |
no | integer:int64 | null |
20 |
|||
data.orders[].order.warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.order_date |
no | string:date | null |
"2026-08-10" |
|||
data.orders[].order.send_date |
no | string:date | null |
"2026-08-11" |
|||
data.orders[].order.amounts |
no | object | null |
|
|||
data.orders[].order.amounts.shipping_price |
no | number:float | null |
8.6 |
|||
data.orders[].order.amounts.shipping_cost |
no | number:float | null |
0 |
|||
data.orders[].order.amounts.sum |
no | number:float | null |
39.98 |
|||
data.orders[].order.amounts.cod_sum |
no | number:float | null |
48.58 |
|||
data.orders[].order.contact |
no | object | null |
|
|||
data.orders[].order.contact.first_name |
no | string | null |
"Ivan" |
|||
data.orders[].order.contact.middle_name |
no | string | null |
"Ivanovich" |
|||
data.orders[].order.contact.last_name |
no | string | null |
"Petrov" |
|||
data.orders[].order.contact.phone |
no | string | null |
"+359888123456" |
|||
data.orders[].order.contact.email |
no | string:email | null |
"customer@example.com" |
|||
data.orders[].order.contact.country_id |
no | integer:int64 | null |
min: 1 | 100 |
||
data.orders[].order.contact.city_id |
no | integer:int64 | null |
min: 1 | 200 |
||
data.orders[].order.contact.postcode |
no | string | null |
"1000" |
|||
data.orders[].order.contact.latitude |
no | number:float | null |
min: -90 max: 90 |
42.6977 |
||
data.orders[].order.contact.longitude |
no | number:float | null |
min: -180 max: 180 |
23.3219 |
||
data.orders[].order.contact.full_address |
no | string | null |
"1 Vitosha Boulevard, Sofia" |
|||
data.orders[].order.delivery |
no | object | null |
|
|||
data.orders[].order.delivery.service_id |
no | integer:int64 | null |
min: 1 | 1 |
||
data.orders[].order.delivery.delivery_type |
yes | enum | null |
enum: door, pickup_point | Normalized delivery channel derived from the configured delivery service. Null when the service type is unknown. | "door" |
|
data.orders[].order.delivery.is_courier |
yes | boolean |
True for door delivery; false for pickup-point delivery or an unknown service type. | true |
||
data.orders[].order.delivery.status |
no | string | null |
"created" |
|||
data.orders[].order.delivery.track_number |
no | string | null |
"CDEK-123456789" |
|||
data.orders[].order.delivery.pickup_point_id |
no | string | null |
"SOFIA-01" |
|||
data.orders[].order.delivery.source_id |
no | string | null |
"cdek-15" |
|||
data.orders[].order.delivery.tariff_code |
no | integer:int64 | null |
136 |
|||
data.orders[].order.delivery.additional_services |
no | object |
Values of additional CDEK services configured for the selected integration. Boolean true enables a code-only service; other values are sent as the CDEK parameter. |
{"TRYING_ON":true,"PART_DELIV":false,"PACKAGE_1":2} |
||
data.orders[].order.delivery.label |
no | string:uri | null |
"https://betawms.ffcdek.ru/labels/CDEK-123456789.pdf" |
|||
data.orders[].order.delivery.delivery_date |
no | string:date | null |
"2026-07-16" |
|||
data.orders[].order.delivery.delivery_time_start |
no | string:time | null |
"09:00:00Z" |
|||
data.orders[].order.delivery.delivery_time_end |
no | string:time | null |
"18:00:00Z" |
|||
data.orders[].order.comments |
no | object | null |
|
|||
data.orders[].order.comments.delivery_service_text |
no | string | null |
"Call before delivery" |
|||
data.orders[].order.comments.inner_text |
no | string | null |
"VIP customer" |
|||
data.orders[].order.offers |
yes | array<SendDocumentOrderLine> |
|
|||
data.orders[].order.offers[] |
no | SendDocumentOrderLine |
|
|||
data.orders[].order.offers[].id |
yes | integer:int64 |
min: 1 | 7001 |
||
data.orders[].order.offers[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.offers[].quantity |
no | number:float | null |
2 |
|||
data.orders[].order.offers[].estimated_price |
no | number:float | null |
19.5 |
|||
data.orders[].order.offers[].price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.offers[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.offers[].operation_user_id |
no | integer:int64 | null |
min: 1 | 9 |
||
data.orders[].order.offers[].product |
no | object | null |
|
|||
data.orders[].order.offers[].product.id |
yes | integer:int64 |
min: 1 | 1201 |
||
data.orders[].order.offers[].product.external_id |
no | string | null |
"EXT-10045" |
|||
data.orders[].order.offers[].product.domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.offers[].product.shop_id |
no | integer:int64 | null |
min: 1 | 12 |
||
data.orders[].order.offers[].product.status_id |
no | enum:int64 | null |
enum: 1, 2, 3 | 1 - active; 2 - disabled; 3 - deleted. |
1 |
|
data.orders[].order.offers[].product.type_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.offers[].product.name |
yes | string |
"Coffee 250g" |
|||
data.orders[].order.offers[].product.article |
no | string | null |
"ART-001245" |
|||
data.orders[].order.offers[].product.sku |
no | string | null |
"SKU-001245" |
|||
data.orders[].order.offers[].product.price |
no | number:float | null |
19.99 |
|||
data.orders[].order.offers[].product.estimated_price |
no | number:float | null |
21.5 |
|||
data.orders[].order.offers[].product.image_url |
no | string:uri | null |
"https://betawms.ffcdek.ru/offer-images/products/coffee-250g.jpg" |
|||
data.orders[].order.offers[].product.dimensions |
yes | Dimensions |
|
|||
data.orders[].order.offers[].product.weight |
yes | Weight |
|
|||
data.orders[].order.offers[].product.datamatrix_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.expiration_required |
yes | boolean |
true |
|||
data.orders[].order.offers[].product.comment |
no | string | null |
"Keep dry" |
|||
data.orders[].order.offers[].product.description |
no | string | null |
"Ground coffee package" |
|||
data.orders[].order.offers[].product.barcodes |
yes | array<ProductBarcode> |
|
|||
data.orders[].order.offers[].product.package |
yes | object |
|
|||
data.orders[].order.offers[].product.created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].product.updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].reservation |
no | object | null |
Reservation totals for one order line. | |
||
data.orders[].order.offers[].reservation.required_qty |
yes | number:float |
3 |
|||
data.orders[].order.offers[].reservation.reserved_qty |
yes | number:float |
1 |
|||
data.orders[].order.offers[].reservation.unreserved_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.missing_qty |
yes | number:float |
2 |
|||
data.orders[].order.offers[].reservation.status |
yes | enum |
enum: not_required, missing, partial, reserved | Reservation state calculated from the quantity required by the order and the quantity actually reserved. | "partial" |
|
data.orders[].order.offers[].reservation_items |
no | array<OrderReservationItem> |
|
|||
data.orders[].order.offers[].reservation_items[] |
no | OrderReservationItem |
Physical product or expanded component used to explain a reservation shortage. | |
||
data.orders[].order.offers[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.offers[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes |
yes | array<DataMatrix> |
|
|||
data.orders[].order.datamatrix_codes[] |
no | DataMatrix |
Marked goods DataMatrix code. | |
||
data.orders[].order.datamatrix_codes[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data.orders[].order.datamatrix_codes[].created_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.datamatrix_codes[].domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data.orders[].order.datamatrix_codes[].warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data.orders[].order.datamatrix_codes[].status_id |
no | enum:int64 | null |
enum: 0, 1, 2 | 0 - Imported and available for future warehouse operations. 1 - Reserved or attached by an operational document. 2 - Used by an outbound or completed operation. |
0 |
|
data.orders[].order.datamatrix_codes[].acceptance_id |
no | integer:int64 | null |
min: 1 | 5101 |
||
data.orders[].order.datamatrix_codes[].order_id |
no | integer:int64 | null |
min: 1 | 8101 |
||
data.orders[].order.datamatrix_codes[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data.orders[].order.datamatrix_codes[].barcode |
no | string | null |
maxLength: 14 | "04601234567890" |
||
data.orders[].order.datamatrix_codes[].short_code |
no | string | null |
maxLength: 14 | "ABC123" |
||
data.orders[].order.datamatrix_codes[].crypto_tail |
no | string | null |
"CRYPTO" |
|||
data.orders[].order.datamatrix_codes[].datamatrix |
no | string | null |
maxLength: 125 | "010460123456789021ABC123" |
||
data.orders[].order.datamatrix_codes[].production_date |
no | string:date | null |
"2026-01-15" |
|||
data.orders[].order.datamatrix_codes[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data.orders[].order.datamatrix_codes[].batch |
no | string | null |
"LOT-2026" |
|||
data.orders[].order.datamatrix_codes[].used_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data.orders[].order.warehouse |
no | object | null |
|
|||
data.orders[].order.warehouse.id |
yes | integer:int64 |
min: 1 | 42 |
||
data.orders[].order.warehouse.name |
yes | string |
"Warehouse Sofia" |
|||
data.orders[].order.warehouse.type_id |
no | integer:int64 | null |
2 |
|||
data.orders[].order.warehouse.parent_id |
no | integer:int64 | null |
min: 1 | 41 |
||
data.orders[].order.shop |
no | object | null |
|
|||
data.orders[].order.shop.id |
yes | integer:int64 |
min: 1 | 12 |
||
data.orders[].order.shop.name |
yes | string |
"Demo Online Store" |
|||
data.orders[].order.shop.status_id |
no | integer:int64 | null |
1 |
|||
data.orders[].order.company |
no | object | null |
|
|||
data.orders[].order.company.id |
yes | integer:int64 |
min: 1 | 7 |
||
data.orders[].order.company.name |
yes | string |
"Demo Company" |
|||
data.orders[].order.company.legal_name |
no | string | null |
"Demo Company Ltd." |
|||
data.orders[].order.place |
no | object | null |
|
|||
data.orders[].order.accumulation_place |
no | object | null |
|
|||
data.orders[].order.measurements |
no | object | null |
|
|||
data.orders[].order.settings |
no | object | null |
|
|||
data.orders[].order.consumables |
yes | array<object> |
|
|||
data.orders[].order.consumables[] |
no | object |
|
|||
data.orders[].order.wildberries |
no | object | null |
|
|||
data.orders[].order.wildberries.completed_at |
no | string:date-time | null |
"2026-08-11T10:15:00Z" |
|||
data.orders[].order.batch_matches |
yes | array<object> |
|
|||
data.orders[].order.batch_matches[] |
no | object |
|
|||
meta |
yes | ResponseMeta |
|
|||
meta.api_version |
yes | enum |
enum: v2 | "v2" |
||
meta.deleted |
no | boolean |
true |
|||
meta.id |
no | integer:int64 | null |
min: 1 | 1001 |
||
meta.command_replayed |
no | boolean |
True when an idempotent cross-dock command returned the original successful result. | false |
||
meta.crossdock_configuration |
no | object | null |
|
|||
meta.crossdock_configuration.physical_warehouse_id |
yes | integer:int64 |
min: 1 | 42 |
||
meta.crossdock_configuration.enabled |
yes | boolean |
true |
|||
meta.crossdock_configuration.process_version |
yes | string |
"direct_order_v1" |
Response examples
success
{
"data": {
"id": 740,
"domain_id": 3,
"status_id": 1,
"status": {
"id": 1,
"name": "Открыт",
"color": "#2457c5",
"background_color": "#eaf0ff"
},
"warehouse_id": 42,
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"delivery_service_ids": [
17
],
"delivery_services": [
{
"id": 17,
"name": "Wildberries FBS",
"status_id": 1,
"external_id": "wb-fbs",
"source_id": "wildberries",
"delivery_type": "pickup_point",
"is_courier": false
}
],
"document_date": "2026-08-11",
"closed_at": "2026-08-11T10:15:00Z",
"comment": "Wildberries shipment 740",
"order_count": 1,
"processing": {
"mode": "standard",
"pipeline": [
"assignment",
"marking",
"transfer"
],
"state": "open",
"batch_profile_id": null,
"batch_profile": null,
"composition_frozen_at": null,
"batch_started_at": null,
"batch_completed_at": null
},
"wildberries": {
"fulfillment_state": "delivered",
"error_message": null,
"processed_at": "2026-08-11T10:15:00Z",
"supplies": [
{
"id": 3201,
"account_id": 71,
"external_id": "WB-GI-740",
"name": "Поставка 740",
"state": "delivered",
"state_name": "Доставлена",
"destination_type": "office",
"destination_office_id": 507,
"is_automatic": false,
"is_b2b": false,
"cargo_type": "box",
"cross_border_type": null,
"order_count": 1,
"current_qr": {
"id": 3301,
"kind": "supply_qr",
"format": "svg",
"width": 580,
"height": 400,
"barcode": "WB-GI-740",
"part_a": null,
"part_b": null,
"content_hash": "sha256:qr-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:00:00Z",
"last_printed_at": null,
"print_count": 0
},
"boxes": [
],
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-11T09:00:00Z",
"remote_closed_at": null,
"last_synced_at": "2026-08-11T10:15:00Z",
"delivered_at": "2026-08-11T10:15:00Z"
}
]
},
"orders": [
{
"assignment_id": 8801,
"marked_at": "2026-08-11T09:30:00Z",
"created_at": "2026-08-11T09:00:00Z",
"updated_at": "2026-08-11T09:30:00Z",
"order": {
"id": 49060,
"external_id": "WB-900001234",
"status_id": 20,
"warehouse_id": 42,
"shop_id": 12,
"order_date": "2026-08-10",
"send_date": "2026-08-11",
"amounts": {
"shipping_price": 0,
"shipping_cost": 0,
"sum": 39.98,
"cod_sum": 0
},
"contact": {
"first_name": "Иван",
"middle_name": null,
"last_name": "Петров",
"phone": "+359888123456",
"email": "customer@example.com",
"country_id": 100,
"city_id": 200,
"postcode": "1000",
"latitude": 42.6977,
"longitude": 23.3219,
"full_address": "Sofia"
},
"delivery": {
"service_id": 17,
"delivery_type": "pickup_point",
"is_courier": false,
"status": "created",
"track_number": "WB-900001234",
"pickup_point_id": "WB-SOF-01",
"source_id": "wildberries",
"tariff_code": null,
"additional_services": {
},
"label": null,
"delivery_date": "2026-08-12",
"delivery_time_start": null,
"delivery_time_end": null
},
"comments": {
"delivery_service_text": null,
"inner_text": "Клиентский пример для документа 740"
},
"offers": [
{
"id": 7001,
"product_id": 1201,
"quantity": 2,
"estimated_price": 19.5,
"price": 19.99,
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"operation_user_id": 9,
"product": {
"id": 1201,
"external_id": "EXT-10045",
"shop_id": 12,
"domain_id": 3,
"status_id": 1,
"type_id": 1,
"name": "Coffee 250g",
"article": "ART-001245",
"sku": "SKU-001245",
"price": 19.99,
"estimated_price": 21.5,
"image_url": null,
"dimensions": {
"x": 105,
"y": 200,
"z": 32,
"unit": "mm"
},
"weight": {
"value": 250,
"unit": "g"
},
"datamatrix_required": true,
"expiration_required": true,
"comment": null,
"description": "Ground coffee package",
"barcodes": [
{
"barcode": "4601234567890",
"is_main": true
}
],
"package": {
"kind": "unit",
"parent_product_id": null,
"base_product_id": null,
"multiplicity": null,
"base_multiplicity": null,
"depth": 0
},
"created_at": "2026-08-01T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
},
"reservation": {
"required_qty": 2,
"reserved_qty": 2,
"unreserved_qty": 0,
"missing_qty": 0,
"status": "reserved"
},
"reservation_items": [
],
"created_at": "2026-08-10T09:00:00Z",
"updated_at": "2026-08-10T09:00:00Z"
}
],
"datamatrix_codes": [
{
"id": 6101,
"domain_id": 3,
"warehouse_id": 42,
"status_id": 1,
"acceptance_id": 5101,
"order_id": 49060,
"product_id": 1201,
"barcode": "04601234567890",
"short_code": "ABC123",
"crypto_tail": "CRYPTO",
"datamatrix": "010460123456789021ABC123",
"production_date": "2026-01-15",
"expiration_date": "2027-01-15",
"batch": "LOT-2026",
"created_at": "2026-08-11T09:15:00Z",
"updated_at": "2026-08-11T09:15:00Z",
"used_at": null
}
],
"warehouse": {
"id": 42,
"name": "Warehouse Sofia",
"type_id": 2,
"parent_id": 41
},
"shop": {
"id": 12,
"name": "Demo Online Store",
"status_id": 1
},
"company": {
"id": 7,
"name": "Demo Company",
"legal_name": "Demo Company Ltd."
},
"place": null,
"accumulation_place": null,
"measurements": {
"places": 1,
"dimensions": {
"x": 220,
"y": 160,
"z": 120,
"unit": "mm"
},
"weight": {
"value": 600,
"unit": "g"
}
},
"settings": {
"blank_url": null
},
"consumables": [
],
"wildberries": {
"id": 2101,
"account_id": 71,
"wb_order_id": "900001234",
"order_uid": "WB-UID-49060",
"rid": "WB-RID-49060",
"product_id": 1201,
"state": "confirmed",
"state_name": "Подтверждён",
"fulfillment_state": "delivered",
"fulfillment_state_name": "Доставлен",
"supplier_status": "confirm",
"wb_status": "sold",
"supply_id": 3201,
"external_supply_id": "WB-GI-740",
"supply_state": "delivered",
"delivery_type": "fbs",
"cross_border_type": null,
"is_b2b": false,
"wb_warehouse_id": 507,
"office_id": 507,
"nm_id": 12345678,
"chrt_id": 87654321,
"article": "ART-001245",
"skus": [
"4601234567890"
],
"required_meta": [
"sgtin"
],
"optional_meta": [
],
"meta_state": "accepted",
"sticker_state": "ready",
"prices": {
"price_minor": 1999,
"final_price_minor": 1999,
"sale_price_minor": 1999,
"currency": "RUB"
},
"markings": [
{
"id": 1,
"datamatrix_id": 6101,
"type": "sgtin",
"masked_value": "010460…ABC123",
"value_hash": "sha256:example",
"state": "accepted",
"remote_decision": "accepted",
"error_code": null,
"error_message": null,
"submitted_at": "2026-08-11T09:30:00Z",
"verified_at": "2026-08-11T09:31:00Z",
"ambiguous_at": null
}
],
"current_sticker": {
"id": 3401,
"kind": "order_sticker",
"format": "png",
"width": 580,
"height": 400,
"barcode": "WB-900001234",
"part_a": "123456",
"part_b": "7890",
"content_hash": "sha256:sticker-example",
"content_available": true,
"is_current": true,
"fetched_at": "2026-08-11T09:25:00Z",
"last_printed_at": null,
"print_count": 0
},
"last_error": {
"code": null,
"message": null
},
"remote_created_at": "2026-08-10T09:00:00Z",
"seller_date": "2026-08-10",
"delivery_date": "2026-08-12",
"confirmed_at": "2026-08-11T09:20:00Z",
"completed_at": "2026-08-11T10:15:00Z",
"imported_at": "2026-08-10T09:05:00Z",
"mapped_at": "2026-08-10T09:06:00Z",
"reserved_at": "2026-08-11T09:10:00Z",
"remote_status_checked_at": "2026-08-11T10:15:00Z"
},
"batch_matches": [
]
}
}
],
"created_at": "2026-08-11T08:45:00Z",
"updated_at": "2026-08-11T10:15:00Z"
},
"meta": {
"api_version": "v2"
}
}
400 Bad request
BadRequest
Bad request.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
BAD_REQUEST
{
"message": "Bad request.",
"error": "BAD_REQUEST"
}
401 Authentication required
Unauthorized
Authentication is required.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
AUTH_REQUIRED
{
"message": "Authentication is required.",
"error": "AUTH_REQUIRED"
}
403 Forbidden
Forbidden
The authenticated account is not allowed to perform this action.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
FORBIDDEN
{
"message": "The authenticated account is not allowed to perform this action.",
"error": "FORBIDDEN"
}
404 Not found
NotFound
The requested resource was not found or is outside the authenticated account scope.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
NOT_FOUND
{
"message": "The requested resource was not found or is outside the authenticated account scope.",
"error": "NOT_FOUND"
}
409 Conflict
SendDocumentConflict
The shipment document lifecycle or composition does not allow the requested operation.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
documentStateConflict
{
"message": "Состав документа уже заморожен.",
"errors": {
"send_document": [
"Состав документа уже заморожен."
]
}
}
422 Validation error
ValidationError
Validation failed.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
validationError
{
"message": "The given data was invalid.",
"error": "VALIDATION_ERROR",
"errors": {
"warehouse_id": [
"The selected warehouse is invalid."
]
}
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}