
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.
XML is for sending booking suggestions to DATEV Unternehmen Online (DUo).
CSV is for sending finalized bookings to DATEV Rechnungswesen (ReWe).
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:
Create a dxso-job with the XML file.
Start the job in DATEV's system.
Poll for status updates until processing is complete.
Retrieve and evaluate the results, checking for errors.
EXTF-Jobs: Processing CSV Files
Purpose: Used for processing CSV-based bookings in DATEV Rechnungswesen.
Process:
Create an EXTF-job and upload the CSV file.
Start the job and wait for DATEV to process the data.
Poll for the job status to see if it has completed.
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:
Create a dxso-job with the XML file.
Start the job in DATEV's system.
Poll for status updates until processing is complete.
Retrieve and evaluate the results, checking for errors.
EXTF-Jobs: Processing CSV Files
Purpose: Used for processing CSV-based bookings in DATEV Rechnungswesen.
Process:
Create an EXTF-job and upload the CSV file.
Start the job and wait for DATEV to process the data.
Poll for the job status to see if it has completed.
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
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.
Multiple Steps Required: Each batch job must be created, started, monitored, and evaluated separately, requiring additional logic and handling.
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
Retrieve Company ID (ClientID)
Fetch a list of all Company IDs and select one.
Retrieve Accounts (Limited Availability)
Only cash ledgers created by the user can be retrieved—no full account lists are available.
Verify Posting Rights
Ensure that the selected Company ID has the correct permissions.
Check Posting Period
Validate that bookings can be posted for the selected year and month.
Generate the XML File (if using Unternehmen Online)
Must contain expense data, account names, and all required fields.
Validate XML Against DATEV’s XSD Schemas
Ensures compliance with DATEV’s data structure requirements.
Upload the XML File via dxso-job
Submit the validated XML to DATEV’s processing system.
Generate & Validate document.xml (if attaching files)
This file contains metadata about uploaded files and must also be validated.
Upload document.xml
Submit metadata to DATEV.
Start Processing
The batch job is triggered once all files are correctly uploaded.
Periodically check the status of the job
The job must finish processing before the result of each individual booking suggestion is available.
Evaluate job results
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
Retrieve Company ID (ClientID)
Get a list of Company IDs and select one.
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.
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.