DATEV and Microsoft Power BI integration
DATEV is the accounting backend for German and Austrian businesses, and Microsoft Power BI is where their numbers turn into dashboards. This connection reads the client companies and document metadata DATEV exposes, together with the booking batches and document uploads ml-connector stages for DATEV, and pushes that data into Power BI datasets so analysts can report on it. Because DATEV does not return posted journal entries through its API, the integration reports on the readable client and document data and on what the connector submitted, rather than reading the on-premise ledger back. ml-connector handles the very different authentication on each side and moves the data on a schedule you control.
What moves between them
Data moves from DATEV into Microsoft Power BI. ml-connector reads the DATEV client list and per-client document metadata, and it captures the booking batches and document uploads it stages for DATEV, then maps those records into Power BI table schemas and POSTs them as rows into push datasets. Client companies become one table, document records another, and booking-batch lines a third, each carrying fields such as client number, document type, GL account, cost center, amount, and document date. The cadence is scheduled, typically tied to your booking and upload runs, because DATEV emits no events and Power BI accepts no inbound webhooks. Power BI is treated as read-only reporting, so ml-connector never writes anything back into DATEV from Power BI.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the DATEV side it carries the OAuth bearer token from the interactive Login mit DATEV session, refreshes it before the 900-second access token expires by sending client_id only, and adds the X-DATEV-Client-Id header to every request. On the Power BI side it requests a service principal token with the analysis.windows.net/powerbi/api/.default scope, refreshes it near its one-hour expiry, and resolves the target workspace name to a group GUID once at setup. Because DATEV exposes no posted journals or chart of accounts, the connector reports on what it can actually see: the client list, document metadata fetched after calling document-types per client, and the EXTF and DXSO batches it submitted, including their async job status from polling. Rows are pushed within Power BI limits, batched under 10,000 rows per POST, and duplicates are avoided by deleting and replacing a table or tracking a watermark, since push datasets are append-only. A failed push is retried with backoff on a Power BI 429, and every record carries a full audit trail and can be replayed.
A real-world example
A regional German manufacturing firm with about 200 staff keeps its books in DATEV through its Steuerberater and wants a live finance dashboard the controller can open without waiting for a monthly export. Before the integration, someone pulled figures out of DATEV by hand and pasted them into spreadsheets, so the dashboard was always weeks behind and the document backlog was invisible until close. With DATEV and Microsoft Power BI connected, the client and document records and each submitted booking batch flow into a Power BI dataset on a schedule, so the controller sees invoice volumes, document types, and posting activity refresh on their own. The manual export step is gone, and the team can spot a stalled upload or a spike in incoming invoices the same day it happens.
What you can do
- Push DATEV client company and document metadata into Microsoft Power BI datasets for reporting.
- Stage DATEV EXTF and DXSO booking batches and push their lines and job status into Power BI tables.
- Bridge DATEV's interactive Login mit DATEV OAuth session and Power BI's Entra service principal credentials.
- Map DATEV client numbers, GL accounts, and cost centers to Power BI table columns.
- Push on a schedule within Power BI row limits, with retries and a full audit trail on every record.
Questions
- Which direction does data move between DATEV and Microsoft Power BI?
- Data moves from DATEV into Microsoft Power BI. ml-connector reads the DATEV client list and document metadata and captures the booking batches it stages for DATEV, then pushes that data into Power BI datasets. Power BI is a reporting destination with no finance records of its own, so the connector never writes anything from Power BI back into DATEV.
- Can the integration report on posted journal entries from DATEV?
- No, because DATEV's API does not return posted journal entries or the full chart of accounts. Finalized EXTF bookings are write-only to the on-premise Rechnungswesen engine and cannot be read back. The connector instead reports on the readable client and document data and on the booking batches it submitted, including the async job status it gets by polling.
- How does the connector handle authentication on each side?
- DATEV requires an interactive Login mit DATEV OAuth session with PKCE, so a user authorizes access once and ml-connector then refreshes the short-lived 15-minute token automatically using the client_id. Power BI uses a Microsoft Entra service principal with client credentials and the Power BI .default scope, which must be granted Member or Admin rights on the target workspace. ml-connector stores both credential sets encrypted and keeps each token current.
Related integrations
More DATEV integrations
Other systems that connect to Microsoft Power BI
Connect DATEV and Microsoft Power BI
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started