Skip to main content

Delivery Setup for Exact Online

This guide explains how to configure the Exact Online integration on our platform using the information provided by the customer.

1. Prerequisites​

Make sure you have the following details from the customer:

  • Client ID of the customer's Exact Online app registration.
  • Client Secret of the same app registration.
  • Division: the code of the Exact Online administration to connect.
  • Confirmation that the app was registered with the Redirect URI https://www.cm.com/app/marketplace/oauth/callback.
  • Confirmation that a dedicated read-only integration user exists (see Customer Setup for Exact Online).

2. Configure the Exact Online Integration​

Steps to Configure API Access:​

  1. Log in to Marketplace.
  2. Navigate to the Integrations->CRM section.
  3. Find the Exact Online CRM, click on Create Integration and give an appropriate Integration Name.
  4. Enter the following details provided by the customer:
    • Client ID: Paste the Client ID.
    • Client Secret: Paste the Client Secret.
    • Division: Paste the division (administration) code.
  5. Click Save.

The Client ID and Division are stored as configuration; the Client Secret is stored as a credential. Never put the secret in the configuration fields, tickets or chat.


3. Authorize the Connection​

The OAuth authorization must be completed by the customer while logged in to Exact Online as the dedicated integration user. The access token inherits the rights of the user who authorizes.

  1. Ask the customer to log out of any administrator or personal Exact Online session and log in as the dedicated user.
  2. The customer clicks Authorize on the Exact Online integration in the Marketplace (or opens the authorization link we share).
  3. The customer is redirected to Exact Online, reviews the requested access and clicks Approve.
  4. The customer is returned to the Marketplace and a success notification is shown. The access and refresh tokens are now stored on the integration.

Note: If the authorization ends with a 401 or redirect error, the Redirect URI in the customer's app registration does not exactly match https://www.cm.com/app/marketplace/oauth/callback.


4. Webhooks (Automatic)​

No manual webhook configuration is needed. As soon as the integration has a valid token and a Division is configured, the Marketplace registers Exact Online webhook subscriptions for:

  • Accounts: customer created or changed.
  • SalesOrders: sales order created or changed.

When the integration is deleted, the Marketplace removes these webhook subscriptions again.

Note for Delivery Team: If the Division was empty during authorization, add it and click Save again; this triggers the webhook registration.


5. Token Refresh (Automatic)​

Exact Online access tokens are valid for 10 minutes and each refresh token can be used only once. The Marketplace refreshes the token automatically about every 10 minutes and stores the new refresh token every time. Temporary Exact Online outages are retried automatically.

Note for Delivery Team:

  • Never call the Exact Online token endpoint with the customer's credentials from another tool (Postman, scripts, other platforms). This uses up the refresh token and breaks the connection.
  • If the refresh chain stops (for example after the customer revoked the app or regenerated the secret), the customer must update the Client Secret if changed and authorize again.

6. Send the Data to CDP​

Configure the CDP side as described in the general guide:


Api Endpoints of Exact Online​

The webhook notification only contains the key of the changed record. The integration then reads the full record from the official Exact Online REST API:

PurposeEndpoint
Token (authorization code and refresh)POST /api/oauth2/token
Customer detailsGET /api/v1/{division}/crm/Accounts
Sales order headerGET /api/v1/{division}/salesorder/SalesOrders
Sales order linesGET /api/v1/{division}/salesorder/SalesOrderLines
Webhook subscriptions/api/v1/{division}/webhooks/WebhookSubscriptions

Official documentation: Exact Online REST API resources.

Limits: Exact Online allows about 60 API calls per minute per division and returns at most 60 records per page.


7. Current Limitations​

  • Only records created or changed after the connection is active are sent; there is no historical backfill.
  • The generic CRM lookup endpoints (customers, orders, orderDetails) used by MSC and HALO are not yet supported for Exact Online. Make sure the customer is aware of this.

8. Troubleshooting​

SymptomLikely causeAction
401 during authorizationRedirect URI mismatchCustomer fixes the Redirect URI in the app registration and authorizes again.
Token refresh fails with invalid_grantRefresh token already used, app revoked or secret regeneratedUpdate the Client Secret if changed; customer authorizes again.
No data arrivingDivision missing or wrong, or webhooks not registeredCheck the Division, click Save again to re-register webhooks, and test with a new or changed account.
403 when reading recordsThe authorizing user lacks rightsCustomer checks the rights of the dedicated user (View Accounts, View Sales orders, View Item details) and authorizes again.