Inventory
Adjustments increment or decrement on-hand stock; cycle counts record a historical inventory count for a past business date. Both support lot-tracked SKUs where the warehouse has lot inventory enabled.
Adjust inventory 🔗
Text
1
POST /v1/inventory/adjustments.json
Increase or decrease on-hand stock for one or more SKUs. Positive quantity
adds inventory, negative removes it.
Request body
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"adjustments": [
{
"product_code": "SKU-1",
"quantity": 5,
"reason": "found a few units presumed lost",
"lot_number": "A-1234-5678",
"company_code": "ACME"
},
{
"product_code": "SKU-2",
"quantity": -3,
"reason": "Lost 3 units to water damage"
}
]
}
Adjustment fields
| Field | Type | Notes |
|---|---|---|
product_code |
string | Required — SKU to adjust |
quantity |
number | Required — positive to add, negative to remove |
reason |
string | Human-readable reason surfaced in Fulfil |
reference |
string | Optional external reference |
date |
date | Optional effective date |
lot_number |
string | Required for lot-tracked SKUs |
company_code |
string | Required if the warehouse has more than one company |
warehouse |
integer | Required when the token is scoped to multiple warehouses |
Response
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"adjustments": [
{
"product_code": "SKU-1",
"reference": null,
"lot_number": "A-1234-5678",
"move_id": 9001,
"company_code": "ACME",
"errors": []
},
{
"product_code": "SKU-2",
"reference": null,
"lot_number": null,
"move_id": 9002,
"company_code": "ACME",
"errors": []
}
]
}
Returns 200 if every adjustment succeeded, 207 if some failed.
Create a historical cycle count 🔗
Text
1
POST /v1/inventory/counts.json
Record an inventory cycle count at the warehouse for a past business date. The date must be strictly earlier than today.
Request body
JSON
1
2
3
4
5
6
7
8
9
10
{
"date": "2026-06-15",
"reference": "external-number",
"reason": "Monthly cycle count",
"company_code": "ACME",
"items": [
{ "product_code": "SKU-1", "quantity": 1, "lot_number": "lot1" },
{ "product_code": "SKU-2", "quantity": 1 }
]
}
Fields
| Field | Type | Notes |
|---|---|---|
date |
date | Required — must be earlier than today |
reason |
string | Required |
reference |
string | Optional external reference |
company_code |
string | Optional; defaults to the warehouse's default company |
warehouse |
integer | Required when the token is scoped to multiple warehouses |
items |
array | Required — at least one item |
items[].product_code |
string | Required |
items[].quantity |
integer | Required — observed on-hand quantity |
items[].lot_number |
string | Required for lot-tracked SKUs |
Response
JSON
1
2
3
4
5
6
7
8
9
{
"count": {
"id": 4567,
"reference": "external-number",
"number": "CC-4567",
"create_date": "2026-06-17T18:33:00+00:00",
"company_code": "ACME"
}
}
Any SKU in items that Fulfil can't find at the warehouse fails the entire
request with 400.