DATEV and AvidXchange integration
DATEV runs accounting and tax for German businesses. AvidXchange automates accounts payable, from invoice capture through approval and payment. Connecting the two means the invoices AvidXchange approves and the payments it settles land in DATEV as proper bookings without anyone re-keying them. ml-connector reads approved invoice and payment data out of AvidXchange and submits it to DATEV as EXTF CSV bookings or DXSO XML booking suggestions, with the invoice PDF attached in DATEV Unternehmen Online. Both systems are pull-only, so the work runs on a schedule you set.
What moves between them
The main flow runs from AvidXchange into DATEV. After invoices are coded and approved in AvidXchange, ml-connector reads them and submits the bookings into DATEV, either as EXTF CSV files to DATEV Rechnungswesen or as DXSO XML booking suggestions to DATEV Unternehmen Online, with the invoice PDF uploaded to DUO. Once AvidPay settles a payment, ml-connector reads the check, ACH, or virtual card detail and posts the matching payment booking into DATEV. In the other direction, vendor master records and the GL accounts you configure are pushed into AvidXchange so invoice coding stays valid. Because both systems are pull-only, the sync runs on a schedule rather than on push events, typically every fifteen to thirty minutes.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the DATEV side it completes the one-time PKCE consent, sends the Authorization and X-DATEV-Client-Id headers on every call, and refreshes the 15-minute token automatically using only the client_id. On the AvidXchange side it sends the Company Token and User Token as headers. Because neither system pushes events, both are polled on the schedule you set. Approved AvidXchange invoices map to EXTF CSV rows, with each line's GL code aligned to the configured DATEV debit and credit accounts and cost centers, since the DATEV chart of accounts cannot be pulled and must be mapped in advance. Settled payments map to payment bookings. EXTF files use UTF-8 with precomposed Unicode and deterministic filenames, since DATEV rejects duplicates by filename and document type, which makes re-submission retry-safe. Document types are fetched per client before any PDF upload. Job submissions are polled with exponential backoff until they complete, and every record carries a full audit trail and can be replayed if a call fails.
A real-world example
A German distribution company with around 250 staff runs DATEV through its tax advisor for statutory accounting and uses AvidXchange to capture and approve supplier invoices across several locations. Before the integration, the AP team approved invoices in AvidXchange and then re-typed every approved invoice and every settled payment into DATEV by hand, which slowed month-end close and produced posting errors the tax advisor had to chase. With DATEV and AvidXchange connected, each approved invoice flows into DATEV as a booking with its PDF attached, settled payments post automatically, and the GL codes stay aligned on both sides. The team stops re-keying, and the books are current when close begins.
What you can do
- Post approved AvidXchange invoices into DATEV as EXTF CSV bookings or DXSO XML booking suggestions.
- Attach each invoice PDF to DATEV Unternehmen Online alongside the booking.
- Read settled check, ACH, and virtual card payments from AvidXchange and post the matching DATEV payment bookings.
- Push vendor records and configured GL accounts into AvidXchange so invoice coding stays valid.
- Bridge AvidSuite company and user tokens to the DATEV PKCE login, with scheduled polling, retries, and a full audit trail.
Questions
- Which direction does data move between DATEV and AvidXchange?
- The main flow is AvidXchange into DATEV. Approved invoices and settled payments move from AvidXchange into DATEV as bookings, and the invoice PDF is uploaded to DATEV Unternehmen Online. In the other direction, vendor records and the GL accounts you configure are pushed into AvidXchange so invoice coding stays valid.
- Why does ml-connector poll instead of using webhooks?
- Neither system offers public webhooks. DATEV is pull-only and AvidXchange runs on a scheduled batch sync, so ml-connector polls both on the schedule you set, commonly every fifteen to thirty minutes. DATEV booking jobs are also asynchronous, so each submission is polled with exponential backoff until it completes or fails.
- How are GL accounts handled when DATEV will not expose its chart of accounts?
- DATEV does not return its full chart of accounts through the API, so the DATEV accounts and cost centers are mapped in advance during setup. ml-connector aligns each AvidXchange GL code to the configured DATEV debit and credit accounts before any booking is written, so every EXTF line lands on a valid account.
Related integrations
More DATEV integrations
Other systems that connect to AvidXchange
Connect DATEV and AvidXchange
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started