SOAP vs. REST
Table of contents
Ongoing WMS has two different Application Programming Interfaces (APIs) which are intended for connecting systems like business systems (ERPs) and web shops to the WMS:
- Goods Owner SOAP API - based on Simple Object Access Protocol
- Goods Owner REST API - based on Representational state transfer
In this article we will explain the difference between the Goods Owner SOAP API and the Goods Owner REST API.
The key difference between the two APIs is:
- The SOAP API is a large and extensive API which gives the API user wide latitude in how he wishes to control the WMS and which fields to use.
- The REST API is a smaller and more focused API where the API user is offered less choice in how the integration works.
Here are some specific comparison points between the APIs.
|May create, update and read articles, orders, purchase orders and return orders||Yes||Yes|
|May cancel orders and purchase orders||Yes||Yes|
|May attach files to orders and articles||Yes||Yes|
|May read tracking information from orders||Yes||Yes|
|May read stock adjustments||Yes||Yes|
|May read shipments and production orders 1||Yes||No|
|May read the current stock balance 2||Yes||Yes|
|May read historical stock balances (from past dates) 2||Yes||No|
|Allows the API user to read and update a large variety of data fields on the orders, purchase orders and articles 3||Yes||No|
|Can create kit articles and production articles4||Yes||Yes|
|Can create sub order lines 5||Yes||No|
|Each order and purchase order must have a unique order number 6||No||Yes|
|Each article must have a unique article number 7||No||Yes|
|Allows detailed advising of goods information on purchase orders 8||Yes||No|
Shipments and production orders
The following entities can only be managed using the SOAP API, and not by the REST API:
- Shipment (note: this refers to Ongoing WMS' own concept of a shipment. It is unrelated to the "shipments" which transporters such as DHL and UPS have)
- Production order
Both APIs can read stock balances, but only the SOAP API can ask for what the stock balance was at a past date.
Which fields can be used?
The SOAP API allows you to update and read many fields on orders, purchase orders and articles. The REST API gives access to a much smaller selection of fields, making the REST API less complex.
Kit articles and production articles
A kit article is an article which is defined in terms of other articles. When you create an order for a kit article, the system will automatically create order lines for the articles which make up the kit. You cannot have the kit article in stock - only the underlying subarticles can be kept in stock.
A production article is an article which may be produced from other articles. It is similar to a kit article in that it has to be defined in terms of other articles. However, you can keep a production article in stock.
Both the SOAP and REST APIs may create and update kit articles and production articles.
Sub order lines
Only the SOAP API may create sub order lines, that is, define order lines which are "children" of another order line.
Unique order, purchase order and article numbers
The REST API has some requirements regarding uniqueness. In the REST API:
- An article (SKU) must have a unique article number.
- An order must have a unique order number.
- A purchase order must have a unique purchase order number.
Advising detailed goods information on purchase orders
Both the REST API and SOAP API allow you to create purchase orders, which advise the warehouse of which articles and quantities are expected to arrive at the warehouse.
The SOAP API takes this one step further, and allows the API user to also advise exactly which batch numbers, pallet numbers, expiry dates, etc are expected. The REST API does not allow this.