Skip to main content
Question

API: Creating multiple StockItem WarehouseDetails with different Replenishment Sources

  • September 28, 2026
  • 0 replies
  • 13 views

We are using the Acumatica contract-based REST API (25.200.001) to create Stock Items and their Warehouse Details.

We need to create two warehouse detail records for a new stock item:

Warehouse Replenishment Source Replenishment Warehouse
A001 Manufacturing  
B004 Transfer A001

Our custom endpoint exposes WarehouseDetails under StockItem.

The relevant fields are mapped to the Warehouses detail object, including:

  • WarehouseID → Warehouse

  • Source / ReplenishmentSource → Replenishment Source

  • RepWhs / ReplenishmentWarehouse → Replenishment Warehouse

The screen field was verified with Element Inspector as:

  • Data Class: INItemSite

  • Data Field: ReplenishmentSource

  • View Name: itemsiterecords

  • Business Logic: InventoryItemMaint

Problem

If we PUT a single WarehouseDetails record, the Replenishment Source is set correctly.

For example, creating only A001 as Manufacturing works:

{
"InventoryID": {
"value": "TESTITEM"
},
"WarehouseDetails": [
{
"WarehouseID": {
"value": "A001"
},
"Source": {
"value": "Manufacturing"
}
}
]
}

A001 is correctly created with Replenishment Source = Manufacturing.

However, if we create two WarehouseDetails records with different sources:

{
"InventoryID": {
"value": "TESTITEM"
},
"WarehouseDetails": [
{
"WarehouseID": {
"value": "A001"
},
"Source": {
"value": "Manufacturing"
}
},
{
"WarehouseID": {
"value": "B004"
},
"Source": {
"value": "Transfer"
},
"RepWhs": {
"value": "A001"
}
}
]
}

both warehouse records end up with the same Replenishment Source.

In this example, both A001 and B004 end up as Transfer instead of:

A001 = Manufacturing
B004 = Transfer

We have also tried creating the WarehouseDetails records with separate PUT requests. The behavior is similar: setting the source on one warehouse can result in the other warehouse receiving the same source.

We also tested the manufacturing-related override fields:

"AMReplenishmentSourceOverride": {
"value": true
},
"AMSourceSiteIDOverride": {
"value": true
}

but this did not resolve the issue.

GET results

After creation, $expand=WarehouseDetails confirms that Acumatica has created two distinct WarehouseDetails records.

For example:

"WarehouseDetails": [
{
"id": "<GUID 1>",
"WarehouseID": {
"value": "A001"
},
"ReplenishmentSource": {
"value": "Manufacturing"
}
},
{
"id": "<GUID 2>",
"WarehouseID": {
"value": "B004"
},
"ReplenishmentSource": {
"value": "Manufacturing"
}
}
]

So the two INItemSite/WarehouseDetails records exist independently, but the Replenishment Source does not appear to be applied independently during the REST operation.

Questions

Is there a supported way through the contract-based REST API to create multiple WarehouseDetails / INItemSite records for the same Stock Item with different ReplenishmentSource values?

Specifically, can this be done in one StockItem PUT so that:

A001 → Manufacturing
B004 → Transfer, Replenishment Warehouse A001

If not, can each warehouse detail be created independently through REST while setting its own Replenishment Source and Replenishment Warehouse?

Would the recommended approach be to expose/use the ItemWarehouse entity directly instead of StockItem.WarehouseDetails?

We would prefer to avoid creating the WarehouseDetails first, GETting their REST entity IDs, and then issuing additional PUT requests to update each detail record individually if there is a supported way to set these values correctly during creation.

Thanks for any guidance or examples.