curl --request GET \
--url 'https://api.business-os.de/v2/datev-rewe-read/bwa?geschaeftsjahrStartDatum=2025-01-01&einheit=monat&quelle=API' \
--header 'x-api-key: <api-key>'import requests
url = "https://api.business-os.de/v2/datev-rewe-read/bwa"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.business-os.de/v2/datev-rewe-read/bwa', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.business-os.de/v2/datev-rewe-read/bwa",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.business-os.de/v2/datev-rewe-read/bwa"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.business-os.de/v2/datev-rewe-read/bwa")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.business-os.de/v2/datev-rewe-read/bwa")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"verfuegbar": true,
"meta": {
"kontenrahmen": "SKR03",
"kontenrahmen_quelle": "inferiert_aus_kontenplan",
"kontonummer_laenge": 8,
"einheit": "monat",
"geschaeftsjahr": {
"jahr": 123,
"start": "2023-12-25"
},
"vorjahr": 123,
"letzte_periode_mit_daten": 12,
"waehrung": "EUR",
"disclaimer": "<string>",
"quelle": "<string>",
"mapping_version": "skr03-bwa-v1"
},
"perioden": [
{
"key": "2025-01",
"label": "Jan 2025",
"typ": "monat",
"periode_nr": 123,
"hat_daten": true
}
],
"zeilen": [
{
"key": "umsatz",
"label": "Umsatzerlöse",
"typ": "pos",
"ist_aggregat": true,
"werte": [
{
"wert": 123,
"vorperiode": {
"wert": 123,
"delta": 123,
"delta_pct": 123
},
"vorjahr": {
"wert": 123,
"delta": 123,
"delta_pct": 123
}
}
],
"jahr": {
"wert": 123,
"vorjahr": {
"wert": 123,
"delta": 123,
"delta_pct": 123
}
},
"formel": [
"<string>"
],
"konten": [
{
"kontonummer": "<string>",
"kontobeschriftung": "<string>",
"jahreswert": 123,
"bwa_position": "<string>"
}
]
}
],
"nicht_zugeordnet": {
"anzahl": 123,
"summe_jahr": 123,
"hinweis": "<string>",
"konten": [
{
"kontonummer": "<string>",
"kontobeschriftung": "<string>",
"jahreswert": 123,
"klasse": 123,
"grund": "<string>"
}
]
},
"kontrolle": {
"guv_konten_gesamt": 123,
"zugeordnet": 123,
"nicht_zugeordnet": 123,
"bestandskonten_ignoriert": 123,
"abdeckung_prozent": 100,
"jahresergebnis_bwa": 123
},
"business-os": {
"neuesGuthaben": 123
}
}BWA (Betriebswirtschaftliche Auswertung)
Aggregiert die Summen- und Saldenliste (aktuelles Geschäftsjahr + Vorjahr) zur DATEV-Standard-BWA Form 01 (“Kurzfristige Erfolgsrechnung”) mit standardisierter SKR03/SKR04-Zuordnung.
Perioden-orientierte Ausgabe je nach einheit (Monat/Quartal/Jahr) mit Veränderung zur Vorperiode (PoP) und zum Vorjahr (YoY) je Position.
Wichtig: Dies ist nicht die kanzleiindividuelle DATEV-BWA des Steuerberaters, sondern eine standardisierte Auswertung auf Basis der Summen- und Saldenliste — sie kann von der offiziellen BWA abweichen. Keine steuerliche Beratung.
Nur für Mandanten mit Kontenrahmen SKR03 oder SKR04 (sonst verfuegbar: false). Der Kontenrahmen wird automatisch aus dem Kontenplan erkannt.
Kosten: 1 Credit
curl --request GET \
--url 'https://api.business-os.de/v2/datev-rewe-read/bwa?geschaeftsjahrStartDatum=2025-01-01&einheit=monat&quelle=API' \
--header 'x-api-key: <api-key>'import requests
url = "https://api.business-os.de/v2/datev-rewe-read/bwa"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.business-os.de/v2/datev-rewe-read/bwa', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.business-os.de/v2/datev-rewe-read/bwa",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.business-os.de/v2/datev-rewe-read/bwa"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.business-os.de/v2/datev-rewe-read/bwa")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.business-os.de/v2/datev-rewe-read/bwa")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"verfuegbar": true,
"meta": {
"kontenrahmen": "SKR03",
"kontenrahmen_quelle": "inferiert_aus_kontenplan",
"kontonummer_laenge": 8,
"einheit": "monat",
"geschaeftsjahr": {
"jahr": 123,
"start": "2023-12-25"
},
"vorjahr": 123,
"letzte_periode_mit_daten": 12,
"waehrung": "EUR",
"disclaimer": "<string>",
"quelle": "<string>",
"mapping_version": "skr03-bwa-v1"
},
"perioden": [
{
"key": "2025-01",
"label": "Jan 2025",
"typ": "monat",
"periode_nr": 123,
"hat_daten": true
}
],
"zeilen": [
{
"key": "umsatz",
"label": "Umsatzerlöse",
"typ": "pos",
"ist_aggregat": true,
"werte": [
{
"wert": 123,
"vorperiode": {
"wert": 123,
"delta": 123,
"delta_pct": 123
},
"vorjahr": {
"wert": 123,
"delta": 123,
"delta_pct": 123
}
}
],
"jahr": {
"wert": 123,
"vorjahr": {
"wert": 123,
"delta": 123,
"delta_pct": 123
}
},
"formel": [
"<string>"
],
"konten": [
{
"kontonummer": "<string>",
"kontobeschriftung": "<string>",
"jahreswert": 123,
"bwa_position": "<string>"
}
]
}
],
"nicht_zugeordnet": {
"anzahl": 123,
"summe_jahr": 123,
"hinweis": "<string>",
"konten": [
{
"kontonummer": "<string>",
"kontobeschriftung": "<string>",
"jahreswert": 123,
"klasse": 123,
"grund": "<string>"
}
]
},
"kontrolle": {
"guv_konten_gesamt": 123,
"zugeordnet": 123,
"nicht_zugeordnet": 123,
"bestandskonten_ignoriert": 123,
"abdeckung_prozent": 100,
"jahresergebnis_bwa": 123
},
"business-os": {
"neuesGuthaben": 123
}
}Authorizations
Dein Business OS API Key. Erstelle einen unter app.business-os.de → API Keys.
Query Parameters
UUID der DATEV-Verbindung. Abrufbar über den /connections-Endpunkt des jeweiligen Moduls (z. B. GET /v2/datev-duo/connections).
"abbc18fd-ba5e-4dfd-afc4-9dec0c0ad145"
Mandanten-ID im Format <Beraternummer>-<Mandantennummer>. Nur nötig wenn die Connection mehrere Mandanten umfasst (Steuerberater-Account) und nicht der Default-Mandant gemeint ist. Ohne diesen Parameter nutzt DATEV den beim OAuth gewählten Default-Mandanten — der hat aber je nach Setup keine Export-Subscription, dann kommt 403 zurück.
"386587-29183"
Startdatum des Geschäftsjahrs (YYYY-MM-DD). Das Vorjahr (für YoY) wird automatisch abgeleitet.
Perioden-Granularität der Ausgabe. Default: monat.
monat, quartal, jahr Optionaler Override. Ohne Angabe wird der Kontenrahmen aus dem Kontenplan erkannt.
SKR03, SKR04 Kennzeichnung der Aufrufquelle für die Nutzungsanalyse. Standard bei Weglassen: API (direkter API-Aufruf). Für Automationen aus Make z. B. Make angeben.
"Make"
Response
BWA-Auswertung (oder verfuegbar: false bei nicht unterstütztem Kontenrahmen)
false, wenn der Kontenrahmen nicht SKR03/SKR04 ist oder keine Daten vorliegen.
Show child attributes
Show child attributes
Perioden-Achse (Spalten) gemäß einheit. Bei monat/quartal aus dem GJ-Start auf echte Monate gemappt.
Show child attributes
Show child attributes
BWA-Staffel in Reihenfolge. Konten-Zeilen tragen konten[], Aggregat-Zeilen formel[].
Show child attributes
Show child attributes
GuV-Konten ohne eindeutige BWA-Zuordnung (Edge-Cases). NICHT in den Summen enthalten.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes