SOAP vs. REST
Table of contents
Introduction
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.
Key difference
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.
Detailed comparison
Here are some specific comparison points between the APIs.
SOAP | REST | |
---|---|---|
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 sub order lines 4 | Yes | No |
Each order and purchase order must have a unique order number 5 | No | Yes |
Each article must have a unique article number 5 | No | Yes |
Allows detailed advising of goods information on purchase orders 6 | 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
Stock balances
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 sub order lines
Only the SOAP API may create kit articles, that is, articles which are defined in terms of other articles.
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.
- An 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.