Meet us at Rethink! Accounting / CFO on 20.-21. April in Frankfurt

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

DATEV API is widely used for accounting integrations, but its reliance on CSV, XML, and batch processing makes it unnecessarily complex. This article covers the key differences between file formats, why batch processing is required, and why a unified API provider is the better alternative.

Author Image

Dr. Themo Voswinckel

March 30, 2026

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

Key Takeaways

  • DATEV does not support full account retrieval. Standard account numbers cannot be fetched, only user-created cash ledgers are accessible.
  • File format is determined by use case, not developer preference. XML is mandatory for DATEV Unternehmen Online, CSV for DATEV Rechnungswesen.
  • Data submission relies on batch jobs, not REST calls. Every submission requires creating, starting, polling, and evaluating a job.
  • Debugging is difficult by design. CSV files cannot be validated before upload, and XML requires strict schema validation against DATEV's XSD schemas.
  • A unified API provider like Maesn eliminates all of this. Submit data via JSON and standard REST calls, no file formats, no batch jobs, no manual validation.
  • 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 CaseFinalized bookingsBooking suggestions
    StructureFlat, tabularHierarchical, structured
    ValidationNoYes, via XSD schemas
    Manual DebuggingExtremely difficultPossible but tedious
    Error HandlingNo built-in validationRequires strict XSD compliance
    Processing Methodextf-jobsdxso-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.

    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 DataSend a simple JSON requestUpload XML or CSV as a batch job
    2. ProcessingImmediate responseJob is queued for later execution
    3. Status MonitoringNot needed (synchronous)Poll job status periodically
    4. Error HandlingImmediate feedbackMust 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 HandlingManually generate CSV/XMLSend JSON
    ValidationManual, strict, error-proneAutomated
    Batch Job ProcessingRequired (dxso/EXTF)Not needed
    Error HandlingManual, complexBuilt-in
    Ease of UseCounterintuitiveSimple 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.

    About the author

    Themo is CEO and Co-Founder of Maesn. With years in strategy consulting — spanning requirements engineering for complex software landscapes, ERP and accounting software selections, and end-to-end integration projects — he holds a Dr.-Ing. with a focus on ERP-to-SaaS transformation. He co-founded Maesn to make system integration effortless.

    Dr. Themo Voswinckel

    Co-Founder

    Frequently asked
    questions

    You have more questions? We are looking forward hearing from you - book a meeting now!

    What authentication methods does the DATEV API support?

    DATEV supports OAuth-based authentication and certificate-based authentication. Certificate-based authentication requires additional setup and is significantly more complex to implement.

    Can I retrieve a full list of accounts from the DATEV API?

    No. Standard account numbers cannot be retrieved at all. Account names are only available for user-created cash ledgers, making full account automation impossible with the native API.

    Do I get to choose between CSV and XML in DATEV?

    No. The format is determined by your use case. XML is required for DATEV Unternehmen Online, CSV is required for DATEV Rechnungswesen. Using the wrong format is not an option.

    What are dxso-jobs and EXTF-jobs?

    These are DATEV's batch processing mechanisms. dxso-jobs handle XML files for Unternehmen Online, EXTF-jobs handle CSV files for Rechnungswesen. Both require creating, starting, polling, and evaluating a job before you receive any result, with no immediate API response.

    Why is debugging so difficult with the DATEV API?

    CSV files cannot be validated before upload, meaning errors only surface after submission. XML files require strict schema validation upfront. If any step fails, the entire process must be restarted from scratch.

    How does Maesn simplify DATEV integration?

    Maesn eliminates file formats and batch jobs entirely. You submit data via standard JSON REST calls, and Maesn handles all XML or CSV generation, validation, and batch job processing in the backend.

    Kickstart your Integration Journey now