Fulfil Docs

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.