ml-connector
VismaStampli

Visma and Stampli integration

Visma is your accounting and ERP backbone. Stampli is your AI-powered accounts payable hub. Connecting them keeps your invoices from capture to posting synchronized. Stampli processes supplier invoices through approval workflows and allocates them to GL accounts and cost centers, then ml-connector exports the approved invoices and payment records back into Visma's general ledger on schedule so no manual re-entry is needed. Vendor master data can also flow from Visma to Stampli to keep approval workflows and vendor lookups aligned.

How Visma works

Visma.net ERP is a cloud accounting platform covering financial management, AP/AR, purchasing, inventory, and payroll. It authenticates via OAuth 2.0 client credentials against Visma Connect, with a required ipp-company-id header on every API call for tenant scoping. Visma exposes suppliers, supplier invoices, purchase orders, GL accounts, dimensions, and journal transactions through a REST API. It supports both webhooks (one-time delivery without automatic retry) and polling via the lastModifiedDateTime query parameter on list endpoints. Webhook enablement is required at the company level.

How Stampli works

Stampli is an AI-powered AP automation platform that covers invoice capture, approval workflows, PO matching, vendor management, and payment execution. Unlike typical ERP platforms, Stampli has no public REST API and integrates only through SFTP file-based integration using CSV or XML templates. Credentials are raw SFTP (hostname, port, username, password). Stampli polls its outbound directory for new exported invoices and payments with a refresh cycle of approximately 5 minutes for invoices and GL account changes, and Stampli exports approved invoices and payment records to that SFTP directory on completion of approval workflows.

What moves between them

The main flow runs from Stampli back into Visma. After invoices are approved within Stampli, ml-connector polls the Stampli SFTP outbound directory for exported approved invoice batches and payment records, typically on a daily or per-approval-cycle cadence. It transforms each Stampli invoice and payment record into a Visma journal transaction, mapped to the matching GL accounts and cost centers that already exist in Visma. The flow is unidirectional from Stampli to Visma; Visma is read-only during the posting cycle. Vendor master data can optionally flow the opposite direction from Visma to Stampli via periodic SFTP export to ensure Stampli has the current approved vendor list.

How ml-connector handles it

ml-connector stores SFTP credentials encrypted and connects to Stampli's file server on a configurable polling interval. On each poll cycle, it reads newly exported invoice and payment CSV or XML files from the outbound directory. Each record carries a reference ID and approval status, so ml-connector can detect duplicates and skip re-posting the same invoice twice. For each approved invoice, ml-connector reads the GL account and cost center assigned within Stampli, validates that those dimensions exist in Visma using the Visma API, then constructs a journal transaction with the GL code and dimension mappings. It authenticates to Visma using OAuth 2.0 client credentials and includes the required ipp-company-id header on each API call. When a Visma POST call returns a conflict or validation error (mismatched dimension, missing GL account), ml-connector logs the failure with full context and can replay the transaction once the dimension is created in Visma. SFTP connection timeouts are retried with exponential backoff.

A real-world example

A mid-market Nordic services firm runs Visma for accounting, finance reporting, and vendor management, and has deployed Stampli to automate AP and eliminate manual invoice entry. Before the integration, the finance team received email notifications when invoices were approved in Stampli, then manually logged into Stampli, extracted the invoice details, and re-entered them into Visma's journal as AP entries. Month-end close required reconciliation between Stampli's approval log and Visma's posted invoices, and invoice re-entry errors were caught only after the close started. With Stampli and Visma connected via ml-connector, each approved invoice flows into Visma automatically and the AP aging report is always current. The finance team no longer re-enters invoices and can close the month a week earlier.

What you can do

  • Poll Stampli's SFTP outbound directory on a configurable schedule and post approved invoices and payments into Visma's general ledger.
  • Map Stampli invoice GL accounts and cost centers to Visma dimensions, validating that each dimension exists before posting.
  • Authenticate to Visma with OAuth 2.0 client credentials and handle the required ipp-company-id tenant header on all API calls.
  • Detect duplicate invoices using the Visma ETag and Stampli reference ID to prevent re-posting the same invoice twice.
  • Optionally export Visma's approved vendor master to Stampli via SFTP to keep vendor approval workflows and lookup tables in sync.

Questions

Why does Stampli require SFTP file integration instead of a REST API?
Stampli's public surface is file-based by design; the company does not publish a REST API for third-party integrators without a formal partnership agreement. ml-connector handles the SFTP polling and file parsing so you do not need to manage that complexity directly.
What happens if an invoice fails to post into Visma due to a missing GL account or cost center?
ml-connector logs the failure with the full invoice record and the dimension that was not found. Once you create the missing GL account or cost center in Visma, the invoice can be replayed using the stored audit record, and no data is lost.
Can vendor data flow from Visma to Stampli, or is the integration one direction?
The primary flow is Stampli to Visma for approved invoices. However, ml-connector can optionally export Visma's approved vendor list via SFTP on a periodic schedule so Stampli's approval workflows and vendor lookups stay aligned with the source of truth in Visma.

Related integrations

Connect Visma and Stampli

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

Get started