DataMatrix
Every operation below is generated from the OpenAPI v2 specification and includes parameters, request fields, response fields, errors, and examples.
DataMatrix
List datamatrix
| operationId | listDataMatrix |
|---|---|
| Tag | DataMatrix |
| Security | bearerAuth |
Returns codes visible to the authenticated account. accepted_at and shipped_at are read-only ISO 8601 timestamps with an explicit installation timezone offset, or null. Each is the latest recorded acceptance/shipment event for this code in its CURRENT domain and warehouse; document dates and marking/extinguishing dates are never substituted. Historical events not recorded by the system remain null. Import and manual status changes do not create physical acceptance/shipment events. These fields are available from GET /api/v2/datamatrix; do not send them to create/status commands.
Use accepted_at_from / accepted_at_to or shipped_at_from / shipped_at_to at the query root or inside filter[...]. A YYYY-MM-DD boundary is interpreted in the installation timezone; _to includes the entire day. An ISO timestamp must include seconds and Z or an explicit offset (e.g. 2026-10-22T10:00:00+03:00); fractional seconds are not accepted. Exact time boundaries are inclusive and compared in UTC. Encode + as %2B in URLs, or use curl --data-urlencode. Invalid dates, arrays and reversed ranges return HTTP 422. Either bound may be omitted; different field ranges are combined with AND. Null dates do not match a nonempty range.
Sort by accepted_at, shipped_at (prefix - for descending); comma-separated sort keys are supported. Equal values use the code ID ascending as a final tie-breaker. Nulls sort first ascending and last descending. Without the lifecycle event table these fields are null and event date filters return an empty list. This table is required for operational date tracking. Date ranges select the latest per-code event, not an event history or a reliable incremental change cursor.
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/datamatrix" \
--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: 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: id, status_id, warehouse_id, created_at, updated_at, used_at, accepted_at, shipped_at. Prefix - for descending. Default: -id. Equal values use code ID ascending as a final tie-breaker. Nulls first ascending, last descending. | "-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 |
status_id |
query | no | DataMatrixStatusId |
form | true | 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. |
|
|
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 |
acceptance_id |
query | no | integer:int64 |
form | true | min: 1 | Filter by acceptance_id using exact matching. The same filter may also be sent as filter[acceptance_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 |
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 |
barcode |
query | no | string |
form | true | Filter by barcode using partial text matching. The same filter may also be sent as filter[barcode] where supported by the Laravel query adapter. |
"4601234567890" |
|
datamatrix |
query | no | string |
form | true | Filter by datamatrix using partial text matching. The same filter may also be sent as filter[datamatrix] where supported by the Laravel query adapter. |
"010460123456789021ABC123" |
|
short_code |
query | no | string |
form | true | Filter by short_code using partial text matching. The same filter may also be sent as filter[short_code] where supported by the Laravel query adapter. |
"ABC123" |
|
batch |
query | no | string |
form | true | Filter by batch using partial text matching. The same filter may also be sent as filter[batch] where supported by the Laravel query adapter. |
"LOT-2026" |
|
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" |
|
used_at_from |
query | no | string:date |
form | true | Lower inclusive date boundary for used_at. The same filter may also be sent as filter[used_at_from] where supported by the Laravel query adapter. |
"2026-07-14" |
|
used_at_to |
query | no | string:date |
form | true | Upper inclusive date boundary for used_at. The same filter may also be sent as filter[used_at_to] where supported by the Laravel query adapter. |
"2026-07-14" |
|
production_date_from |
query | no | string:date |
form | true | Lower inclusive date boundary for production_date. The same filter may also be sent as filter[production_date_from] where supported by the Laravel query adapter. |
"2026-07-14" |
|
production_date_to |
query | no | string:date |
form | true | Upper inclusive date boundary for production_date. The same filter may also be sent as filter[production_date_to] where supported by the Laravel query adapter. |
"2026-07-14" |
|
expiration_date_from |
query | no | string:date |
form | true | Lower inclusive date boundary for expiration_date. The same filter may also be sent as filter[expiration_date_from] where supported by the Laravel query adapter. |
"2026-07-14" |
|
expiration_date_to |
query | no | string:date |
form | true | Upper inclusive date boundary for expiration_date. The same filter may also be sent as filter[expiration_date_to] where supported by the Laravel query adapter. |
"2026-07-14" |
|
accepted_at_from |
query | no | string |
Inclusive lower bound for accepted_at. YYYY-MM-DD (installation timezone, full end day) or ISO 8601 with seconds and Z/offset (inclusive exact time). No fractional seconds. Also accepts filter[accepted_at_from]. Invalid/reversed bounds: 422. | "2026-10-22" |
|||
accepted_at_to |
query | no | string |
Upper bound for accepted_at. YYYY-MM-DD (installation timezone, full end day) or ISO 8601 with seconds and Z/offset (inclusive exact time). No fractional seconds. Also accepts filter[accepted_at_to]. Invalid/reversed bounds: 422. | "2026-10-22" |
|||
shipped_at_from |
query | no | string |
Inclusive lower bound for shipped_at. YYYY-MM-DD (installation timezone, full end day) or ISO 8601 with seconds and Z/offset (inclusive exact time). No fractional seconds. Also accepts filter[shipped_at_from]. Invalid/reversed bounds: 422. | "2026-10-22" |
|||
shipped_at_to |
query | no | string |
Upper bound for shipped_at. YYYY-MM-DD (installation timezone, full end day) or ISO 8601 with seconds and Z/offset (inclusive exact time). No fractional seconds. Also accepts filter[shipped_at_to]. Invalid/reversed bounds: 422. | "2026-10-22" |
Request body
No request body.
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | array<DataMatrix> |
|
|||
data[] |
no | DataMatrix |
Marked goods DataMatrix code. | |
||
data[].id |
yes | integer:int64 |
readOnly | min: 1 | 1001 |
|
data[].created_at |
no | string:date | null |
readOnly | Stored code upload date; date precision. | "2026-10-19" |
|
data[].updated_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].domain_id |
no | integer:int64 | null |
min: 1 | 3 |
||
data[].warehouse_id |
no | integer:int64 | null |
min: 1 | 42 |
||
data[].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[].acceptance_id |
no | integer:int64 | null |
min: 1 | 5101 |
||
data[].order_id |
no | integer:int64 | null |
min: 1 | 8101 |
||
data[].product_id |
no | integer:int64 | null |
min: 1 | 1201 |
||
data[].barcode |
no | string | null |
maxLength: 14 | "04601234567890" |
||
data[].short_code |
no | string | null |
maxLength: 14 | "ABC123" |
||
data[].crypto_tail |
no | string | null |
"CRYPTO" |
|||
data[].datamatrix |
no | string | null |
maxLength: 125 | "010460123456789021ABC123" |
||
data[].production_date |
no | string:date | null |
"2026-01-15" |
|||
data[].expiration_date |
no | string:date | null |
"2027-01-15" |
|||
data[].batch |
no | string | null |
"LOT-2026" |
|||
data[].used_at |
no | string:date-time | null |
"2026-07-14T10:30:00Z" |
|||
data[].accepted_at |
no | string:date-time | null |
"2026-10-22T10:00:00+03:00" |
|||
data[].shipped_at |
no | string:date-time | null |
"2026-10-22T10:00:00+03:00" |
|||
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": 6101,
"domain_id": 3,
"warehouse_id": 42,
"status_id": 0,
"acceptance_id": 5101,
"order_id": null,
"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-10-19",
"used_at": null,
"accepted_at": "2026-10-22T10:00:00+03:00",
"shipped_at": null
}
],
"links": {
"first": "https://betawms.ffcdek.ru/api/v2/datamatrix?page=1",
"last": "https://betawms.ffcdek.ru/api/v2/datamatrix?page=2",
"prev": null,
"next": "https://betawms.ffcdek.ru/api/v2/datamatrix?page=2"
},
"meta": {
"api_version": "v2",
"current_page": 1,
"from": 1,
"last_page": 2,
"path": "https://betawms.ffcdek.ru/api/v2/datamatrix",
"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"
}
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"
}
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."
]
}
}
Create datamatrix
| operationId | createDataMatrix |
|---|---|
| Tag | DataMatrix |
| Security | bearerAuth |
Imports one or more DataMatrix codes. Batch rate limits and idempotency protect repeated imports.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
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/datamatrix" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
--header "Content-Type: application/json" \
--data-binary @request.jsonParameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
CreateDataMatrixRequest required
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | CreateDataMatrixItemPayload |
|
|||
data |
yes | array<CreateDataMatrixItemPayload> |
minItems: 1 maxItems: 5000 |
|
||
data |
yes | object |
|
|||
data.items |
yes | array<CreateDataMatrixItemPayload> |
minItems: 1 maxItems: 5000 |
|
Request examples
default
{
"data": {
"items": [
{
"warehouse_id": 42,
"product_id": 1201,
"barcode": "04601234567890",
"datamatrix": "010460123456789021ABC123"
},
{
"warehouse_id": 42,
"product_id": 1201,
"barcode": "04601234567891",
"datamatrix": "010460123456789021ABC124"
}
]
}
}
Responses
201 Created.
Created.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | DataMatrixImportResult |
|
|||
data.created |
yes | integer:int64 |
min: 0 | 2 |
||
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": {
"created": 2
},
"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
Conflict
The request conflicts with the current resource state or idempotency key state.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
idempotencyConflict
{
"message": "The idempotency key is already used with a different payload.",
"error": "IDEMPOTENCY_KEY_CONFLICT"
}
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 datamatrix
| operationId | deleteDataMatrix |
|---|---|
| Tag | DataMatrix |
| Security | bearerAuth |
Deletes the resource when the authenticated account has permission and the current lifecycle state allows deletion. If deletion is blocked by related records or document state, the API returns a validation error.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
Listing without order_id is supported. order_id accepts one value, comma-separated values or repeated array parameters; order_ids is unsupported. Statuses: 0 unused, 1 in warehouse (possibly assigned to an order), 2 extinguished. created_at and used_at have date precision; there is no reliable updated_at/change cursor for reassignment or cancellation.
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/datamatrix" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
--header "Content-Type: application/json" \
--data-binary @request.jsonParameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
DeleteDataMatrixRequest required
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | DataMatrixIdsPayload |
|
|||
data.ids |
yes | array<integer:int64> |
minItems: 1 maxItems: 10000 |
|
||
data.ids[] |
no | integer:int64 |
min: 1 | 6101 |
Request examples
default
{
"data": {
"ids": [
6101,
6102
]
}
}
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | DataMatrixDeleteResult |
|
|||
data.deleted |
yes | integer:int64 |
min: 0 | 1 |
||
data.skipped |
yes | integer:int64 |
min: 0 | 1 |
||
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": {
"deleted": 1,
"skipped": 1
},
"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
Conflict
The request conflicts with the current resource state or idempotency key state.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
idempotencyConflict
{
"message": "The idempotency key is already used with a different payload.",
"error": "IDEMPOTENCY_KEY_CONFLICT"
}
422 Validation error
ValidationError
Validation failed.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
validationError
{
"message": "The given data was invalid.",
"error": "VALIDATION_ERROR",
"errors": {
"warehouse_id": [
"The selected warehouse is invalid."
]
}
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
Update DataMatrix status
| operationId | updateDataMatrixStatus |
|---|---|
| Tag | DataMatrix |
| Security | bearerAuth |
Changes the status of multiple DataMatrix codes after verifying all IDs belong to the caller visible domain.
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/datamatrix/status" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
--header "Content-Type: application/json" \
--data-binary @request.jsonParameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
ReplaceDataMatrixStatusRequest required
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | object |
|
|||
data.ids |
yes | array<integer:int64> |
minItems: 1 maxItems: 10000 |
|
||
data.ids[] |
no | integer:int64 |
min: 1 | 6101 |
||
data.status_id |
yes | DataMatrixStatusId |
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 |
Request examples
default
{
"data": {
"ids": [
6101,
6102
],
"status_id": 1
}
}
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | DataMatrixStatusUpdateResult |
|
|||
data.updated |
yes | integer:int64 |
min: 0 | 2 |
||
data.dmt_status |
yes | DataMatrixStatusId |
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 |
|
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": {
"updated": 2,
"dmt_status": 1
},
"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
Conflict
The request conflicts with the current resource state or idempotency key state.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
idempotencyConflict
{
"message": "The idempotency key is already used with a different payload.",
"error": "IDEMPOTENCY_KEY_CONFLICT"
}
422 Validation error
ValidationError
Validation failed.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The given data was invalid." |
|||
error |
no | string |
"VALIDATION_ERROR" |
|||
errors |
yes | object |
{"warehouse_id":["The selected warehouse is invalid."]} |
Response examples
validationError
{
"message": "The given data was invalid.",
"error": "VALIDATION_ERROR",
"errors": {
"warehouse_id": [
"The selected warehouse is invalid."
]
}
}
429 Rate limit exceeded
TooManyRequests
Rate limit exceeded.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"Too Many Attempts." |
|||
error |
yes | string |
"RATE_LIMITED" |
500 Internal server error
InternalServerError
An unexpected server error occurred.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
INTERNAL_SERVER_ERROR
{
"message": "An unexpected server error occurred.",
"error": "INTERNAL_SERVER_ERROR"
}
Update DataMatrix status
| operationId | updateDataMatrixStatusByPath |
|---|---|
| Tag | DataMatrix |
| Security | bearerAuth |
Update DataMatrix status. 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 PATCH "${NWMS_BASE_URL}/api/v2/datamatrix/status" \
--header "Accept: application/json" \
--header "Authorization: Bearer ${NWMS_TOKEN}" \
--header "Idempotency-Key: ${NWMS_REQUEST_KEY}" \
--header "Content-Type: application/json" \
--data-binary @request.jsonParameters
| Name | In | Required | Type | Style | Explode | Constraints | Description | Example |
|---|---|---|---|---|---|---|---|---|
Idempotency-Key |
header | no | string |
maxLength: 191 | Optional idempotency key for API v2 write requests. Successful 2xx/3xx responses are replayed for the same key and identical payload for one day. The same key with a different payload returns 409. |
"ord-create-20260714-001" |
Request body
PatchDataMatrixStatusRequest required
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | object |
|
|||
data.ids |
yes | array<integer:int64> |
minItems: 1 maxItems: 10000 |
|
||
data.ids[] |
no | integer:int64 |
min: 1 | 6101 |
||
data.status_id |
yes | DataMatrixStatusId |
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 |
Request examples
default
{
"data": {
"ids": [
6101,
6102
],
"status_id": 1
}
}
Responses
200 Successful response.
Successful response.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
data |
yes | DataMatrixStatusUpdateResult |
|
|||
data.updated |
yes | integer:int64 |
min: 0 | 2 |
||
data.dmt_status |
yes | DataMatrixStatusId |
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 |
|
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": {
"updated": 2,
"dmt_status": 1
},
"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
Conflict
The request conflicts with the current resource state or idempotency key state.
| Field | Required | Type | Flags | Constraints | Description | Example |
|---|---|---|---|---|---|---|
message |
yes | string |
"The request could not be processed." |
|||
error |
yes | string |
"BAD_REQUEST" |
Response examples
idempotencyConflict
{
"message": "The idempotency key is already used with a different payload.",
"error": "IDEMPOTENCY_KEY_CONFLICT"
}
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"
}