ml-connector
VismaMicrosoft Power BI

Visma and Microsoft Power BI integration

Visma.net ERP holds your financial and operational data. Microsoft Power BI turns that data into dashboards and insights. The integration pulls your AP, AR, GL accounts, and transactions from Visma and pushes them into Power BI push datasets so your reports and dashboards reflect current business state without manual exports or data entry. Refresh your dashboards on schedule and keep finance and operations teams aligned on the real numbers.

How Visma works

Visma.net ERP is a cloud-based accounting and financial management platform covering AP/AR, purchasing, inventory, payroll, and project accounting, primarily used in the Nordic region. It exposes suppliers, supplier invoices, purchase orders, customers, customer invoices, GL accounts, dimensions, journal transactions, and timecards through REST APIs over HTTPS. Authentication uses OAuth2 with client credentials grant; each API call requires the ipp-company-id header to identify the tenant. Visma.net supports both webhooks and polling. Webhooks are configured per entity type and sent once with no automatic retry, while polling can use the lastModifiedDateTime query parameter for delta pulls, though test clients are rate-limited to 500 calls per hour per company.

How Microsoft Power BI works

Microsoft Power BI is a cloud-based analytics platform that visualizes data and enables sharing of business insights. Power BI accepts data through push datasets and the REST API, which allows you to create datasets, post rows to tables, trigger refreshes, and manage workspaces and reports. Authentication uses OAuth2 with service principal (client credentials); the service principal must be a Member or Admin on each workspace it accesses, and developer settings in the Power BI Admin portal must be enabled for service principal API access. Power BI does not send outbound webhooks or events. Push datasets require that the table schema (column names and data types) be defined before rows are posted.

What moves between them

Data flows from Visma to Power BI. ml-connector polls Visma.net on a schedule you set, reading supplier invoices, customer invoices, GL accounts, journal transactions, and other financial records. These are transformed into the column structure required by your Power BI push datasets and posted via the Power BI REST API. The push datasets update in near real-time, and you can optionally trigger a Power BI refresh to recalculate any dashboards or reports that depend on those datasets.

How ml-connector handles it

ml-connector stores both the Visma OAuth client credentials and the Power BI service principal credentials encrypted, refreshing the Visma token on demand and the Power BI token on a schedule before expiry. It polls Visma.net on your schedule, requesting only records modified since the last successful pull using lastModifiedDateTime to minimize bandwidth. Before posting to Power BI, ml-connector maps each Visma field to the correct Power BI column, handles any required data type conversions, and validates that the target table schema exists on the Power BI side. It batches rows for efficiency, handles rate-limit backoff when Visma or Power BI respond with 429 or 503, and logs every record posted so you can track lineage and replay any failed batch if a downstream Power BI refresh fails. The integration does not rely on Visma webhooks, since webhook delivery is not guaranteed and has no retry; it uses polling instead to ensure no data is missed.

A real-world example

A mid-sized Nordic manufacturing and distribution company uses Visma.net ERP for order-to-cash and procure-to-pay. The finance team builds dashboards in Power BI to track days payable outstanding, cash flow, supplier performance, and revenue trends, but they have been exporting AP and AR extracts from Visma by hand every week and uploading them to Power BI. With Visma and Power BI connected, invoices, payments, and GL postings sync automatically on a daily schedule, the dashboards refresh without manual intervention, and the finance controller has access to real-time AP aging and cash position without re-entering data or chasing exports. Month-end reporting starts with clean, current numbers already in Power BI.

What you can do

  • Push Visma supplier invoices, customer invoices, and payments to Power BI so your AP/AR dashboards stay current without manual exports.
  • Sync Visma GL accounts, dimensions, and journal transactions into Power BI tables for real-time financial dashboards and ledger analysis.
  • Poll Visma.net on your schedule using OAuth2 client credentials and tenant headers, with delta pulls to reduce bandwidth and API calls.
  • Map Visma fields to Power BI table schemas, validate data types, batch rows for efficiency, and log every record for full audit trail and replay.
  • Handle Power BI authentication as a service principal, refresh datasets on schedule, and back off on rate limits so your dashboards update reliably without throttling errors.

Questions

Which direction does data flow between Visma and Power BI?
Data flows from Visma to Power BI. ml-connector polls Visma.net for supplier invoices, customer invoices, GL accounts, and transactions, transforms them to match your Power BI table schemas, and posts the data to push datasets. Power BI is a reporting and analytics destination, not a source of truth, so no data flows back to Visma.
Does ml-connector rely on Visma webhooks for real-time updates?
No. Although Visma.net supports webhooks, they have one-time delivery with no automatic retry, which means messages can be lost. Instead, ml-connector uses polling with lastModifiedDateTime delta pulls on your schedule to ensure no records are missed, even if network issues occur.
How does ml-connector handle Power BI push dataset schema and authentication?
ml-connector requires that you define the table schema (column names and data types) in your Power BI workspace before the first data load. The service principal used for authentication must be a Member or Admin on the workspace. ml-connector validates the schema exists, maps Visma fields to the correct columns, and posts rows in batches via the REST API, refreshing credentials before they expire.

Related integrations

Connect Visma and Microsoft Power BI

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

Get started