ml-connector
Exact OnlineStampli

Exact Online and Stampli integration

Exact Online handles procurement, invoicing, and ledger records across European SMEs. Stampli automates the invoice approval and payment process end to end. Connecting them keeps your purchase orders, invoices, and payment status synchronized without manual re-entry between systems. New invoices from Exact Online feed directly into Stampli's matching workflow, and when Stampli marks an invoice as approved and scheduled for payment, ml-connector posts the settlement back to Exact Online's ledger.

How Exact Online works

Exact Online is a cloud ERP platform that covers accounting, purchasing, sales, inventory, and HR for SMEs across Europe and the USA. It exposes purchase orders, purchase invoices, purchase invoice lines, suppliers, GL accounts, cost centers, and payments through a REST API with OAuth 2.0 Authorization Code Grant authentication. Access tokens expire after 10 minutes and refresh tokens rotate every 30 days. Exact Online publishes webhooks for a broad set of topics including PurchaseOrders and PurchaseInvoices, with HMAC-SHA256 signature verification and automatic retries, though webhook payloads carry only the entity key and action, so full entity data must be fetched separately. All calls require a division ID, retrieved from the /current/Me endpoint. Exact Online operates on region-specific base URLs, so there is no single shared hostname.

How Stampli works

Stampli is an AI-powered accounts payable automation platform that handles invoice capture, approval workflows, PO matching, vendor management, and payment execution. Stampli does not publish a public REST API; file-based integration via SFTP is the only path available to third-party developers. Customers authenticate SFTP using hostname, port, username, and password credentials, with no OAuth2 or API key alternative. Stampli does not offer sandbox environments to third parties; testing must be coordinated with Stampli support on a live account. There are no documented public webhooks, rate limits, or pagination rules. Integration is polling-only: customers must check Stampli's outbound SFTP directory at a defined interval to retrieve invoice status and payment files. Internal sync times are approximately 5 minutes for invoices and GL accounts, and 2 hours for purchase orders.

What moves between them

The primary flow is from Exact Online into Stampli. ml-connector reads purchase orders and invoices from Exact Online on a polling schedule aligned with your accounts payable cycle, converts them to CSV format, and delivers them to Stampli's SFTP inbound directory. Stampli's matching and approval engine processes the files internally. When Stampli approves an invoice for payment, ml-connector polls Stampli's outbound SFTP directory for payment status files, parses them, and posts the corresponding settlement and payment records back into Exact Online's purchase invoice ledger. Reference data such as GL accounts and vendors is aligned so that Stampli's coding and approvals map cleanly to Exact Online dimensions.

How ml-connector handles it

ml-connector stores SFTP credentials encrypted and connects to Stampli's outbound and inbound directories on a configurable polling interval. On the Exact Online side, it uses OAuth2 bearer tokens with automatic refresh every 10 minutes, and stores the division ID per customer. Because Exact Online publishes webhooks for purchase invoices, ml-connector can subscribe to those notifications for near-real-time awareness of new POs and invoice changes, supplemented by polling for recovery and dedup. Exact Online has no expand parameter, so related entities like invoice lines and GL account details are fetched in separate API calls. When converting Exact Online invoices to Stampli CSV, ml-connector maps invoice line amounts to the GL accounts specified in Exact Online and tags vendor information from the supplier record so Stampli's matching engine can pair invoices with POs. On the return leg, when Stampli files indicate an invoice is approved, ml-connector fetches the full payment details from Exact Online's payment endpoint, validates that the GL account and cost center exist, and posts the settlement record. Both the push into Stampli's SFTP and the pull from Stampli's outbound directory carry a jobId for dedup, so network retries and duplicate files do not create duplicate records. Every record is logged with full context for audit and replay if needed.

A real-world example

A mid-sized distribution company in the Netherlands runs Exact Online for purchasing, invoicing, and ledger management across two warehouses and a head office. They use Stampli for AP automation and invoice approval workflows. Before the integration, the AP team received invoices in Exact Online, re-entered them into Stampli by hand or via email forwards, then tracked approvals in Stampli and manually posted payment records back into Exact Online for reconciliation and GL posting. With Exact Online and Stampli connected, invoices flow automatically from Exact Online into Stampli's matching and approval queue, Stampli's approvals are fed back to Exact Online without re-keying, and the GL ledger is updated in sync with the payment schedule. Month-end close is faster because invoice and payment records are already aligned, and the manual hand-off between the two systems is eliminated.

What you can do

  • Sync purchase orders and invoices from Exact Online to Stampli via scheduled SFTP delivery, preserving vendor and GL account coding.
  • Fetch payment approvals from Stampli's SFTP outbound directory and post settlement records into Exact Online's purchase invoice ledger.
  • Bridge OAuth2 authentication on Exact Online with SFTP credentials for Stampli, refreshing tokens and maintaining encrypted credential storage.
  • Implement idempotent polling of both systems with dedup logic so network retries and duplicate files do not create duplicate records.
  • Maintain a complete audit trail of every invoice, approval, and payment record with replay capability if a downstream posting fails.

Questions

How does ml-connector move data between Exact Online and Stampli if Stampli has no public REST API?
Stampli exposes file-based integration via SFTP, with separate inbound and outbound directories. ml-connector reads purchase orders and invoices from Exact Online's REST API, converts them to CSV format, and writes them to Stampli's SFTP inbound directory on a schedule. On the return leg, it polls Stampli's outbound SFTP directory for payment status files, parses them, and posts settlement records back to Exact Online via REST.
How are vendors and GL accounts mapped between Exact Online and Stampli?
ml-connector retrieves the supplier record from Exact Online's Accounts endpoint (filtered by IsSupplier=true), along with the GL accounts from each invoice line, and includes both in the CSV delivered to Stampli. When Stampli approves an invoice, ml-connector validates that the GL account and cost center specified in Exact Online exist before posting the payment record, so approvals land on valid dimensions.
What happens if Exact Online's OAuth2 token expires or Stampli's SFTP credentials change?
ml-connector refreshes Exact Online's bearer token every 10 minutes automatically, and rotates refresh tokens as required by Exact Online's 30-day expiry window. SFTP credentials are stored encrypted and updated on-demand if a customer rotates them. Both systems use dedup logic so temporary connection failures do not result in duplicate records or incomplete postings.

Related integrations

Connect Exact Online and Stampli

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started