Integrate customs software with Ongoing WMS
There are many reasons to integrate Ongoing WMS with a customs software solution. For instance, if you need to manage bonded warehouses, generate customs documents or check that your shipment data is valid for import or export. When building an integration between Ongoing WMS and a customs software system it is recommended to use the goods owner SOAP API. This example also assumes that webhooks are used.
There are two main processes which needs to be accounted for when creating this integration: The inbound process and the outbound process. They are described in each section below.
Inbound steps
- Article items are received against purchase order lines. The items should be locked by default.
- The article items are then consolidated on an inbound shipment.
- As the customs status on the inbound shipment is set to PendingForApproval, a webhook with the shipment ID is triggered.
- As the integration receives the webhook it proceeds to get the shipment information from Ongoing WMS, using the API endpoint GetInboundShipmentsByQuery.
- When the shipment data has been fetched by the customs software system the integration updates the customs status on the shipment in Ongoing WMS to FetchedByCustomsSystem, using the API endpoint UpdateShipment. In the same call to UpdateShipment, the integration also makes sure to unlock the items (using UnlockInboundArticleItemsOperation).
- If the shipment data gets approved by the customs system, the integration updates the customs status on the shipment in Ongoing WMS to ApprovedByCustomsSystem. Otherwise, if the shipment data gets rejected by the customs system, the integration updates the customs status on the shipment in Ongoing WMS to RejectedByCustomsSystem.
Outbound steps
- Orders get picked in Ongoing WMS.
- The picked orders are then consolidated on a shipment.
- As the customs status on the shipment is set to PendingForApproval, a webhook with the shipment ID is triggered.
- As the integration receives the webhook it proceeds to get the shipment information from Ongoing WMS, using the API endpoint GetShipmentsByQuery.
- When the shipment data has been fetched by the customs system the integration updates the customs status on the shipment in Ongoing WMS to FetchedByCustomsSystem, using the API endpoint UpdateShipment.
- If the shipment data gets approved by the customs system, the integration updates the customs status on the shipment in Ongoing WMS to ApprovedByCustomsSystem. Otherwise, if the shipment data gets rejected by the customs system, the integration updates the customs status on the shipment in Ongoing WMS to RejectedByCustomsSystem.
Inventory adjustments
Some customs integrations may want to keep tracking of inventory adjustments. This can be done by subscribing to a webhook which is triggered every time an inventory adjustment is made, or by polling GetInventoryChangesByQuery.
Customer returns
Some customs integrations may want to keep track of customer returns. This can be done by subscribing to a webhook which is triggered every time a return is made, or by polling GetOrdersByQuery with a filter for LastReturnedFrom.
Stock comparison
Some customs integrations may want to make a stock comparison between the customs software and Ongoing WMS. This can be done, say, every Friday evening or at some other time when it is unlikely that there are any pending customs transactions. Any differences in stock values can be flagged for manual investigation.
To make the stock comparison, make a call to GetInventoryByQuery. For each article, the physical quantity is available in the field NumberOfItemsDecimal. This figure can be compared to the corresponding figure in the customs software.