The API uses Simple Object Access Protocol (SOAP) technology.

Goods owners

In the terminology of Ongoing WMS, the customers of a warehouse are called goods owners. The goods owners are the companies which have outsourced their warehousing needs to the warehouse company.

Because a warehouse can potentially have more than one customer (goods owner), you will need to specify the goods owner in each call to the Ongoing WMS API.


You will need four credentials in order to access the API. The administrator of the warehouse system can generate these by following this guide.

UserName str Your username
Password str Your password
GoodsOwnerId int The id of the goods owner
GoodsOwnerCode str The code (name) of your goods owner

UserName and Password will always be needed.

As explained above, each API call requires you to identify the intended goods owner. The goods owner is specified using either GoodsOwnerId or GoodsOwnerCode. Some API calls require the ID and others require the code. This is somewhat inconsistent, but there are historical reasons for why it is this way.


API endpoint URL for live systems

Every live Ongoing WMS has a single, unique URL for the API endpoint. Every API request has to be made to this URL, regardless of what type of API call it is. The base API URL for a production system looks like this:{warehouse}/service.asmx

Ask your contact person at the warehouse to specify what {warehouse} should be in your particular case. {warehouse} can be taken from the same URL which they use to login to the system:


As an example, this is the URL for our API demo site:

API endpoint URL for demo systems

If you have received a demo system, the API endpoint URL is slightly different. In the case of demo systems, the API endpoint URL takes this form:{warehouse}/service.asmx

SOAPAction header URL

Whenever you make a call to the API, you also have specify an HTTP header with the key "SOAPAction". This is part of the SOAP standard. The value of the header is an URL which depends on the name of the API call. The entire header looks like this:

SOAPAction: "{name of API call}"

Note that the header URL is different from the API endpoint URL. These two URLs have no relation to one another.


The WSDL can be retrieved from the SOAP URL by adding the parameter "?WSDL". This is the WSDL of our demo system:

Note that excessive polling of this URL will result in a 503 error message. Only retrieve the WSDL once during development and not as a part of a scheduled integration task.

Changes to the API

As a general rule, we do not remove functions or fields from the API. However, we might add more fields or functions. This should be taken into account when building the integration. Your code should not break if a field is added. Fields are always added to the end of each object.

Polling rules

Make sure to not poll the API excessively. Your scheduled jobs should run a few times per hour, and not several times per second. If excessive polling occurs, Ongoing WMS will shut down the API access if the problem isn't fixed after a reasonable amount of time.

Required elements

In the documentation, required elements are marked with "Req.". These elements are always required. Elements marked with "Req.*" are conditionally required.

Note that elements are only required if the parent object is used.