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:
- Log in to Marketplace.
- Navigate to the Integrations->CRM section.
- Find the Exact Online CRM, click on Create Integration and give an appropriate Integration Name.
- 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.
- 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.
- Ask the customer to log out of any administrator or personal Exact Online session and log in as the dedicated user.
- The customer clicks Authorize on the Exact Online integration in the Marketplace (or opens the authorization link we share).
- The customer is redirected to Exact Online, reviews the requested access and clicks Approve.
- 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
401or redirect error, the Redirect URI in the customer's app registration does not exactly matchhttps://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:
| Purpose | Endpoint |
|---|---|
| Token (authorization code and refresh) | POST /api/oauth2/token |
| Customer details | GET /api/v1/{division}/crm/Accounts |
| Sales order header | GET /api/v1/{division}/salesorder/SalesOrders |
| Sales order lines | GET /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
| Symptom | Likely cause | Action |
|---|---|---|
401 during authorization | Redirect URI mismatch | Customer fixes the Redirect URI in the app registration and authorizes again. |
Token refresh fails with invalid_grant | Refresh token already used, app revoked or secret regenerated | Update the Client Secret if changed; customer authorizes again. |
| No data arriving | Division missing or wrong, or webhooks not registered | Check the Division, click Save again to re-register webhooks, and test with a new or changed account. |
403 when reading records | The authorizing user lacks rights | Customer checks the rights of the dedicated user (View Accounts, View Sales orders, View Item details) and authorizes again. |