Skip to main content

Stock mutation reasons

Whenever stock is moved, adjusted, or sold, or whatever; a stock mutation is created. Many of these stock mutations come with a pre-determined reason, but when an adjustment is made manually in a store, it's possible to select a reason for it. These reasons are configurable.

Currently the creation of custom stock mutation reasons is possible via API only.

List

To see a list of all currently available stock mutation reasons, use ListStockMutationReasons:

ListStockMutationReasons

{
"Result": {
"PageConfig": {
"Filter": {},
"Start": 0,
"Limit": 50,
"SortDirection": 0
},
"Page": [
{
"ID": 0,
"Name": "Unknown",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 1,
"Name": "Correction",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": true
},
{
"ID": 2,
"Name": "ChangeOrganizationUnit",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 3,
"Name": "Damage",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 4,
"Name": "Theft",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 5,
"Name": "Movement",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 6,
"Name": "CycleCountDeviation",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 7,
"Name": "Sold",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 8,
"Name": "Received",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 9,
"Name": "Returned",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 10,
"Name": "DOA",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 11,
"Name": "Scrap",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 12,
"Name": "InternalUse",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 13,
"Name": "Demo",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 14,
"Name": "SentToVendor",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 15,
"Name": "InitialInventory",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 16,
"Name": "UndoOrderReservation",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 17,
"Name": "CreateOrderReservation",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 18,
"Name": "CreateReturnRequestStock",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 19,
"Name": "InTransit",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 20,
"Name": "ReceiptDeficiency",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 21,
"Name": "Revaluation",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 22,
"Name": "InventoryReset",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 23,
"Name": "CancelReturnRequestLine",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 24,
"Name": "ReservationSurplus",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 25,
"Name": "ShopClosingReturns",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 26,
"Name": "NonReturnedProducts",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 27,
"Name": "SentBySupplier",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 28,
"Name": "ExternalModification",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 29,
"Name": "Interbranch",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 30,
"Name": "ReturnToSupplier",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 31,
"Name": "ReceiptSurplus",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 32,
"Name": "ShipmentCancelled",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 33,
"Name": "PurchasePriceVariance",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 34,
"Name": "FullStockCount",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 35,
"Name": "Transfer",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 36,
"Name": "UserBorrowedProduct",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 37,
"Name": "UserReturnedBorrowedProduct",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 38,
"Name": "SecondChanceProductRegistration",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
},
{
"ID": 39,
"Name": "UndoShipment",
"RequireRemarkForMove": false,
"RequireRemarkForAdjust": false
}
],
"Offset": 0,
"Limit": 50,
"Total": 40,
"SortDirection": 0,
"Filters": {},
"NumberOfPages": 1,
"CurrentPage": 1
}
}

This server returns the StockMutationReasonID for your newly created stock mutation reason.

Update

To update your stock mutation reason, for example when making a typo, we use UpdateStockMutationReason:

UpdateStockMutationReason

"ID": 1, // Only this field is required
"Name": "Expired",
"Description": "This item has passed its expiration date"
"BackendID": null,
"RequireRemarkForMove": "true",
"RequireRemarkForAdjust": "true"

Delete

You can delete your custom stock mutation reasons using DeleteStockMutationReason:

DeleteStockMutationReason

"ID:" 1

Default reasons are locked

It is not possible to delete non-custom mutation reasons. You also can't change their names.

Get recently used

It is also possible to get stock mutation reasons that are currently active for specific organization units using GetRecentlyUsedStockMutationReasons:

{
"OrganizationUnitID": 9
}
{
"Reasons": [
{
"ID": 1,
"Name": "Correction"
},
{
"ID": 3,
"Name": "Damage"
},
{
"ID": 5,
"Name": "Movement"
},
{
"ID": 6,
"Name": "CycleCountDeviation"
},
{
"ID": 7,
"Name": "Sold"
},
{
"ID": 8,
"Name": "Received"
},
{
"ID": 9,
"Name": "Returned"
},
{
"ID": 17,
"Name": "CreateOrderReservation"
},
{
"ID": 19,
"Name": "InTransit"
},
{
"ID": 20,
"Name": "ReceiptDeficiency"
},
{
"ID": 28,
"Name": "ExternalModification"
},
{
"ID": 29,
"Name": "Interbranch"
},
{
"ID": 33,
"Name": "PurchasePriceVariance"
},
{
"ID": 34,
"Name": "FullStockCount"
},
{
"ID": 38,
"Name": "SecondChanceProductRegistration"
}
]
}