Exact Online and Square integration
Exact Online manages your GL, customers, and purchase orders. Square processes payments and tracks sales. Connecting the two keeps your revenue records and GL in agreement. Customer payments captured in Square flow into Exact Online's AR records without re-keying, invoice status stays aligned across both systems, and your GL shows the revenue and cash accounts correctly posted. ml-connector handles the regional differences in Exact's API endpoints and the OAuth token refresh for both platforms.
What moves between them
The main flow is from Square into Exact Online. When a customer makes a payment in Square, ml-connector reads the payment record and the corresponding invoice, maps the Square customer to an Exact account, and creates or updates the corresponding AR entry in Exact Online. Sales order totals from Square Orders can also be synced to Exact Quotations or Sales Orders for revenue recognition. Customer master data is synchronized in both directions so changes to contact info, tax IDs, and payment terms stay aligned. Payment data flows one direction only since Exact Online is the system of record for GL posting; Square payments are read-only to ml-connector.
How ml-connector handles it
ml-connector stores OAuth credentials for both platforms encrypted and refreshes tokens automatically before expiry. Exact Online's regional base URL is per-customer configuration, and ml-connector fetches the division ID on first connect and caches it. Square customer IDs are mapped to Exact account IDs in a persistent mapping table, so repeated syncs match the same customer across platforms. When Square reports a payment, ml-connector fetches the full payment details and the associated invoice, maps the customer, and writes an Exact payment record to AR tracking. Invoice status changes in Square trigger updates to corresponding Exact invoice records when present. Because both platforms use OAuth 2.0, ml-connector monitors token expiry and refreshes each platform's token independently on a per-customer schedule. Error handling includes retries with exponential backoff for transient failures, and every record is logged with full audit trail for replay if a write to Exact fails partway through.
A real-world example
A small e-commerce business sells products through their Square point-of-sale and online store, and uses Exact Online for accounting and invoicing in their EU market. Before integration, the finance team manually exported payment reports from Square each week, matched them to customer invoices, and entered them into Exact Online by hand. Bank reconciliation took hours because cash receipts had to be matched with invoice numbers typed by hand. With Exact Online and Square connected, every payment and its matching invoice flow into Exact automatically, customer AR is updated in real time, and month-end close starts with AR already reconciled and revenue already posted to the GL. Manual matching is gone, and the owner can see cash flow and customer status across both systems instantly.
What you can do
- Sync Square customer payments into Exact Online AR records, mapped to the correct customer account and GL posting.
- Keep Exact Online customer master data aligned with Square customer updates across email, phone, and tax ID.
- Map Square sales order totals to Exact quotations and sales orders for revenue recognition and inventory planning.
- Authenticate both platforms' OAuth 2.0 tokens and refresh them automatically before expiry.
- Track all payment, invoice, and customer records with full audit trail and support replay if a downstream write fails.
Questions
- Which direction does data move between Exact Online and Square?
- The main flow is Square into Exact Online. Customer payments and invoice status move from Square into Exact for AR and GL posting. Customer master data such as contact info and tax ID is synchronized in both directions so changes stay aligned. GL account creation and supplier data remain in Exact Online only.
- How does the integration handle Exact Online's regional endpoints and division ID requirement?
- ml-connector accepts the Exact Online region-specific base URL per customer (Netherlands, Belgium, UK, Germany, France, Spain, or USA) and retrieves the division ID on first connection by calling the /api/v1/current/Me endpoint. The division ID is then cached and used in all subsequent API calls. If a customer's division ID changes, ml-connector detects it on the next token refresh and updates the cache.
- What happens if payment or customer data fails to write to Exact Online?
- ml-connector logs every record with full context and can replay the write if it fails. If Square records a payment but the write to Exact AR fails partway through, the payment is queued for retry with exponential backoff. The audit trail shows exactly which steps succeeded so you can diagnose the issue and correct it without losing data or creating duplicate entries.
Related integrations
More Exact Online integrations
Other systems that connect to Square
Connect Exact Online and Square
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started