Official list of reasons for inventory_changes endpoint

Hello,

I am trying to build an integration between ShipHero and an ERP. I need to pull just the inventory changes that change the total on hand quantity of a SKU but aren’t tied to a standard transaction (order, PO, Return, etc).

We already have Orders and POs syncing between the two systems so it would double the adjustment qty in the ERP if we pulled all inventory changes. So we need to filter them out.

Hope this makes sense and we can get an official list of reasons that we will see.

Thanks,

Jon

Hi @techyes ,

I am also workings on syncing data between shiphero and an ERP, I have synced orders, shipments,POs, workorders into that. Can you elaborate more on what type of transactions need to capture and why certain transactions should be captured?

We need to capture changes to inventory within ShipHero that are not tied to a standard transaction like an order or purchase order for example.

This way the ERP and ShipHero will remain in sync automatically. For example, if someone in the warehouse decides to steal 10 units from a location and adjusts the qty manually, we want to see that adjustment show in the ERP as well so it can be investigated.

Does that help explain?

You can use the Inventory_Change webhook, and filter (when request is received) by reason to exclude those changes related to orders, POs and returns. You will get a webhook request like this:

{
  "webhook_type": "Inventory Change",
  "account_uuid": "QWNjb3VudDo2Mzg5OA==",
  "account_id": 18963,
  "warehouse_id": 76733,
  "warehouse_uuid": "V2FyZWhvdXNlOjc2NzMz",
  "user_id": 489254,
  "user_uuid": "VXNlcjoxNTg4MjY=",
  "sku": "LOT01",
  "quantity": 10,
  "old_quantity": 0,
  "location_name": "AA-05-01-01",
  "previous_on_hand": 110,
  "timestamp": "2025-02-03 13:19:30", 
  "reason": "Change from the product page via the ShipHero Web Dashboard.",
  "source": "manual",
  "lot_id": 114475,
  "lot_uuid": "TG90OjExNDQ3NQ==",
  "lot_expiration": "2025-03-25"
}

More details on

That’s what I’m doing but I’m looking for a list of possible values in the reason field so I can’t properly filter out the ones I don’t want.