SHARK WMS RESTAPI Version 1.2 (1.2.2)
Download OpenAPI specification:Download
SHARK WMS RESTAPI - REST based web service for SHARK WMS. The main purpose of the API is to maintain master data and to create orders from a Host system (ERP).
Create a new order in SHARK.
Used to create all kind of orders in SHARK, like inbound, outbound and stock counting. The OrderTypeID defines the type of the order.
Authorizations:
Request Body schema: application/json
Order to add
orderNumber required | string [ 1 .. 50 ] characters The order number is a reference number, that in combination with the OrderType and the DeliveryNoteNumber defines a unique order. |
owner | string [ 1 .. 50 ] characters Optional owner (company) of this order. In case an owner is specified, all articles in the order must be owned by the specified owner. |
deliveryNoteNumber | string [ 1 .. 50 ] characters A delivery number, a shipment number. |
orderTypeID required | integer [ 1 .. 32768 ] OrderTypeID defines the type of the order. The default types are: 1=outbound (pick), 2=inbound (put-away). Other types can be defined as needed. |
priority | integer [ 1 .. 255 ] Default: 127 Priority is a number between 0 and 255. Default is 127, 0 is lowest and 255 is express orders. |
deliveryDate | string <date> Date the order should be delivered. Format: YYYY-MM-DD |
note | string [ 0 .. 512 ] characters Free order note. |
shipment | string [ 0 .. 50 ] characters Type of shipment. Information to the consolidation and shipment area and to an optional freight system. |
carrier | string [ 0 .. 50 ] characters Name of the transport company that will pick up a pick order. |
tour | string [ 0 .. 50 ] characters Orders can be picked to different tours. This parameter can be used to tell the system, that the order must be delivered with the specified tour. |
gate | string [ 0 .. 50 ] characters Where the order will be picked up, when leaving the warehouse. |
object (CustomerJS) | |
Array of objects (DeliveryAddressJS) | |
object (MiscFields) Optional fields used for keeping customized information. | |
Array of objects (OrderLineJS) | |
partlist | object |
Responses
Request samples
- Payload
{- "orderNumber": "ORD0001",
- "owner": "string",
- "deliveryNoteNumber": "string",
- "orderTypeID": 1,
- "priority": 127,
- "deliveryDate": "2019-08-24",
- "note": "string",
- "shipment": "string",
- "carrier": "string",
- "tour": "string",
- "gate": "string",
- "customer": {
- "customerNumber": "string",
- "customerName": "string",
- "reference": "string",
- "street": "string",
- "city": "string",
- "zipCode": "string",
- "country": "string",
- "phone": "string",
- "email": "string"
}, - "deliveryaddress": [
- {
- "addressLine1": "string",
- "addressLine2": "string",
- "addressLine3": "string",
- "addressLine4": "string",
- "addressLine5": "string",
- "addressLine6": "string",
- "addressLine7": "string",
- "addressLine8": "string",
- "addressLine9": "string",
- "addressLine10": "string"
}
], - "misc": {
- "misc1": "string",
- "misc2": "string",
- "misc3": "string",
- "misc4": "string",
- "misc5": "string",
- "misc6": "string",
- "misc7": "string",
- "misc8": "string",
- "misc9": "string",
- "misc10": "string"
}, - "orderline": [
- {
- "articleNumber": "string",
- "qty": 1,
- "articleDescription": "string",
- "batchNumber": "string",
- "batchDate": "2019-08-24",
- "expireDate": "2019-08-24",
- "lineNumber": 1,
- "location": "string",
- "auto": false,
- "unit": "string",
- "note": "string",
- "qualityInspection": true,
- "targetZone": "string",
- "reservation": "string",
- "misc": {
- "misc1": "string",
- "misc2": "string",
- "misc3": "string",
- "misc4": "string",
- "misc5": "string",
- "misc6": "string",
- "misc7": "string",
- "misc8": "string",
- "misc9": "string",
- "misc10": "string"
}, - "serialNumbers": [
- {
- "number": "string"
}
]
}
], - "partlist": { }
}
Delete an order from SHARK
Delete an order from SHARK. This is only possible, if the order is not working. Actually the order is only cancelled, it will still exists, but is not visible. When the order is cancelled, it can be overwritten with a new order with same order number.
Authorizations:
query Parameters
orderNumber required | string [ 1 .. 50 ] characters Example: orderNumber=ORD0001 Order Number |
deliveryNoteNumber | string [ 0 .. 50 ] characters Delivery Note Number |
orderTypeID | number Default IDs are 1 for outbound (picking), 2 for inbound (store), 19 for at stock counting request. New order types can be created in SHARK. |
owner | string [ 0 .. 50 ] characters Owner |
Responses
Start an order by Host control.
The normal way is that an order is started from Shark. This method allows an order to be started by a Host system.
Authorizations:
query Parameters
orderNumber required | string |
deliveryNoteNumber | string |
orderTypeID required | integer |
workstation required | string The order must be started related to a workstation. The workstation relation is used to define where the order execution belongs and the work group for the order. |
Responses
Get acknowledgements from executed orders.
Returns information about order transactions that has been fullfilled or canceled. Confirmations are logged as documents with an ID number. Store the returned next id and use that for the next call. The confirmations can be generated at order, order line or at transaction level, depending on the configured confirmation mode.
Authorizations:
query Parameters
nextID required | integer Return all confirmations from this ID and forward. |
maxdocs | integer [ 1 .. 1000 ] The maximum number of entries to return. |
expandPartLists | boolean Set to true to return detailed information about part lists in the order. |
Responses
Response samples
- 200
[- {
- "nextID": 0,
- "documentID": 0,
- "status": "string",
- "orderTypeID": 0,
- "orderNumber": "string",
- "deliveryDate": "2019-08-24T14:15:22Z",
- "owner": "string",
- "deliverNoteNumber": "string",
- "carrier": "string",
- "weight": "string",
- "colli": "string",
- "misc": {
- "misc1": "string",
- "misc2": "string",
- "misc3": "string",
- "misc4": "string",
- "misc5": "string",
- "misc6": "string",
- "misc7": "string",
- "misc8": "string",
- "misc9": "string",
- "misc10": "string"
}, - "orderline": [
- {
- "status": "string",
- "lineNumber": 0,
- "articleNumber": "string",
- "qtyOrdered": 0,
- "qty": 0,
- "costCenter": "string",
- "costCenterText": "string",
- "user": "string",
- "time": "2019-08-24T14:15:22Z",
- "misc": [
- {
- "misc1": "string",
- "misc2": "string",
- "misc3": "string",
- "misc4": "string",
- "misc5": "string",
- "misc6": "string",
- "misc7": "string",
- "misc8": "string",
- "misc9": "string",
- "misc10": "string"
}
], - "serialNumbers": [
- {
- "number": "string"
}
], - "transactions": [
- [
- {
- "qty": 0,
- "location": "string",
- "user": "string",
- "batchNumber": "string",
- "qualityCheck": true,
- "deliveryReference": "string"
}
]
]
}
], - "partlist": [
- {
- "partListNumber": "string",
- "orderTypeID": 0,
- "lines": [
- {
- "articleNumber": "string",
- "lineNumber": 0,
- "qty": 0
}
]
}
]
}
]
Change the order state to closed. Used to close an inbound or outbound order not yet fully processed.
Order status
Authorizations:
query Parameters
orderNumber required | string Example: orderNumber=ORD0001 Order Number |
deliveryNoteNumber | string Delivery Note Number |
owner | string Owner |
OrderTypeID required | number |
close required | boolean |
Responses
Response samples
- 200
{- "orderNumber": "string",
- "deliverNoteNumber": "string",
- "owner": "string",
- "status": "string"
}
Returns status of an order
Order status
Authorizations:
query Parameters
orderNumber required | string Example: orderNumber=ORD0001 Order Number |
deliveryNoteNumber | string Delivery Note Number |
owner | string Used if the system is running with multiple owners of the warehouse, eg. the warehouse is used for 3PL. |
orderTypeID required | number Required order type id. Standard values are 1 for outbound and 2 for inbound, but order types can be customized for the installation. |
Responses
Response samples
- 200
{- "orderNumber": "string",
- "deliverNoteNumber": "string",
- "owner": "string",
- "status": "string"
}
Returns status of an order
Order status
Authorizations:
query Parameters
orderNumber required | string Example: orderNumber=ORD0001 Order Number |
deliveryNoteNumber | string Delivery Note Number |
orderTypeID | integer |
owner | string Owner |
Responses
Response samples
- 200
{- "orderNumber": "string",
- "deliverNoteNumber": "string",
- "owner": "string",
- "orderTypeID": 0,
- "statusText": "string",
- "statusID": "1=The order is finished (OK), 2=Not started, 4=Partly processed",
- "released": "True if the order is released.",
- "working": "True if the order is processed.",
- "consolidated": "True if the order is consolidated (shipped)",
- "cancelAllowed": "True if the order can be cancelled (deleted).",
- "backOrderStatusID": 0,
- "backOrderStatusText": "string",
- "deliveryDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "startTime": "2019-08-24T14:15:22Z",
- "completedTime": "2019-08-24T14:15:22Z",
- "OrderLineStatusListJS": [
- {
- "orderLineID": 0,
- "orderID": 1,
- "lineNumber": 1,
- "itemID": 1,
- "qtyRequested": 1,
- "qtyDelivered": 1,
- "qtyReported": 1,
- "priority": "string",
- "statusID": 0,
- "statusText": "string",
- "description": "string",
- "pickedBy": "2019-08-24T14:15:22Z",
- "pickStart": "2019-08-24T14:15:22Z",
- "pickEnd": "2019-08-24T14:15:22Z",
- "location": "string",
- "articleNumber": "string",
- "batchNumber": "string",
- "batchDate": "2019-08-24T14:15:22Z",
- "articleOnStockID": 0,
- "articleOnStockText": "string",
- "misc1": "string",
- "misc2": "string",
- "misc3": "string",
- "misc4": "string",
- "misc5": "string",
- "misc6": "string",
- "misc7": "string",
- "misc8": "string",
- "misc9": "string",
- "misc10": "string",
- "serialNumbers": [
- {
- "number": "string"
}
]
}
]
}
Subscribe to a webhook. (Not yet fully functional)
Subscribe to a webhook. Webhooks are user-defined HTTP callbacks. When a new confirmation is available in SHARK, it will post to the specified URL. Thereby polling can be avoided.
Authorizations:
Request Body schema: application/json
url required | string URL that will be used as endpoint for the webhook. |
type required | string Default: "ORDERCONFIRM" Enum: "ORDERCONFIRM" "ORDERSTATECHANGED" Type of event to receive. |
includeContent | boolean Default: false If true the document that is waiting will be included in the body of the webhook postin. |
Responses
Callbacks
Request samples
- Payload
{- "type": "ORDERCONFIRM",
- "includeContent": false
}
Callback payload samples
{- "nextID": 0,
- "documentID": 0,
- "status": "string",
- "orderTypeID": 0,
- "orderNumber": "string",
- "deliveryDate": "2019-08-24T14:15:22Z",
- "owner": "string",
- "deliverNoteNumber": "string",
- "carrier": "string",
- "weight": "string",
- "colli": "string",
- "misc": {
- "misc1": "string",
- "misc2": "string",
- "misc3": "string",
- "misc4": "string",
- "misc5": "string",
- "misc6": "string",
- "misc7": "string",
- "misc8": "string",
- "misc9": "string",
- "misc10": "string"
}, - "orderline": [
- {
- "status": "string",
- "lineNumber": 0,
- "articleNumber": "string",
- "qtyOrdered": 0,
- "qty": 0,
- "costCenter": "string",
- "costCenterText": "string",
- "user": "string",
- "time": "2019-08-24T14:15:22Z",
- "misc": [
- {
- "misc1": "string",
- "misc2": "string",
- "misc3": "string",
- "misc4": "string",
- "misc5": "string",
- "misc6": "string",
- "misc7": "string",
- "misc8": "string",
- "misc9": "string",
- "misc10": "string"
}
], - "serialNumbers": [
- {
- "number": "string"
}
], - "transactions": [
- [
- {
- "qty": 0,
- "location": "string",
- "user": "string",
- "batchNumber": "string",
- "qualityCheck": true,
- "deliveryReference": "string"
}
]
]
}
], - "partlist": [
- {
- "partListNumber": "string",
- "orderTypeID": 0,
- "lines": [
- {
- "articleNumber": "string",
- "lineNumber": 0,
- "qty": 0
}
]
}
]
}
Get a post every time an order change the state. (Not yet fully functional)
Subscribe to a webhook. Webhooks are user-defined HTTP callbacks. When a new confirmation is available in SHARK, it will post to the specified URL. Thereby polling can be avoided.
Authorizations:
Request Body schema: application/json
url required | string URL that will be used as endpoint for the webhook. |
type required | string Default: "ORDERCONFIRM" Enum: "ORDERCONFIRM" "ORDERSTATECHANGED" Type of event to receive. |
includeContent | boolean Default: false If true the document that is waiting will be included in the body of the webhook postin. |
Responses
Callbacks
Request samples
- Payload
{- "type": "ORDERCONFIRM",
- "includeContent": false
}
Callback payload samples
{- "orderNumber": "string",
- "deliveryNoteNumber": "string",
- "orderTypeID": 0,
- "owner": "string",
- "state": "READY",
- "createdDate": "2019-08-24T14:15:22Z"
}
Get a stock report from system.
Return a complete stock report as a snapshot when the call is received. This is typically requested when the two systems are in an idle state – in other words, when no orders are in progress.
Authorizations:
query Parameters
articleNumber | string Example: articleNumber=ART001 The specify an article number to return info for only this number. |
page | number >= 1 Page number if the response is paged. |
pageSize | number [ 1 .. 100000 ] Number of returned rows in the response set. |
Responses
Response samples
- 200
[- {
- "articleNumber": "string",
- "owner": "string",
- "batchnumber": "string",
- "unit": "string",
- "qty": 0,
- "qtyAvailable": 0,
- "qtyAtGoodsReception": 0,
- "qtyAtConsolidation": 0,
- "qtyPendingPicks": 0,
- "qtyPendingStore": 0,
- "locations": [
- [
- {
- "location": "string",
- "locationType": "string",
- "articleNumber": "string",
- "owner": "string",
- "batchnumber": "string",
- "unit": "string",
- "qty": 0,
- "palletID": "string",
- "locked": true,
- "orderRef": "string"
}
]
]
}
]
Get all locations
Return a list of all locations including stock
Authorizations:
query Parameters
locationaddress | string Optional location address to search for. A procent sign can be used for pattern matching. |
page | number >= 1 Page number if the response is paged. |
pageSize | number [ 1 .. 100000 ] Number of returned rows in the response set. |
Responses
Response samples
- 200
[- {
- "location": "string",
- "locationType": "string",
- "articleNumber": "string",
- "owner": "string",
- "batchnumber": "string",
- "unit": "string",
- "qty": 0,
- "palletID": "string",
- "locked": true,
- "orderRef": "string"
}
]
Lock stock by batch number
Lock or unlock locations by batch number. This might be used to avoid picking from a specific batch number, for example if the batch is expired.
Authorizations:
query Parameters
article required | string The article number. |
owner | string Optional owner of the article number. |
batchNumber required | string Batch numbers for inventoring orders are actually not supported and will be ignored if specified. |
lock required | boolean Lock or unlock the locations. |
Responses
Response samples
- 200
[- {
- "location": "string",
- "locationType": "string",
- "articleNumber": "string",
- "owner": "string",
- "batchnumber": "string",
- "unit": "string",
- "qty": 0,
- "palletID": "string",
- "locked": true,
- "orderRef": "string"
}
]
Get all items in inspection (Not yet fully functional)
Return a list of all locations with articles stored waiting for inspection.
Authorizations:
query Parameters
page | number >= 1 Page number if the response is paged. |
pageSize | number [ 1 .. 100000 ] Number of returned rows in the response set. |
Responses
Response samples
- 200
[- {
- "location": "string",
- "locationType": "string",
- "articleNumber": "string",
- "owner": "string",
- "batchnumber": "string",
- "unit": "string",
- "qty": 0,
- "palletID": "string",
- "locked": true,
- "orderRef": "string"
}
]
Maintain articles that was stored for inspection. Default is release stock that was locked until quality inspection has been fullfilled. Can also be used to reject inspected articles, by setting the passed flag to false.
Authorizations:
query Parameters
article required | string The article number. |
location | string Optionally support for specifying a specific location where the articles are stored. |
qty | number This is used to define how many items are accepted or rejected currently in inspection. If the quantity is lower than the actually quantity in inspection, the stock will be adjusted to that value. |
action required | string Enum: "REJECTED" "ACCEPTED" "MOVE_TO_QUARANTINE" "MOVE_TO_SCRAP" What to do with the articles. If ACCEPTED the articles specified by qty will be unlocked and available as ordinary stock, if qty is less than the locked quantity, it will be removed (supposed already to be removed). If REJECTED the stock will be removed. If MOVE_TO_QUARATINE, the articles will be moved to a quaratine zone and still be locked. If MOVE_TO_SCRAP, the articles will be moved to a scrap zone and not any longer be available. |
batchNumber | string Batch numbers for inventoring orders are actually not supported and will be ignored if specified. |
owner | string Owner is only required in setups for 3PL where the warehouse supports multiple owners of the stock. |
orderNumber required | string This is the inbound order number, original used when the articles were received. It is required in all requests to identify the articles. |
serialNumber | string Optional serial number (only one can be specified). So far not supported. |
Responses
Response samples
- 200
[- {
- "location": "string",
- "locationType": "string",
- "articleNumber": "string",
- "owner": "string",
- "batchnumber": "string",
- "unit": "string",
- "qty": 0,
- "palletID": "string",
- "locked": true,
- "orderRef": "string"
}
]
Search for one or more articles.
Get information about the specified article(s). Returns the relevant information.
Authorizations:
query Parameters
articleNumber | string Specify the article number to find. A procent sign can be used for pattern matching. |
owner | string For sites with multiple owners of the articles, specify the actually owner. |
page | number >= 1 Page number if the response is paged. |
pageSize | number [ 1 .. 100000 ] Number of returned rows in the response set. |
Responses
Response samples
- 200
[- {
- "articleNumber": "ART001",
- "owner": "",
- "description": "Screwdriver",
- "description1": "",
- "description2": "",
- "ean": "",
- "erpcount": 0,
- "locationstrategy": "FIFO",
- "markForDeletion": false,
- "batchNumberRequired": false,
- "serialNumberRequired": "NEVER",
- "alternativeArticleNumber1": "NEVER",
- "alternativeArticleNumber2": "NEVER",
- "group": "NEVER",
- "pickingRate": null,
- "unit": "NEVER",
- "packages": [
- {
- "name": "P1",
- "height": 0.1,
- "width": 0.1,
- "depth": 0.1,
- "weight": 1.5,
- "qty": 1,
- "ean": "string",
- "unit": "string"
}
], - "replenishment": [
- {
- "packageName": "P1",
- "zone": "string",
- "ReplenishmentFrom": "string",
- "minQty": 0,
- "maxQty": 0,
- "replenishmentQty": 0,
- "locationStrategy": "FIFO"
}
], - "locationTypes": [
- {
- "name": "string",
- "qty": 1
}
], - "misc": {
- "misc1": "string",
- "misc2": "string",
- "misc3": "string",
- "misc4": "string",
- "misc5": "string",
- "misc6": "string",
- "misc7": "string",
- "misc8": "string",
- "misc9": "string",
- "misc10": "string"
}
}
]
Add or update master data for articles.
Master data is basic information about the articles. The most important information is the article number and description, but other information can be transferred as well. SHARK will create new articles and update the description, when met in an imported order, but the Master Data allows more information and will also work if SHARK is used with the Manual Transactions (transactions with no host-orders), this could be the case in an initial store process, where goods are moved from old locations into SHARK without orders.
Authorizations:
Request Body schema: application/json
articleNumber required | string [ 1 .. 50 ] characters |
owner | string [ 0 .. 50 ] characters Default: "" |
description | string [ 0 .. 150 ] characters Default: "" |
description1 | string [ 0 .. 150 ] characters Default: "" |
description2 | string [ 0 .. 150 ] characters Default: "" |
ean | string [ 0 .. 50 ] characters Default: "" EAN Number |
erpcount | number Default: 0 The Host systems stock quantity, used to compare SHARK stock with the Host stock. |
locationstrategy | string Default: "FLOATING" Enum: "FIFO" "FIXED" "FLOATING" The storage strategy used either FIFO, FIXED or FLOATING |
markForDeletion | boolean Default: false If true the article will be deleted if possible else it will marked for later deletion. It cannot be used in new orders or put-away operations. The article cannot be deleted immediately, because it might have database references. |
batchNumberRequired | boolean Default: false If true a batch number must be registered when picked or stored. |
serialNumberRequired | string Default: "NEVER" Enum: "NEVER" "ALWAYS" "INBOUND" "OUTBOUND" "TRACKED" Set the serial number strategy used. |
alternativeArticleNumber1 | string [ 1 .. 50 ] characters Default: "NEVER" |
alternativeArticleNumber2 | string [ 1 .. 50 ] characters Default: "NEVER" |
group | string [ 1 .. 50 ] characters Default: "NEVER" |
pickingRate | string [ 1 .. 10 ] characters Default: null |
unit | string [ 1 .. 10 ] characters Default: "NEVER" |
Array of objects (PackagesListJS) | |
Array of objects (ReplenishmentListJS) | |
Array of objects (LocationTypeListJS) | |
object (MiscFields) Optional fields used for keeping customized information. |
Responses
Request samples
- Payload
[- {
- "articleNumber": "ART001",
- "owner": "",
- "description": "Screwdriver",
- "description1": "",
- "description2": "",
- "ean": "",
- "erpcount": 0,
- "locationstrategy": "FIFO",
- "markForDeletion": false,
- "batchNumberRequired": false,
- "serialNumberRequired": "NEVER",
- "alternativeArticleNumber1": "NEVER",
- "alternativeArticleNumber2": "NEVER",
- "group": "NEVER",
- "pickingRate": null,
- "unit": "NEVER",
- "packages": [
- {
- "name": "P1",
- "height": 0.1,
- "width": 0.1,
- "depth": 0.1,
- "weight": 1.5,
- "qty": 1,
- "ean": "string",
- "unit": "string"
}
], - "replenishment": [
- {
- "packageName": "P1",
- "zone": "string",
- "ReplenishmentFrom": "string",
- "minQty": 0,
- "maxQty": 0,
- "replenishmentQty": 0,
- "locationStrategy": "FIFO"
}
], - "locationTypes": [
- {
- "name": "string",
- "qty": 1
}
], - "misc": {
- "misc1": "string",
- "misc2": "string",
- "misc3": "string",
- "misc4": "string",
- "misc5": "string",
- "misc6": "string",
- "misc7": "string",
- "misc8": "string",
- "misc9": "string",
- "misc10": "string"
}
}
]
Rename an article.
Rename an article. This is used to rename an article number. The new article number must not exist.
Authorizations:
query Parameters
articleNumber | string Specify the article number to find. A procent sign can be used for pattern matching. |
newArticleNumber | string Specify the new article number. |
owner | string For sites with multiple owners of the articles, specify the actually owner. |
Responses
Get statistic information
Authorizations:
query Parameters
page | number >= 1 Page number if the response is paged. |
pageSize | number [ 1 .. 100000 ] Number of returned rows in the response set. |
Responses
Response samples
- 200
[- {
- "zone": "string",
- "orders": 0,
- "lines": 0,
- "lastTransaction": "2019-08-24T14:15:22Z",
- "pickLastHour": 0,
- "storeLastHour": 0
}
]
Get a custom data report.
SHARK allows customized reports to be generated as views in the database. This call can be used to extract the report data.
Authorizations:
query Parameters
reportName required | string This is the name of the predefined report in the SHARK system. |
columns | string Optional list of comma separated column names to return. Default is all columns. |
sort | string Comma separated list of column names to order by. |
filter | string Filter for a single column. Format colname EQ/NEQ/GT/LT value. |
page | number >= 1 Page number if the response is paged. |
pageSize | number [ 1 .. 100000 ] Number of returned rows in the response set. |
Responses
Response samples
- 200
{- "metadata": [
- {
- "name": "string",
- "datatype": "string"
}
], - "data": [
- [
- "string"
]
]
}