Integration between Ongoing WMS and Fortnox
The Fortnox WMS integration is intended to be used by businesses which use Ongoing WMS for their warehousing operations (either via a third-party logistics provider, or if the business is direct customer to Ongoing). The integration helps you improve your warehouse efficiency and accuracy. The integration can automatically synchronize Ongoing WMS and Fortnox, meaning less duplicated work.
To minimize errors when working with the two systems, we have also published a Swedish guide outlining which processes should be handled in Fortnox and Ongoing WMS, respectively.
Table of contents
Video on how to set up integration to Fortnox
Features
The integration contains the following processes and features. The processes can be independently switched on or off. If not otherwise mentioned, all processed are turned on by default.
Article registry
Ongoing WMS pulls article registry updates from Fortnox to the WMS. Fortnox contains the master data. The following data is transmitted:
- Article name
- Article number
- EAN (barcode)
- Width
- Height
- Depth (length)
- Weight
- Whether or not it is a stock article *
- Purchase price
- Unit
- Description
- Supplier
* The information that determines if an article is a stock article or not is determined by the Lagervara setting on the article in Fortnox. When this setting is set to Ja the article is a stock article, otherwise it is not.
Note: when an article is not a stock article it will not be picked when it appears on orders.
Supplier registry
Ongoing WMS fetches new suppliers from Fortnox.
Sales orders
The WMS downloads new and updated orders which are not yet handled. If an order is updated or cancelled, the change is transferred unless the warehouse workers have started working on it.
Ongoing WMS pulls the following information for the order:
- Document number (order number)
- Remarks
- Terms of delivery
- Terms of payment
- Your order number
- Total price
- Language
- Our reference
- Your reference
- Delivery date
- Way of delivery
Please note: if you wish to automatically set a transporter service on the order in Ongoing WMS based on the content in e.g. “way of delivery” or "terms of delivery" in Fortnox you have to use transporter assignment.
The delivery address information is also transmitted. That includes:
- Name
- Address
- City
- Country code
- ZIP code
- Customer number
- Phone 1 and 2
- Organisation number
Notification via SMS and email is turned off by default.
For each order line Ongoing WMS reads the following:
- Article number
- Description
- Ordered quantity
- Price total
It is possible to set up the integration to automatically set the order type in Ongoing as B2B or B2C based on the customer type in Fortnox. If there already exists order types of type B2B and B2C those will be used, otherwise they will be created by the integration. If there exists multiple B2B/B2C order types the one that was created first will be used.
When an order is fulfilled by the warehouse, the delivered quantity is updated in Fortnox, and invoice is created if none already exists.
Note: If the delivered quantity is less than the ordered quantity when fulfilling an order in Fortnox this will lead to a back order being created. The back order contains the quantity that was not delivered on the original order. If you do not want a back order to be created please contact your Ongoing WMS representative to modify the integration in such a way that the ordered quantity in Fortnox will be updated to the delivered quantity in applicable cases. It is very important that you understand that this will modify the ordered quantity, and hence the ordered quantity will not be the same quantity as it originally was which most likely will be unexpected for the end customer.
Stock balance updates
Regular
Ongoing WMS manages the stock balances and continuously synchronizes these with Fortnox.
Note: When using the warehouse module, the "classic" stock balance synchronization cannot be used! This is because the classic variant writes the stock directly on the article in Fortnox, and the warehouse module only allow transactions.
Warehouse Module (Fortnox Lager)
It is possible to set up the integration to use the warehouse module in Fortnox. When this part of the integration is activated the flag warehouseReady will be activated when reporting an order as fulfilled by the warehouse. Note that if the warehouse module is activated in Fortnox and not in the integration the fulfillment will fail.
Inventory changes and returns on sales orders will be reported as Custom Warehouse Inbound/Outbound Documents in Fortnox.
The following document types are used by Ongoing WMS:
Ongoing WMS transaction type | Fortnox Document type |
---|---|
Purchase order | OngoingInboundOrder |
Return on sales order | OngoingInboundReturn |
Positive inventory adjustment | OngoingInboundInventory |
Negative inventory adjustment | OngoingOutboundInventory |
Purchase orders
If the module Fortnox Lager is used in Fortnox it is possible to handle purchase orders in the integration. The WMS will pull purchase orders in status "sent" where the purchase type is "warehouse". NB: status is known in the API as purchaseOrderState.
Note: if the integration keys generated for an existing integration were created before the Fortnox Lager module was activated new keys will need to be generated. This is because the integration keys that were generated before the module was activated does not have permission to access the purchase orders using the API.
Ongoing WMS pulls the following information for the purchase order:
- Purchase order id (order number)
- Delivery date
- Note
-
Supplier data
- Name
- Number
- Address
- Address2
- Post code
- City
- Country code
For each purchase order line Ongoing WMS reads the following:
- Article number
- Article name
- Row number
- Ordered quantity
- Price
- Currency code
Once the purchase order has been received by the warehouse, they can trigger the purchase order to be reported back to Fortnox. When this happens, the integration will do the following:
- Create incoming goods corresponding to the received amount.
- Release the incoming goods.
- Complete the incoming goods.
- Complete the purchase order (only if the purchase order marked as completed by the warehouse, i.e. the status is "Deflection" or "Received").
Note: In order for Ongoing WMS to be able to report the purchase order as received to Fortnox, incoming goods must be activated in Fortnox. Make sure incoming goods is activated by going to Settings ⇒ Warehouse ⇒ Incoming goods.
If the purchase order will be received partially at different dates, it is possible to create incoming goods for each partial receival. This will work so long as the purchase order status in Ongoing WMS is not set to "Deflection" or "Received", since then the purchase order in Fortnox will be marked as completed.
Getting started
Fortnox uses OAuth 2.0 in order to allow integrations to access the data needed.
Note: The rights of the keys generated depends on the user that generates them. For example: If you want the integration to access invoices and the warehouse module, then the user that generates the keys must itself be able to access invoices and the warehouse module in Fortnox.
To setup the integration you will need to perform the following steps:
-
Activate the app Ongoing WMS in the Fortnox Marketplace:
-
When the app is activated you will be redirected to the Ongoing landing page:
Here you will be asked to provide credentials for the WMS where you want to setup the integration. In the box marked System you can provide either the URL of the WMS, for example https://demo.ongoingsystems.se/demo/, or you can provide the Ongoing customer ID which can be found using the support info button at the bottom of the page when you are logged in on your WMS:
Username and Password corresponds to the user and password for the WMS.
-
Once the correct information is provided and the login button clicked you will be redirected to Fortnox where you will first be asked to login:
Note: The username here is the username for Fortnox.
-
The next step is to read through which permissions the integration needs. In order to be able to use the integration all the requested permissions must be accepted. If you are unsure what the different permissions mean please contact us. If the required permissions are denied you will not be able to setup the integration. Also note that the user from the previous step must have the permissions stated here for the generated keys to have the permissions.
-
When the requested permissions are accepted you will be redirected to the previously provided Ongoing WMS and can make some fine tuning of the integration before finally activating it.
- Once the integration is activated it will run every 15 minutes.
Reactivate integration
Every time Ongoing WMS makes an API call to Fortnox an access token is used to authorize access to the Fortnox account. This token is only valid for 60 minutes and when it is expired a new token is generated by making another API call using a so called refresh token. When making the call to get a new access token a new refresh token is also issued. The refresh token used to get the new tokens is then immediately invalidated. This flow makes it difficult for unauthorized persons to get access to sensitive data but it is also vulnerable for errors when saving the new tokens. If something goes wrong when refreshing the tokens one might end up with only the expired tokens. If this happens you will be contacted by Ongoing and asked to reactivate the integration manually. To reactivate the integration, follow the steps below.
-
If you have previously filled in your email address in the section "Communication of problems" in the integration settings you will receive an email with a reactivation link as soon as the integration stops working. If you follow this link you can go directly to step 3.
If you have not received an email with the reactivation link, navigate to the integration settings in Ongoing WMS. Then click edit on the integration that has stopped working.
-
You will then see a message saying that the keys for the integration are no longer valid. Below the text is a clickable link saying "Click here to start the process which will reactivate the integration.". Click the link or copy the link from the box below it and paste it into the address bar of your browser.
-
The link will send you to the Ongoing WMS login page. System and username should already be filled so all you have to do is type in ypur password and click login.
-
Once the correct information is provided and the login button clicked you will be redirected to Fortnox where you will first be asked to login:
Note: The username here is the username for Fortnox.
-
The next step is to read through which permissions the integration needs. In order to be able to use the integration all the requested permissions must be accepted. If you are unsure what the different permissions mean please contact us. If the required permissions are denied you will not be able to setup the integration. Also note that the user from the previous step must have the permissions stated here for the generated keys to have the permissions.
-
When the requested permissions are accepted the integration is reactivated and will run scheduled every 15 minutes again.