top of page
maesn 2.png

DATEV API Data Formats Explained: CSV, XML, and How to Avoid Them with a Unified API

Writer's picture: Dr. Themo Voswinckel ⎪Co-Founder Dr. Themo Voswinckel ⎪Co-Founder

Picture showing datev file formats for API import

DATEV API is widely used for financial and accounting integrations, but its reliance on CSV and XML makes it unnecessarily complicated. Many developers struggle with manual file generation, validation, and batch processing, leading to inefficiencies and errors. For SaaS this becomes a problem, as many leave out the crucial DATEV integration.

This article clarifies:
  • The difference between CSV and XML
  • Why DATEV requires batch processing
  • Why using a unified API provider is the best available alternative


DATEV API Authentication & Data Access Limitations

Before retrieving or sending data, authentication is required. DATEV API supports multiple authentication methods, such as:


  • OAuth-based authentication (common in modern APIs).

  • Certificate-based authentication (complex and requiring setup).


However, data retrieval is extremely limited within DATEV's API. The table below explains this. As you can see:


  • No endpoint exists for fetching account numbers.

  • Even account names are only available for user-created cash ledgers.


This means that a full list of accounts (including standard ones) cannot be retrieved—a major limitation for automation.

Data Type

Retrievable?

Limitations

Account Numbers

❌ No

Not available via API.

Account Names

⚠️ Partially

Only for cash ledgers created by the user.

Client (Company) IDs

✅ Yes

Called "ClientID" in DATEV.



Understanding DATEV API File Formats: CSV vs. XML

A common misconception is that developers can choose between CSV and XML for DATEV integration. This is not the case.

If you are working with DATEV Unternehmen Online, you must use XML. If you are working with DATEV Rechnungswesen, you must use CSV.

Feature

CSV (for ReWe)

XML (for DUo)

Use Case

Finalized bookings

Booking suggestions

Structure

Flat, tabular

Hierarchical, structured

Validation

No

Yes, via XSD schemas

Manual Debugging

Extremely difficult

Possible but tedious

Error Handling

No built-in validation

Requires strict XSD compliance

Processing Method

extf-jobs

dxso-jobs


Extra Tipps on DATEV API file formats

  • CSV files cannot be validated before upload, making debugging extremely difficult.

  • XML files require strict schema validation, which is complex and time-consuming.

  • Both file types must be uploaded via batch job processing (extf for CSV, dxso for XML), a non-intuitive process.


 

Batch Processing in DATEV API: dxso-Jobs and EXTF-Jobs

When integrating with DATEV API, data cannot be submitted through simple REST API calls. Instead, DATEV relies on batch processing mechanisms, which require job creation, execution, and monitoring. This adds significant complexity to the integration process.


What Are dxso-Jobs and EXTF-Jobs?


dxso-Jobs: Processing XML Files

  • Purpose: Used for processing XML-based booking suggestions in DATEV Unternehmen Online.

  • Process:

    1. Create a dxso-job with the XML file.

    2. Start the job in DATEV's system.

    3. Poll for status updates until processing is complete.

    4. Retrieve and evaluate the results, checking for errors.


EXTF-Jobs: Processing CSV Files

  • Purpose: Used for processing CSV-based bookings in DATEV Rechnungswesen.

  • Process:

    1. Create an EXTF-job and upload the CSV file.

    2. Start the job and wait for DATEV to process the data.

    3. Poll for the job status to see if it has completed.

    4. Retrieve processing results and check for any validation errors.



Batch Processing in DATEV API: dxso-Jobs and EXTF-Jobs

When integrating with DATEV API, data cannot be submitted through simple REST API calls. Instead, DATEV relies on batch processing mechanisms, which require job creation, execution, and monitoring. This adds significant complexity to the integration process.



 

What Are dxso-Jobs and EXTF-Jobs?

dxso-Jobs: Processing XML Files

  • Purpose: Used for processing XML-based booking suggestions in DATEV Unternehmen Online.

  • Process:

    1. Create a dxso-job with the XML file.

    2. Start the job in DATEV's system.

    3. Poll for status updates until processing is complete.

    4. Retrieve and evaluate the results, checking for errors.


EXTF-Jobs: Processing CSV Files

  • Purpose: Used for processing CSV-based bookings in DATEV Rechnungswesen.

  • Process:

    1. Create an EXTF-job and upload the CSV file.

    2. Start the job and wait for DATEV to process the data.

    3. Poll for the job status to see if it has completed.

    4. Retrieve processing results and check for any validation errors.


 

Why Batch Processing Makes DATEV API Integration Difficult

Unlike modern APIs that use stateless REST calls, DATEV’s batch processing system requires a structured workflow:


Step

Normal REST API Call

DATEV Batch Processing (dxso/EXTF-Jobs)

1. Submit Data

Send a simple JSON request

Upload XML or CSV as a batch job

2. Processing

Immediate response

Job is queued for later execution

3. Status Monitoring

Not needed (synchronous)

Poll job status periodically

4. Error Handling

Immediate feedback

Must retrieve job logs manually


Challenges Developers Face

  1. Asynchronous Processing: Since batch jobs are processed in the background, there is no immediate response. Developers must continuously poll the job status to check for completion.

  2. Multiple Steps Required: Each batch job must be created, started, monitored, and evaluated separately, requiring additional logic and handling.

  3. Difficult Debugging: If an error occurs, developers must retrieve and analyze job logs manually, rather than receiving immediate API error messages.



 

Steps to Post Booking Suggestions (Cash Ledger) Using DATEV API

DATEV’s API requires a multi-step process to post financial data into the cash ledger.


Step-by-Step Process Using DATEV API

  1. Retrieve Company ID (ClientID)

    • Fetch a list of all Company IDs and select one.

  2. Retrieve Accounts (Limited Availability)

    • Only cash ledgers created by the user can be retrieved—no full account lists are available.

  3. Verify Posting Rights

    • Ensure that the selected Company ID has the correct permissions.

  4. Check Posting Period

    • Validate that bookings can be posted for the selected year and month.

  5. Generate the XML File (if using Unternehmen Online)

    • Must contain expense data, account names, and all required fields.

  6. Validate XML Against DATEV’s XSD Schemas

    • Ensures compliance with DATEV’s data structure requirements.

  7. Upload the XML File via dxso-job

    • Submit the validated XML to DATEV’s processing system.

  8. Generate & Validate document.xml (if attaching files)

    • This file contains metadata about uploaded files and must also be validated.

  9. Upload document.xml

    • Submit metadata to DATEV.

  10. Start Processing

  11. The batch job is triggered once all files are correctly uploaded.

  12. Periodically check the status of the job

  13. The job must finish processing before the result of each individual booking suggestion is available.

  14. Evaluate job results

  15. Once the status indicates that the job has completed, either successfully, partially successful or failed, feedback can be given to the end user with the appropriate call to action


Problems with This Approach

  • Manually generating and validating XML files is extremely tedious.

  • Submitting data via batch jobs is counter-intuitive and difficult to debug.

  • If any validation fails, the entire process must be restarted.


 

A Unified API Provider: No CSV, No XML, No Batch Jobs—Just JSON

A unified API provider eliminates these complexities by allowing businesses to submit data using JSON and standard REST API calls—without dealing with DATEV’s rigid file formats and batch job processing.


Step-by-Step Process Using a Unified API

  1. Retrieve Company ID (ClientID)

    • Get a list of Company IDs and select one.


  2. Retrieve Accounts (Same Limitations as DATEV API)

    • A unified API provider cannot offer more account details than DATEV but does provide an easier way to access them.


  3. Create Expenses in One Step

    • Use the Create Expenses Endpoint, sending:

      • Selected Company ID

      • Chosen Account

      • All required financial data

      • (Optional) Attach supporting files


 

Key Benefits of a Unified API Provider

Feature

DATEV API

Unified API Provider

File Handling

Manually generate CSV/XML

Send JSON

Validation

Manu

al, strict, error-prone

Automated

Batch Job Processing

Required (dxso/EXTF)

Not needed

Error Handling

Manual, complex

Built-in

Ease of Use

Counterintuitive

Simple REST API calls


Why a Unified API Provider is the Better Choice

No more XML validation pain—just send JSON like any other modern API.

No more un-debuggable CSV files—all data is structured and validated automatically.

No more batch job processing—just use normal REST API calls.


Conclusion

Working with DATEV API requires using either CSV or XML, depending on the use case. Developers cannot choose between them—they must follow DATEV’s strict format requirements.


However, by using a unified API provider, businesses can:

  • Skip CSV and XML entirely.

  • Submit data via JSON.

  • Eliminate the need for batch jobs.


A unified API provider is the clear winner for businesses looking to simplify their DATEV integration.


Would you like to explore how a unified API can optimize your accounting workflows? Let’s discuss how to make your integration seamless.

Browse more

DATEV API visual
Your SaaS
Maesn's magic