Stock transfers

Stock moving between companies or locations. Hand-built: the record has no single owning company - it carries gencompanyidfrom and gencompanyidto - so the generic engine would treat it as install-wide and show every company's transfers to everyone.

The object#

FieldTypeDescription
idintegerNolaPro id.
namestring(100)What the transfer is called.
commentstring(65535)Free text.
statusstringWhere the transfer is in its life. Labels are Invcotransfer_model::$statuses; stored as an int and never exposed as one. One of newunassigned, assigned, accepted, picked, shipped, receivedcompleted.
gencompanyidfromintegerCompany sending.
gencompanyidtointegerCompany receiving.
inventorylocationidfromintegerLocation sending.
inventorylocationidtointegerLocation receiving.
duedatestringWhen it is due.
assigneddatestringWhen it was assigned.
assigneduseridintegerWho it is assigned to.
pickcompleteddatestringWhen picking finished.
shippeddatestringWhen it shipped.
receiveddatestringWhen it was received.
orderidintegerOrder that triggered it, or 0.
cancelbooleanCancelled transfers stay readable.
entrydatestringWhen it was raised.
lastpostdatestringLast time stock moved for it.

Endpoints#

GET/inventorytransfers 200

Inter-company and inter-location stock transfers.

Stock moving between companies or locations. A transfer is raised, assigned, picked, shipped and received, and status says where it is. The line records both what was sent and what was ordered, so a short send is visible - shrinkage lives in the gap between the two. These records span two companies by design. A transfer is visible to the sender and the receiver, and to nobody else: gencompanyidfrom or gencompanyidto must be yours.

Requires scope items:read.

Parameters
NameInTypeNotes
statusquerystringRestrict to one status: newunassigned, assigned, accepted, picked, shipped or receivedcompleted.
cancelquerystringDefaults to false. Pass true or any.
curl \
  'https://acme.nolapro.com/!/api/v2/inventorytransfers' \
  -H 'Authorization: Bearer $NP_TOKEN'
GET/inventorytransfers/{id} 200404

One transfer.

The transfer header. Its lines are at /inventorytransfers/{id}/lines.

Requires scope items:read.

Parameters
NameInTypeNotes
idrequiredpathinteger
When it fails
StatusCodeMeaning
404not_foundNo such record in this company.
curl \
  'https://acme.nolapro.com/!/api/v2/inventorytransfers/104' \
  -H 'Authorization: Bearer $NP_TOKEN'
Response 200
{
    "status": "newunassigned",
    "gencompanyidfrom": 1,
    "gencompanyidto": 1,
    "inventorylocationidfrom": 2,
    "inventorylocationidto": 3,
    "assigneduserid": 0,
    "orderid": 0
}
GET/inventorytransfers/{id}/lines 200422

What is moving, and what has arrived.

quantity is what was sent and quantityordered what was asked for; received says whether it has landed. Comparing them is how a short receipt is found, and a transfer system that cannot record one cannot account for shrinkage.

Requires scope items:read.

Parameters
NameInTypeNotes
idrequiredpathintegerThe transfer id.
When it fails
StatusCodeMeaning
422unknown_valueNo such record in this company.
curl \
  'https://acme.nolapro.com/!/api/v2/inventorytransfers/104/lines' \
  -H 'Authorization: Bearer $NP_TOKEN'