For the complete documentation index, see llms.txt. This page is also available as Markdown.

Fullfillment

Create Goods

post
/fulfillment/{countrycode}/v1/goods/multiple

This endpoint is used to create one or more goods records that can be added to an Inbound Plan or an Order.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Bodyobject[]

Array of goods objects.

skustring · min: 2 · max: 72Required

Unique product SKU in the client's information system.

Case-insensitive.

goodsUnitNamestring · min: 2 · max: 255Required

Short product name.

goodsUnitFullNamestring · min: 2 · max: 255 · nullableOptional

Full product name.

pricenumber · float · min: 0.01 · max: 100000000Required

Price per product unit.

inventExpireDaysinteger · min: 1 · max: 15000 · nullableOptional

Shelf life in days. Enables expiration date control.

Responses
207

Multi-Status. One or more goods were processed.

application/json
errorsobjectRequired

Validation errors for goods that could not be created.

post/fulfillment/{countrycode}/v1/goods/multiple
POST /v.1.0/fulfillment/{countrycode}/v1/goods/multiple HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 266

[
  {
    "sku": "SKU-COFFEE-001",
    "goodsUnitName": "Coffee 250g",
    "goodsUnitFullName": "Coffee Beans Arabica Premium 250g",
    "price": 150.75,
    "inventExpireDays": 365
  },
  {
    "sku": "SKU-COFFEE-002",
    "goodsUnitName": "Coffee 500g",
    "goodsUnitFullName": null,
    "price": 750,
    "inventExpireDays": null
  }
]
207

Multi-Status. One or more goods were processed.

{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "sku": "SKU-COFFEE-001",
      "goodsUnitName": "Coffee 250g",
      "goodsUnitFullName": "Coffee Beans Arabica Premium 250g",
      "price": 150.75,
      "inventExpireDays": 365,
      "createdAt": "2026-05-09T14:32:00+00:00",
      "updatedAt": "2026-05-09T14:32:00+00:00"
    }
  ],
  "errors": {}
}

Update goods' details

patch
/fulfillment/{countrycode}/v1/goods/{id}

This endpoint allows modifying details of an existing goods. Only the fields that need to be changed should be included in the request body (partial update), for example updating the name, price, or shelf life of a product.

🔸All fields are optional, but at least one field must be provided to perform an update. On success, the API returns the updated goods fields.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the goods to be updated.

Example: 550e8400-e29b-41d4-a716-446655440000
Body

Request body for updating goods. Only the fields that need to be changed should be provided. At least one field must be present.

goodsUnitNamestring · min: 2 · max: 255Optional

Short product name.

goodsUnitFullNamestring · min: 2 · max: 255Optional

Full product name.

pricenumber · float · min: 0.01 · max: 100000000Optional

Price per product unit.

inventExpireDaysinteger · min: 1 · max: 15000 · nullableOptional

Shelf life in days. Pass null to disable expiration date control.

Responses
200

Request successful. Goods details were updated.

application/json
patch/fulfillment/{countrycode}/v1/goods/{id}
PATCH /v.1.0/fulfillment/{countrycode}/v1/goods/{id} HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 51

{
  "goodsUnitName": "Coffee 250g Premium",
  "price": 180
}
200

Request successful. Goods details were updated.

{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "sku": "SKU-COFFEE-001",
    "goodsUnitName": "Coffee 250g Premium",
    "goodsUnitFullName": "Coffee Beans Arabica Premium 250g",
    "price": 180,
    "inventExpireDays": 365,
    "createdAt": "2026-04-01T10:30:00+00:00",
    "updatedAt": "2026-07-31T12:00:00+00:00"
  }
}

Create Barcode

post
/fulfillment/{countrycode}/v1/goods/{objectId}/barcodes/multiple

This endpoint is used to create one or more barcodes associated with a specific good. The barcode data is provided as an array, allowing multiple barcodes to be created in a single request.

On success, the API returns all created barcodes with their unique identifiers and the parameters specified in the request.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
objectIdstring · uuidRequired

Unique identifier of the goods for which barcodes are created.

Example: 550e8400-e29b-41d4-a716-446655440000
Bodyobject[]
barCodestring · min: 2 · max: 72Required

Barcode value.

weightnumber · float · min: 0.01 · max: 1000000Optional

Weight in kilograms.

lengthnumber · float · min: 0.01 · max: 1000000Optional

Length in centimeters.

heightnumber · float · min: 0.01 · max: 1000000Optional

Height in centimeters.

widthnumber · float · min: 0.01 · max: 1000000Optional

Width in centimeters.

Responses
207

Multi-Status. Barcodes were processed.

application/json
errorsobjectRequired

Validation errors for barcodes that could not be created.

post/fulfillment/{countrycode}/v1/goods/{objectId}/barcodes/multiple
POST /v.1.0/fulfillment/{countrycode}/v1/goods/{objectId}/barcodes/multiple HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 78

[
  {
    "barCode": "1234567890123",
    "weight": 10.5,
    "length": 40,
    "height": 30,
    "width": 20
  }
]
207

Multi-Status. Barcodes were processed.

{
  "data": [
    {
      "id": "59571a13-8051-4d21-b3ba-71663074548c",
      "barcode": "1234567890123",
      "measureUnitName": "шт",
      "includes": 1,
      "weight": 10.5,
      "length": 40,
      "height": 30,
      "width": 20,
      "createdAt": "2026-08-01T10:00:00+00:00",
      "updatedAt": "2026-08-01T10:00:00+00:00"
    }
  ],
  "errors": {}
}

Update Barcode Details

patch
/fulfillment/{countrycode}/v1/barcodes/{id}

This endpoint is used to update the parameters of an existing barcode in the system by its unique identifier.

Only the fields that need to be updated should be included in the request body.

🔸All fields are optional, but at least one field must be provided to perform the update. On success, the API returns the updated barcode object.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the barcode to be updated.

Example: cadeb5e7-a6b2-45d0-af36-60eae53454df
Body

Request body for updating barcode details. Only the fields that need to be changed should be provided. At least one field must be present.

weightnumber · float · min: 0.01 · max: 1000000Optional

Weight in kilograms.

lengthnumber · float · min: 0.01 · max: 1000000Optional

Length in centimeters.

heightnumber · float · min: 0.01 · max: 1000000Optional

Height in centimeters.

widthnumber · float · min: 0.01 · max: 1000000Optional

Width in centimeters.

Responses
200

Barcode successfully updated.

application/json
patch/fulfillment/{countrycode}/v1/barcodes/{id}
PATCH /v.1.0/fulfillment/{countrycode}/v1/barcodes/{id} HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 49

{
  "weight": 2.5,
  "length": 30,
  "height": 20,
  "width": 15
}
200

Barcode successfully updated.

{
  "data": {
    "id": "cadeb5e7-a6b2-45d0-af36-60eae53454df",
    "barcode": "4820024220506",
    "measureUnitName": "шт",
    "includes": 1,
    "weight": 2.5,
    "length": 30,
    "height": 20,
    "width": 15,
    "createdAt": "2026-04-01T10:30:00+00:00",
    "updatedAt": "2026-05-08T14:00:00+00:00"
  }
}

Create Inbound Plan

post
/fulfillment/{countrycode}/v1/inbound-plans

This endpoint allows creating a new inbound plan to receive goods at the specified warehouse.

Only one inbound plan can be created per request. A plan may contain one or more goods positions.

On success, the API returns the created inbound plan with its unique identifier.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Body

Request body for creating an inbound plan. All required fields must be provided.

externalNumberstring · min: 2 · max: 72Required

Unique document number in the client's information system.

guidstring · min: 2 · max: 72Optional

Unique document GUID in the client's information system.

destWarehousestring · min: 2 · max: 255Required

Destination warehouse code.

deliveryTypeinteger · enumRequired

Delivery type (1 — Supplier delivery, 3 — Nova Post return, 7 — Nova Post delivery).

Possible values:
additionalInfostring · max: 255Optional

Additional comment.

Responses
201

Request successful. Inbound plan was created.

application/json
post/fulfillment/{countrycode}/v1/inbound-plans
POST /v.1.0/fulfillment/{countrycode}/v1/inbound-plans HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 254

{
  "externalNumber": "INB-2026-001",
  "guid": "8f14e45f-e1ff-4a90-b8a2-657d1c10a790",
  "destWarehouse": "Boyarka",
  "deliveryType": 1,
  "additionalInfo": "Прийом поповнення",
  "details": [
    {
      "objectId": "3279cadb-daeb-4c62-a2fa-8fdb105c85a4",
      "quantity": 100
    }
  ]
}
201

Request successful. Inbound plan was created.

{
  "data": {
    "id": "00f9c83e-4b2a-4d1f-9c9e-1f2c3d4e5f60",
    "externalNumber": "INB-2026-001",
    "guid": "8f14e45f-e1ff-4a90-b8a2-657d1c10a790",
    "destWarehouse": "Boyarka",
    "deliveryType": 1,
    "additionalInfo": "Прийом поповнення",
    "createdAt": "2026-08-01T10:00:00+00:00",
    "updatedAt": "2026-08-01T10:00:00+00:00",
    "details": [
      {
        "id": "3279cadb-daeb-4c62-a2fa-8fdb105c85a4",
        "objectId": "0519dba3-e1df-4379-a3b9-b544a4f22376",
        "quantity": 100
      }
    ]
  }
}

Add Goods to Inbound Plan

post
/fulfillment/{countrycode}/v1/inbound-plans/{id}/details

This endpoint is used to add new goods items to an existing inbound plan that is in status 1 (New).

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the inbound plan.

Example: d1e2f3a4-0000-0000-0000-000000000001
Bodyobject[]
objectIdstring · uuidRequired

Goods UUID in WMS (Warehouse Management System).

quantityinteger · min: 1 · max: 1000000Required

Quantity of goods units.

Responses
201

Request successful. Goods were added to the inbound plan.

application/json
idstring · uuidRequired

Unique identifier of the inbound plan item.

objectIdstring · uuidRequired

Goods UUID in WMS (Warehouse Management System).

quantityintegerRequired

Quantity of goods units.

post/fulfillment/{countrycode}/v1/inbound-plans/{id}/details
POST /v.1.0/fulfillment/{countrycode}/v1/inbound-plans/{id}/details HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 74

[
  {
    "objectId": "ITEM001",
    "quantity": 10
  },
  {
    "objectId": "ITEM002",
    "quantity": 5
  }
]
201

Request successful. Goods were added to the inbound plan.

[
  {
    "id": "0519dba3-e1df-4379-a3b9-b544a4f22376",
    "objectId": "ITEM001",
    "quantity": 10
  },
  {
    "id": "0620dba3-e1df-4379-a3b9-b544a4f33487",
    "objectId": "ITEM002",
    "quantity": 5
  }
]

Update Inbound Plan

patch
/fulfillment/{countrycode}/v1/inbound-plans/{id}

This endpoint is used to update the parameters of an inbound plan that is in status 1 (New).

The endpoint allows updating the destination warehouse, delivery type, additional information, and quantities of existing goods items.

🔸Adding or removing goods items through this endpoint is not supported.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the inbound plan.

Example: d1e2f3a4-0000-0000-0000-000000000001
Body

Request body for updating an inbound plan. Only the fields that need to be changed should be provided. At least one field must be present.

destWarehousestring · min: 2 · max: 255Optional

Destination warehouse code.

deliveryTypeinteger · enumOptional

Delivery type (1 — Supplier delivery, 3 — Nova Post return, 7 — Nova Post delivery).

Possible values:
additionalInfostring · max: 255Optional

Comment.

Responses
200

Request successful. Inbound plan was updated.

application/json
patch/fulfillment/{countrycode}/v1/inbound-plans/{id}
PATCH /v.1.0/fulfillment/{countrycode}/v1/inbound-plans/{id} HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 164

{
  "destWarehouse": "Boyarka",
  "deliveryType": 1,
  "additionalInfo": "Updated comment",
  "details": [
    {
      "objectId": "ITEM001",
      "quantity": 10
    },
    {
      "objectId": "ITEM002",
      "quantity": 7
    }
  ]
}
200

Request successful. Inbound plan was updated.

{
  "data": {
    "id": "d1e2f3a4-0000-0000-0000-000000000001",
    "externalNumber": "INV-2026-00042",
    "guid": "e5f6-7890-abcd",
    "destWarehouse": "Boyarka",
    "deliveryType": 1,
    "additionalInfo": "Updated comment",
    "createdAt": "2026-05-18T10:00:00+00:00",
    "updatedAt": "2026-05-18T12:30:00+00:00",
    "details": [
      {
        "id": "det-1",
        "objectId": "ITEM001",
        "quantity": 10
      },
      {
        "id": "det-2",
        "objectId": "ITEM002",
        "quantity": 7
      }
    ]
  }
}

Delete Goods from Inbound Plan

post
/fulfillment/{countrycode}/v1/inbound-plans/{id}/details/multiple-delete

This endpoint is used to remove goods items from an inbound plan that is in status 1 (New).

On success, the API returns only the goods items that remain in the inbound plan.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the inbound plan.

Example: d1e2f3a4-0000-0000-0000-000000000001
Bodyobject[]
objectIdstring · uuidRequired

Goods UUID in WMS (Warehouse Management System).

Responses
200

Request successful. Goods items were removed from the inbound plan.

application/json
idstring · uuidRequired

Unique identifier of the inbound plan item.

objectIdstring · uuidRequired

Goods UUID in WMS (Warehouse Management System).

quantityintegerRequired

Quantity of goods units.

post/fulfillment/{countrycode}/v1/inbound-plans/{id}/details/multiple-delete
POST /v.1.0/fulfillment/{countrycode}/v1/inbound-plans/{id}/details/multiple-delete HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 47

[
  {
    "objectId": "ITEM-02"
  },
  {
    "objectId": "ITEM-03"
  }
]
200

Request successful. Goods items were removed from the inbound plan.

[
  {
    "id": "6119dba3-e1df-4379-a3b9-b544a4f22673",
    "objectId": "ITEM-01",
    "quantity": 10
  },
  {
    "id": "7120dba3-e1df-4379-a3b9-b544a4f33784",
    "objectId": "ITEM-04",
    "quantity": 10
  }
]

Cancel Inbound Plan

patch
/fulfillment/{countrycode}/v1/inbound-plans/{id}/cancel

This endpoint is used to cancel an inbound plan that is in status 1 (New).

On success, the inbound plan is moved to status 10 (Canceled) and the updated inbound plan is returned.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the inbound plan.

Example: 00f9c83e-4b2a-4d1f-9c9e-1f2c3d4e5f60
Responses
200

Request successful. The inbound plan was canceled.

application/json
patch/fulfillment/{countrycode}/v1/inbound-plans/{id}/cancel
PATCH /v.1.0/fulfillment/{countrycode}/v1/inbound-plans/{id}/cancel HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Accept: */*
200

Request successful. The inbound plan was canceled.

{
  "data": {
    "id": "00f9c83e-4b2a-4d1f-9c9e-1f2c3d4e5f60",
    "externalNumber": "12345",
    "guid": "8f14e45f-e1ff-4a90-b8a2-657d1c10a790",
    "destWarehouse": "Boyarka",
    "deliveryType": 1,
    "additionalInfo": "Goods replenishment",
    "createdAt": "2026-05-09T14:32:00+00:00",
    "updatedAt": "2026-05-09T14:32:00+00:00",
    "details": [
      {
        "id": "3279cadb-daeb-4c62-a2fa-8fdb105c85a4",
        "objectId": "0519dba3-e1df-4379-a3b9-b544a4f22376",
        "quantity": 1
      }
    ]
  }
}

Create Orders

post
/fulfillment/{countrycode}/v1/orders/multiple

This endpoint is used to create one or more customer orders for shipping goods from the warehouse in a single request.

Two delivery scenarios are supported:

  • Nova Post delivery — an international express waybill number must be specified. The waybill is validated in AWIS / Oper Module.

  • Customer pickup — the order is created without specifying an international express waybill.

If the request is valid and all requirements are met, each order is created with one of the following statuses:

  • 1 (New) — when all products are available in stock.

  • 13 (Incomplete) — when some products are fully or partially unavailable.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Bodyobject[]
externalNumberstring · min: 2 · max: 72Required

Customer's internal order number.

destWarehousestring · min: 2 · max: 255Required

Warehouse code.

deliveryTypeinteger · enumRequired

Delivery type (1 — Nova Post shipment, 2 — Customer pickup).

Possible values:
waybillNumberstringOptional

Nova Post waybill number. Required when deliveryType = 1.

additionalInfostring · max: 255Optional

Additional information or comment.

Responses
207

Request processed. Returns the creation result for each order.

application/json
errorsobjectRequired

Errors for orders that could not be created.

post/fulfillment/{countrycode}/v1/orders/multiple
POST /v.1.0/fulfillment/{countrycode}/v1/orders/multiple HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 248

[
  {
    "externalNumber": "ORD-20260801-001",
    "destWarehouse": "WMS-UK-01",
    "deliveryType": 1,
    "waybillNumber": "20450012345678",
    "additionalInfo": "Urgent",
    "details": [
      {
        "objectId": "0519dba3-e1df-4379-a3b9-b544a4f22376",
        "quantity": 1,
        "price": 150.75,
        "sum": 150.75
      }
    ]
  }
]
207

Request processed. Returns the creation result for each order.

{
  "data": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "externalNumber": "ORD-20260801-001",
      "destWarehouse": "WMS-UK-01",
      "deliveryType": 1,
      "waybillNumber": "20450012345678",
      "additionalInfo": "Urgent",
      "createdAt": "2026-08-01T10:00:00+00:00",
      "updatedAt": "2026-08-01T10:00:00+00:00",
      "details": [
        {
          "id": "a1b2c3d4-0000-0000-0000-000000000001",
          "objectId": "0519dba3-e1df-4379-a3b9-b544a4f22376",
          "quantity": 1,
          "price": 150.75,
          "sum": 150.75
        }
      ]
    }
  ],
  "errors": {}
}

Add Goods to Order

post
/fulfillment/{countrycode}/v1/orders/{id}/details

This endpoint is used to add new product items to an existing order that is currently in status 13 (Incomplete).

The response (201 Created) returns the complete list of product items currently included in the order.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the order.

Example: 550e8400-e29b-41d4-a716-446655440000
Bodyobject[]

Root-level array of product items to be added to the order. At least one product item must be provided.

objectIdstringRequired

Product identifier.

quantityinteger · min: 1 · max: 1000Required

Quantity of product.

pricenumber · floatOptional

Unit price.

sumnumber · floatOptional

Total amount for the line item.

Responses
201

Complete order item list returned successfully.

application/json
idstring · uuidRequired

Unique identifier of the order item.

objectIdstringRequired

Product identifier.

quantityintegerRequired

Quantity of product.

pricenumber · floatOptional

Unit price.

sumnumber · floatOptional

Total amount for the line item.

post/fulfillment/{countrycode}/v1/orders/{id}/details
POST /v.1.0/fulfillment/{countrycode}/v1/orders/{id}/details HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 117

[
  {
    "objectId": "ITEM-02",
    "quantity": 10,
    "price": 10,
    "sum": 100
  },
  {
    "objectId": "ITEM-03",
    "quantity": 10,
    "price": 10,
    "sum": 100
  }
]
201

Complete order item list returned successfully.

[
  {
    "id": "0519dba3-e1df-4379-a3b9-b544a4f22376",
    "objectId": "ITEM-01",
    "quantity": 10,
    "price": 10,
    "sum": 100
  },
  {
    "id": "0620dba3-e1df-4379-a3b9-b544a4f33487",
    "objectId": "ITEM-02",
    "quantity": 10,
    "price": 10,
    "sum": 100
  },
  {
    "id": "0721dba3-e1df-4379-a3b9-b544a4f78334",
    "objectId": "ITEM-03",
    "quantity": 10,
    "price": 10,
    "sum": 100
  }
]

Check Order Status

get
/fulfillment/{countrycode}/v1/orders/status

This endpoint is used to retrieve the current status of one or more orders, with optional filtering parameters.

Filter values within the same parameter are combined using OR, while different filter parameters are combined using AND.

🔹If no filter parameters are provided, the response returns the most recent orders.

🔸This GET request does not return an error when incorrect, non-existent, or partially invalid filter values are used. In such cases, invalid or empty filters are ignored, and if no orders match the criteria, an empty array is returned.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Query parameters
ids[]string · uuid[]Optional

Array of system order identifiers.

externalNumbers[]string[]Optional

Array of external order numbers.

destWarehouses[]string[]Optional

Array of destination warehouse codes.

startDatestring · date-timeOptional

Start creation date in ISO 8601 format.

Example: 2026-05-01T00:00:00Z
endDatestring · date-timeOptional

End creation date in ISO 8601 format.

Example: 2026-05-31T23:59:59Z
pageintegerOptional

Pagination page number (up to 25 objects per page).

Example: 1
Responses
200

Request successful. Returns a list of orders matching the filtering criteria.

application/json
linksobjectRequired

Pagination links.

metaobjectRequired

Pagination metadata.

get/fulfillment/{countrycode}/v1/orders/status
GET /v.1.0/fulfillment/{countrycode}/v1/orders/status HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Accept: */*
200

Request successful. Returns a list of orders matching the filtering criteria.

{
  "data": [
    {
      "id": "ed3bd7e9-545c-4a34-9c58-f17e2b92ed32",
      "externalNumber": "TEST-EXTRA-001",
      "destWarehouse": "000063146",
      "status": 1,
      "statusTime": null,
      "waybillNumber": null
    },
    {
      "id": "dup-test-001",
      "externalNumber": "DUP-TEST-EXT",
      "destWarehouse": "000063146",
      "status": 13,
      "statusTime": "2026-05-10T15:34:00Z",
      "waybillNumber": "20450000000001"
    }
  ],
  "links": {},
  "meta": {}
}

Cancel Order

patch
/fulfillment/{countrycode}/v1/orders/{id}/cancel

This endpoint is used to cancel a order that is currently in status 13 (Incomplete).

Once canceled, the order transitions to status 10 (Canceled).

If a related Nova Post waybill number exists, it is automatically deleted.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the order.

Example: 550e8400-e29b-41d4-a716-446655440000
Responses
200

The order was successfully canceled. Returns the updated order.

application/json
patch/fulfillment/{countrycode}/v1/orders/{id}/cancel
PATCH /v.1.0/fulfillment/{countrycode}/v1/orders/{id}/cancel HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Accept: */*
200

The order was successfully canceled. Returns the updated order.

{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "externalNumber": "ORD-20240129-001",
    "destWarehouse": "WMS-UK-02",
    "deliveryType": 1,
    "waybillNumber": null,
    "additionalInfo": "Updated Info",
    "status": "10",
    "createdAt": "2026-05-09T14:32:00+00:00",
    "updatedAt": "2026-05-10T15:34:00+00:00",
    "details": [
      {
        "id": "3279cadb-daeb-4c62-a2fa-8fdb105c85a4",
        "objectId": "0519dba3-e1df-4379-a3b9-b544a4f22376",
        "quantity": 5,
        "price": 10.5,
        "sum": 157.5
      }
    ]
  }
}

Get Order Details

get
/fulfillment/{countrycode}/v1/orders/{id}/details

This endpoint is used to retrieve the complete details of a specific order by its id.

The response returns the complete list of order items, including planned and actual quantities, product condition, and serial numbers (if applicable).

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstringRequired

Unique identifier of the order.

Example: 0123456789
Responses
200

Data successfully retrieved. Returns the complete details of the order.

application/json
idstringRequired

Unique identifier of the order.

externalNumberstringRequired

External order number.

get/fulfillment/{countrycode}/v1/orders/{id}/details
GET /v.1.0/fulfillment/{countrycode}/v1/orders/{id}/details HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Accept: */*
200

Data successfully retrieved. Returns the complete details of the order.

{
  "id": "0123456789",
  "externalNumber": "Num-01",
  "details": [
    {
      "id": "3279cadb-daeb-4c62-a2fa-8fdb105c85a4",
      "objectId": "0102030405",
      "sku": "SKU-001",
      "measureUnitName": "шт",
      "plannedQuantity": 4,
      "actualQuantity": 0,
      "condition": 0,
      "series": [
        "SN-001",
        "SN-002",
        "SN-003",
        "SN-004"
      ]
    }
  ]
}

Update Order

patch
/fulfillment/{countrycode}/v1/orders/{id}

This endpoint updates an existing customer order that is currently in status 13 (Incomplete).

The request allows updating general order parameters, delivery settings, and existing order items. If Nova Post delivery is selected, a waybill number must be provided. If the delivery type is changed to Customer pickup, the existing waybill is removed from the system.

🔸All fields are optional, but at least one field must be provided to perform the update.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the customer order.

Example: 550e8400-e29b-41d4-a716-446655440000
Body

Request body for updating a customer order. Only the fields that need to be changed should be provided. At least one field must be present.

destWarehousestringOptional

Warehouse code.

deliveryTypeinteger · enumOptional

Delivery type (1 — Nova Post shipment, 2 — Customer pickup).

Possible values:
waybillNumberstring · nullableOptional

Nova Post waybill number. Required when deliveryType = 1.

additionalInfostring · max: 255Optional

Additional information or comment.

Responses
200

The customer order was successfully updated.

application/json
patch/fulfillment/{countrycode}/v1/orders/{id}
PATCH /v.1.0/fulfillment/{countrycode}/v1/orders/{id} HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 221

{
  "destWarehouse": "WMS-UK-02",
  "deliveryType": 1,
  "waybillNumber": "20450012345678",
  "additionalInfo": "Updated information",
  "details": [
    {
      "objectId": "0519dba3-e1df-4379-a3b9-b544a4f22376",
      "quantity": 15,
      "price": 10.5,
      "sum": 157.5
    }
  ]
}
200

The customer order was successfully updated.

{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "externalNumber": "ORD-20240129-001",
    "destWarehouse": "WMS-UK-02",
    "deliveryType": 1,
    "waybillNumber": "20450012345678",
    "additionalInfo": "Updated information",
    "createdAt": "2026-05-09T14:32:00+00:00",
    "updatedAt": "2026-05-10T15:34:00+00:00",
    "details": [
      {
        "id": "3279cadb-daeb-4c62-a2fa-8fdb105c85a4",
        "objectId": "0519dba3-e1df-4379-a3b9-b544a4f22376",
        "quantity": 15,
        "price": 10.5,
        "sum": 157.5
      }
    ]
  }
}

Delete Goods from Order

post
/fulfillment/{countrycode}/v1/orders/{id}/details/multiple-delete

This endpoint is used to remove one or more product items from a order that is currently in status 13 (Incomplete).

Removing all product items from the order is allowed. In this case, the order status remains 13 (Incomplete).

The response (200 OK) returns only the product items remaining in the order.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Path parameters
idstring · uuidRequired

Unique identifier of the order.

Example: 550e8400-e29b-41d4-a716-446655440000
Bodyobject[]

Root-level array of product items to be removed from the order. At least one product item must be provided.

objectIdstringRequired

Product identifier.

Responses
200

Product items were successfully removed from the order. Returns only the product items remaining in the order.

application/json
idstring · uuidRequired

Unique identifier of the order item.

objectIdstringRequired

Product identifier.

quantityintegerRequired

Quantity of product.

pricenumber · floatOptional

Unit price.

sumnumber · floatOptional

Total amount for the line item.

post/fulfillment/{countrycode}/v1/orders/{id}/details/multiple-delete
POST /v.1.0/fulfillment/{countrycode}/v1/orders/{id}/details/multiple-delete HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 24

[
  {
    "objectId": "ITEM-03"
  }
]
200

Product items were successfully removed from the order. Returns only the product items remaining in the order.

[
  {
    "id": "0519dba3-e1df-4379-a3b9-b544a4f22376",
    "objectId": "ITEM-01",
    "quantity": 10,
    "price": 10,
    "sum": 100
  },
  {
    "id": "0620dba3-e1df-4379-a3b9-b544a4f33487",
    "objectId": "ITEM-02",
    "quantity": 10,
    "price": 10,
    "sum": 100
  }
]

Check Stock Remains

get
/fulfillment/{countrycode}/v1/stock-remains

This endpoint is used to retrieve information about stock remains in warehouses with optional filtering.

Filter values within the same parameter are combined using OR, while different filter parameters are combined using AND.

Available quantity is calculated using the following formula: availableQuantity = quantity - reservedQuantity (if the result is less than 0, 0 is returned).

🔹If no product-specific filters (objectIds, objectArts, objectTitles) are provided, only products with quantity > 0, reservedQuantity > 0, or availableQuantity > 0 are returned.

🔹If product-specific filters (objectIds, objectArts, objectTitles) are provided, the requested products are always returned, even if all stock values are equal to 0.

Stock information is returned regardless of whether a product has a barcode. Stock remains are grouped by expiryDate.

Invalid or unknown filter values are ignored and do not cause errors.

Authorizations
AuthorizationstringRequired

Authorization JWT-token with a lifetime of 1 hour in header

Query parameters
objectIds[]string[]Optional

Array of product IDs.

objectArts[]string[]Optional

Array of product article numbers.

objectTitles[]string[]Optional

Array of product names.

destWarehouses[]string[]Optional

Array of warehouse codes.

remainDatestringOptional

Stock validity date in YYYY-MM-DD format.

Example: 2026-05-10
conditioninteger · enumOptional

Product condition:

  • 0 — good;
  • 1 — defective.
Possible values:
pageintegerOptional

Pagination page number (up to 25 records per page).

Example: 1
Responses
200

Data retrieved successfully. Returns stock remains with Laravel pagination.

application/json
linksobjectRequired

Pagination links.

metaobjectRequired

Pagination metadata.

get/fulfillment/{countrycode}/v1/stock-remains
GET /v.1.0/fulfillment/{countrycode}/v1/stock-remains HTTP/1.1
Host: api-stage.novapost.com/
Authorization: YOUR_API_KEY
Accept: */*
200

Data retrieved successfully. Returns stock remains with Laravel pagination.

{
  "data": [
    {
      "objectId": "O1",
      "sku": "ART-1",
      "measureUnitName": "шт",
      "quantity": 125,
      "reservedQuantity": 30,
      "availableQuantity": 95,
      "destWarehouse": "WH-01",
      "expiryDate": null
    },
    {
      "objectId": "O2",
      "sku": "ART-2",
      "measureUnitName": null,
      "quantity": 0,
      "reservedQuantity": 0,
      "availableQuantity": 0,
      "destWarehouse": null,
      "expiryDate": null
    }
  ],
  "links": {
    "first": "https://api.novapost.com/v.1.0/fulfillment/pl/stock-remains?page=1",
    "last": "https://api.novapost.com/v.1.0/fulfillment/pl/stock-remains?page=1",
    "prev": null,
    "next": null
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 1,
    "path": "https://api.novapost.com/v.1.0/fulfillment/pl/stock-remains",
    "per_page": 25,
    "to": 2,
    "total": 2
  }
}

Last updated