Integrating with Exact

Learn how to integrate with Exact and how the connection works.

Jarno Koopman avatar
Written by Jarno Koopman
Updated over a week ago

This article will provide you with more in depth information regarding the integration of PSOhub with Exact. You will learn how the integration works, which data is being sent and what the limitations are.

Setup the integration

In your Organization settings, go to Subscription & Integrations.

In the Accounting section, click Connect on the Exact online tile.

PSOhub will ask that you confirm this selection. Click Proceed.

The Exact Online login screen will be displayed. You can login here with your Exact credentials.

If you have not given consent before, a consent screen will show where you can approve PSOhub to connect with your administration.

Afterwards, you are returned to PSOhub and the test connection screen will appear.

Connecting multiple administrations

If you have multiple administrations on the same user account, you need to follow the steps below to make sure the correct administration is selected:

  1. Log in to Exact before setting up the connection;

  2. Switch to the correct administration with your connected user;

  3. Then, go to PSOhub's Subscription & Integrations setting, Exact online and click Connect;

  4. Done.

If you do NOT follow these steps, Exact Online will always give us a default administration and you might end up connecting to the wrong administration. We also display the administration ID in the test connection screen for extra validation.

Test your connection

In the Test connection window, you will be required to fill in essential identifiers to make sure all your invoices are properly sent to Exact.




You will need to have an Article/Item in your Exact administration that PSOhub can use. The Code that you entered is what you fill in within the PSOhub Item field.

Journal Code

In this field, please fill in the Sales Journal code that you have setup in Exact.
You can find these in the configuration settings of your administration under Financial - Journals.
Again, use the Code that you want to use as value in the PSOhub field.

Tax Category

If you are using non-default tax codes, you can set these up in the Tax Categories settings screen in PSOhub. In here, you can also specify an Exact tax code.

As an alternative, you can also fill in the tax code in the Test Connection screen, once you have selected a category. If you leave it empty, PSOhub will use the default tax code 2. Make sure you have this one available in your Exact administration or you will not be able to create an invoice.
Again, use the Code that you want to use as value in the PSOhub field.

Once you have everything filled, click Test. If everything works, the screen will display a success message and you will receive a test invoice email from Exact shortly after.

If there was a problem, the error message (if available) from Exact will show here. If you are not sure how to solve it, just contact us so we can help you.

How does the mapping work?

The following data is sent from PSOhub to Exact:


Before creating a new account in Exact, PSOhub will check if an account already exists by using the name that is known within PSOhub. If found, the identifier will be stored and will be used. If no account is found, a new account will be created.

Field in Exact (Accounts)

Field in PSOhub (Company)



Address Line





C (Customer, default filled)


Before creating a contact in Exact, PSOhub will check if a contact already exists for the account associated with this contact. To do this, a search is done using the e-mail address that is known in PSOhub. If found, this contact is used.

If a contact is found but is not connected to the account, a new contact will be created and associated with the account.

If no contact is found, the contact is created and associated with the account.

Field in Exact (Contacts)

Field in PSOhub (Contact)

First name

First name

Last name

Last name




Associated Company


An invoice in Exact is built up in two parts, the invoice and the invoice sales lines. When sending the invoice to the customer, the contact e-mail is used.

Field in Exact (Invoice)

Field in PSOhub (Invoice)



Payment reference

Name - Reference

Invoice to



8020 or 8021 in case of credit

Invoice to contact

Contact e-mail


Journal code in settings

Ordered by


Sales invoice lines

See below

Invoice sales line

For the individual invoice lines, by default, the item and tax code that have been set up will be used. If you require a specific item or tax code for an invoice line then you can set these up within the contract line under accounting details.

Field in Exact (Invoice sales line)

Field in PSOhub (Invoice line)


Item in settings or contract line


Line number - Invoice line name


Line Description



VAT code

Default tax code or code set in tax category

Net price

To be invoiced

The tax calculation will be done within Exact and based on the tax codes provided.

Send invoice

After the invoice has been created, PSOhub will trigger the send invoice functionality within Exact. There is nothing to be configured at the PSOhub end; the invoice template, fields and any other defaults from Exact are used so be sure to set it up the way you want it there.

Once the invoice has been sent, the Exact invoice number is returned and added in the Invoice screen (left-hand pane):

Invoice paid

There is no sync between Exact and PSOhub to automatically update the status from Sent to Paid. When an invoice has been paid in Exact, you can manually update the invoice in PSOhub from Sent to Paid:

When you click on Mark as paid, a Confirmation message will appear, warning you that the Paid action cannot be overturned:

Click Proceed. Then, the invoice status will change from Sent to Paid:

Possible problems & solutions

Missing payment condition

It might occur that you receive an error about a missing payment condition. This means that there is no default payment condition in Exact and this is required to be set. You can either set the default or fill in the field within the Account of the test account that was created.

Did this answer your question?