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 = TransferWe 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 A001If 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.