Send Documents

Every operation below is generated from the OpenAPI v2 specification and includes parameters, request fields, response fields, errors, and examples.

Send Documents

GET /api/v2/send-documents

List send documents

operationIdlistSendDocuments
TagSend Documents
SecuritybearerAuth

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"
}
POST /api/v2/send-documents

Create send document

operationIdcreateSendDocuments
TagSend Documents
SecuritybearerAuth

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.json

Parameters

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 /api/v2/send-documents/{id}

Get send document

operationIdgetSendDocuments
TagSend Documents
SecuritybearerAuth

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"
}
PUT /api/v2/send-documents/{id}

Update send document

operationIdreplaceSendDocuments
TagSend Documents
SecuritybearerAuth

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.json

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

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"
}
PATCH /api/v2/send-documents/{id}

Update send document

operationIdpatchSendDocuments
TagSend Documents
SecuritybearerAuth

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.json

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

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"
}
DELETE /api/v2/send-documents/{id}

Remove send document

operationIddeleteSendDocuments
TagSend Documents
SecuritybearerAuth

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"
}
GET /api/v2/send-documents/{id}/events

List send document events

operationIdlistSendDocumentsEvents
TagSend Documents
SecuritybearerAuth

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"
}
POST /api/v2/send-documents/{id}/orders

Attach orders to send document

operationIdcreateSendDocumentsOrders
TagSend Documents
SecuritybearerAuth

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.json

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

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"
}
DELETE /api/v2/send-documents/{id}/orders/{orderId}

Detach order from send document

operationIddeleteSendDocumentsOrders
TagSend Documents
SecuritybearerAuth

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"
}