curl --request POST \
--url https://api.business-os.de/v2/datev-duo/buchungsvorschlag \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"belegdatum": "2025-03-01T00:00:00Z",
"waehrung": "EUR",
"rechnungsordner": "Eingangsrechnungen",
"belegnummer": "RE-2025-001",
"betrag": 119,
"positionen": [
{
"betrag": 119,
"belegtext": "Büromaterial",
"steuersatzProzent": 19,
"skontoBetrag": 123,
"skontoProzent": 123,
"skontoBetrag2": 123,
"skontoProzent2": 123,
"kontoname": "<string>",
"kontonummer": 123,
"buSchluessel": "<string>",
"kostenstelle1": "Marketing",
"kostenstelle2": "IT-Abteilung"
}
],
"belegtyp": "EINGANGSRECHNUNG",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"adressen": [
{
"stadt": "<string>"
}
],
"bankkontonummer": 123,
"bankleitzahl": "<string>",
"bic": "DEUTDEFF",
"iban": "DE89370400440532013000",
"kontaktKontonummer": 123,
"kontaktName": "<string>",
"lieferdatum": "2023-11-07T05:31:56Z",
"faelligkeitsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum2": "2023-11-07T05:31:56Z",
"zahlungsdatum": "2023-11-07T05:31:56Z",
"istZahlungsauftrag": true,
"notizen": "<string>",
"bestellId": "<string>",
"zahlungsbedingungenId": "<string>",
"ustId": "<string>",
"belegbilder": [
{
"content": "<string>",
"dateiname": "rechnung.pdf"
}
]
}
'import requests
url = "https://api.business-os.de/v2/datev-duo/buchungsvorschlag"
payload = {
"belegdatum": "2025-03-01T00:00:00Z",
"waehrung": "EUR",
"rechnungsordner": "Eingangsrechnungen",
"belegnummer": "RE-2025-001",
"betrag": 119,
"positionen": [
{
"betrag": 119,
"belegtext": "Büromaterial",
"steuersatzProzent": 19,
"skontoBetrag": 123,
"skontoProzent": 123,
"skontoBetrag2": 123,
"skontoProzent2": 123,
"kontoname": "<string>",
"kontonummer": 123,
"buSchluessel": "<string>",
"kostenstelle1": "Marketing",
"kostenstelle2": "IT-Abteilung"
}
],
"belegtyp": "EINGANGSRECHNUNG",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"adressen": [{ "stadt": "<string>" }],
"bankkontonummer": 123,
"bankleitzahl": "<string>",
"bic": "DEUTDEFF",
"iban": "DE89370400440532013000",
"kontaktKontonummer": 123,
"kontaktName": "<string>",
"lieferdatum": "2023-11-07T05:31:56Z",
"faelligkeitsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum2": "2023-11-07T05:31:56Z",
"zahlungsdatum": "2023-11-07T05:31:56Z",
"istZahlungsauftrag": True,
"notizen": "<string>",
"bestellId": "<string>",
"zahlungsbedingungenId": "<string>",
"ustId": "<string>",
"belegbilder": [
{
"content": "<string>",
"dateiname": "rechnung.pdf"
}
]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
belegdatum: '2025-03-01T00:00:00Z',
waehrung: 'EUR',
rechnungsordner: 'Eingangsrechnungen',
belegnummer: 'RE-2025-001',
betrag: 119,
positionen: [
{
betrag: 119,
belegtext: 'Büromaterial',
steuersatzProzent: 19,
skontoBetrag: 123,
skontoProzent: 123,
skontoBetrag2: 123,
skontoProzent2: 123,
kontoname: '<string>',
kontonummer: 123,
buSchluessel: '<string>',
kostenstelle1: 'Marketing',
kostenstelle2: 'IT-Abteilung'
}
],
belegtyp: 'EINGANGSRECHNUNG',
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
adressen: [{stadt: '<string>'}],
bankkontonummer: 123,
bankleitzahl: '<string>',
bic: 'DEUTDEFF',
iban: 'DE89370400440532013000',
kontaktKontonummer: 123,
kontaktName: '<string>',
lieferdatum: '2023-11-07T05:31:56Z',
faelligkeitsdatum: '2023-11-07T05:31:56Z',
skontoZahlungsdatum: '2023-11-07T05:31:56Z',
skontoZahlungsdatum2: '2023-11-07T05:31:56Z',
zahlungsdatum: '2023-11-07T05:31:56Z',
istZahlungsauftrag: true,
notizen: '<string>',
bestellId: '<string>',
zahlungsbedingungenId: '<string>',
ustId: '<string>',
belegbilder: [{content: '<string>', dateiname: 'rechnung.pdf'}]
})
};
fetch('https://api.business-os.de/v2/datev-duo/buchungsvorschlag', 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-duo/buchungsvorschlag",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'belegdatum' => '2025-03-01T00:00:00Z',
'waehrung' => 'EUR',
'rechnungsordner' => 'Eingangsrechnungen',
'belegnummer' => 'RE-2025-001',
'betrag' => 119,
'positionen' => [
[
'betrag' => 119,
'belegtext' => 'Büromaterial',
'steuersatzProzent' => 19,
'skontoBetrag' => 123,
'skontoProzent' => 123,
'skontoBetrag2' => 123,
'skontoProzent2' => 123,
'kontoname' => '<string>',
'kontonummer' => 123,
'buSchluessel' => '<string>',
'kostenstelle1' => 'Marketing',
'kostenstelle2' => 'IT-Abteilung'
]
],
'belegtyp' => 'EINGANGSRECHNUNG',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'adressen' => [
[
'stadt' => '<string>'
]
],
'bankkontonummer' => 123,
'bankleitzahl' => '<string>',
'bic' => 'DEUTDEFF',
'iban' => 'DE89370400440532013000',
'kontaktKontonummer' => 123,
'kontaktName' => '<string>',
'lieferdatum' => '2023-11-07T05:31:56Z',
'faelligkeitsdatum' => '2023-11-07T05:31:56Z',
'skontoZahlungsdatum' => '2023-11-07T05:31:56Z',
'skontoZahlungsdatum2' => '2023-11-07T05:31:56Z',
'zahlungsdatum' => '2023-11-07T05:31:56Z',
'istZahlungsauftrag' => true,
'notizen' => '<string>',
'bestellId' => '<string>',
'zahlungsbedingungenId' => '<string>',
'ustId' => '<string>',
'belegbilder' => [
[
'content' => '<string>',
'dateiname' => 'rechnung.pdf'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.business-os.de/v2/datev-duo/buchungsvorschlag"
payload := strings.NewReader("{\n \"belegdatum\": \"2025-03-01T00:00:00Z\",\n \"waehrung\": \"EUR\",\n \"rechnungsordner\": \"Eingangsrechnungen\",\n \"belegnummer\": \"RE-2025-001\",\n \"betrag\": 119,\n \"positionen\": [\n {\n \"betrag\": 119,\n \"belegtext\": \"Büromaterial\",\n \"steuersatzProzent\": 19,\n \"skontoBetrag\": 123,\n \"skontoProzent\": 123,\n \"skontoBetrag2\": 123,\n \"skontoProzent2\": 123,\n \"kontoname\": \"<string>\",\n \"kontonummer\": 123,\n \"buSchluessel\": \"<string>\",\n \"kostenstelle1\": \"Marketing\",\n \"kostenstelle2\": \"IT-Abteilung\"\n }\n ],\n \"belegtyp\": \"EINGANGSRECHNUNG\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"adressen\": [\n {\n \"stadt\": \"<string>\"\n }\n ],\n \"bankkontonummer\": 123,\n \"bankleitzahl\": \"<string>\",\n \"bic\": \"DEUTDEFF\",\n \"iban\": \"DE89370400440532013000\",\n \"kontaktKontonummer\": 123,\n \"kontaktName\": \"<string>\",\n \"lieferdatum\": \"2023-11-07T05:31:56Z\",\n \"faelligkeitsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum2\": \"2023-11-07T05:31:56Z\",\n \"zahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"istZahlungsauftrag\": true,\n \"notizen\": \"<string>\",\n \"bestellId\": \"<string>\",\n \"zahlungsbedingungenId\": \"<string>\",\n \"ustId\": \"<string>\",\n \"belegbilder\": [\n {\n \"content\": \"<string>\",\n \"dateiname\": \"rechnung.pdf\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.business-os.de/v2/datev-duo/buchungsvorschlag")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"belegdatum\": \"2025-03-01T00:00:00Z\",\n \"waehrung\": \"EUR\",\n \"rechnungsordner\": \"Eingangsrechnungen\",\n \"belegnummer\": \"RE-2025-001\",\n \"betrag\": 119,\n \"positionen\": [\n {\n \"betrag\": 119,\n \"belegtext\": \"Büromaterial\",\n \"steuersatzProzent\": 19,\n \"skontoBetrag\": 123,\n \"skontoProzent\": 123,\n \"skontoBetrag2\": 123,\n \"skontoProzent2\": 123,\n \"kontoname\": \"<string>\",\n \"kontonummer\": 123,\n \"buSchluessel\": \"<string>\",\n \"kostenstelle1\": \"Marketing\",\n \"kostenstelle2\": \"IT-Abteilung\"\n }\n ],\n \"belegtyp\": \"EINGANGSRECHNUNG\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"adressen\": [\n {\n \"stadt\": \"<string>\"\n }\n ],\n \"bankkontonummer\": 123,\n \"bankleitzahl\": \"<string>\",\n \"bic\": \"DEUTDEFF\",\n \"iban\": \"DE89370400440532013000\",\n \"kontaktKontonummer\": 123,\n \"kontaktName\": \"<string>\",\n \"lieferdatum\": \"2023-11-07T05:31:56Z\",\n \"faelligkeitsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum2\": \"2023-11-07T05:31:56Z\",\n \"zahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"istZahlungsauftrag\": true,\n \"notizen\": \"<string>\",\n \"bestellId\": \"<string>\",\n \"zahlungsbedingungenId\": \"<string>\",\n \"ustId\": \"<string>\",\n \"belegbilder\": [\n {\n \"content\": \"<string>\",\n \"dateiname\": \"rechnung.pdf\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.business-os.de/v2/datev-duo/buchungsvorschlag")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"belegdatum\": \"2025-03-01T00:00:00Z\",\n \"waehrung\": \"EUR\",\n \"rechnungsordner\": \"Eingangsrechnungen\",\n \"belegnummer\": \"RE-2025-001\",\n \"betrag\": 119,\n \"positionen\": [\n {\n \"betrag\": 119,\n \"belegtext\": \"Büromaterial\",\n \"steuersatzProzent\": 19,\n \"skontoBetrag\": 123,\n \"skontoProzent\": 123,\n \"skontoBetrag2\": 123,\n \"skontoProzent2\": 123,\n \"kontoname\": \"<string>\",\n \"kontonummer\": 123,\n \"buSchluessel\": \"<string>\",\n \"kostenstelle1\": \"Marketing\",\n \"kostenstelle2\": \"IT-Abteilung\"\n }\n ],\n \"belegtyp\": \"EINGANGSRECHNUNG\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"adressen\": [\n {\n \"stadt\": \"<string>\"\n }\n ],\n \"bankkontonummer\": 123,\n \"bankleitzahl\": \"<string>\",\n \"bic\": \"DEUTDEFF\",\n \"iban\": \"DE89370400440532013000\",\n \"kontaktKontonummer\": 123,\n \"kontaktName\": \"<string>\",\n \"lieferdatum\": \"2023-11-07T05:31:56Z\",\n \"faelligkeitsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum2\": \"2023-11-07T05:31:56Z\",\n \"zahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"istZahlungsauftrag\": true,\n \"notizen\": \"<string>\",\n \"bestellId\": \"<string>\",\n \"zahlungsbedingungenId\": \"<string>\",\n \"ustId\": \"<string>\",\n \"belegbilder\": [\n {\n \"content\": \"<string>\",\n \"dateiname\": \"rechnung.pdf\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"adressen": [
{
"stadt": "<string>"
}
],
"belegdatum": "2023-11-07T05:31:56Z",
"belegtyp": "EINGANGSRECHNUNG",
"kontaktKontonummer": 123,
"kontaktName": "<string>",
"erstellungsdatum": "<string>",
"waehrung": "EUR",
"lieferdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum2": "2023-11-07T05:31:56Z",
"faelligkeitsdatum": "2023-11-07T05:31:56Z",
"belegbilder": null,
"iban": "<string>",
"bankkontonummer": 123,
"bankleitzahl": "<string>",
"bic": "<string>",
"istZahlungsauftrag": true,
"rechnungsordner": "<string>",
"positionen": [
{
"erstellungsdatum": "<string>",
"belegtext": "<string>",
"betrag": 123,
"steuersatzProzent": 123,
"skontoBetrag": 123,
"skontoProzent": 123,
"skontoBetrag2": 123,
"skontoProzent2": 123,
"kontoname": "<string>",
"kontonummer": 123,
"buSchluessel": "<string>",
"kostenstelle1": "<string>",
"kostenstelle2": "<string>"
}
],
"belegnummer": "RE-2025-001",
"notizen": "<string>",
"bestellId": "<string>",
"zahlungsdatum": "2023-11-07T05:31:56Z",
"zahlungsbedingungenId": "<string>",
"aufgabenId": "<string>",
"betrag": 119,
"ustId": "<string>",
"datevAntwort": {
"status": "<string>",
"information": [
{
"filename": "<string>",
"message": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"type": "<string>"
}
]
},
"business-os": {
"neuesGuthaben": 499
}
}Buchungsvorschlag
Erstellt einen Buchungsvorschlag über DATEV Unternehmen Online.
Die strukturierten Daten werden direkt als Buchungsvorschlag angezeigt und können mit einem Klick verbucht werden.
Kosten: 1 Credit
curl --request POST \
--url https://api.business-os.de/v2/datev-duo/buchungsvorschlag \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"belegdatum": "2025-03-01T00:00:00Z",
"waehrung": "EUR",
"rechnungsordner": "Eingangsrechnungen",
"belegnummer": "RE-2025-001",
"betrag": 119,
"positionen": [
{
"betrag": 119,
"belegtext": "Büromaterial",
"steuersatzProzent": 19,
"skontoBetrag": 123,
"skontoProzent": 123,
"skontoBetrag2": 123,
"skontoProzent2": 123,
"kontoname": "<string>",
"kontonummer": 123,
"buSchluessel": "<string>",
"kostenstelle1": "Marketing",
"kostenstelle2": "IT-Abteilung"
}
],
"belegtyp": "EINGANGSRECHNUNG",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"adressen": [
{
"stadt": "<string>"
}
],
"bankkontonummer": 123,
"bankleitzahl": "<string>",
"bic": "DEUTDEFF",
"iban": "DE89370400440532013000",
"kontaktKontonummer": 123,
"kontaktName": "<string>",
"lieferdatum": "2023-11-07T05:31:56Z",
"faelligkeitsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum2": "2023-11-07T05:31:56Z",
"zahlungsdatum": "2023-11-07T05:31:56Z",
"istZahlungsauftrag": true,
"notizen": "<string>",
"bestellId": "<string>",
"zahlungsbedingungenId": "<string>",
"ustId": "<string>",
"belegbilder": [
{
"content": "<string>",
"dateiname": "rechnung.pdf"
}
]
}
'import requests
url = "https://api.business-os.de/v2/datev-duo/buchungsvorschlag"
payload = {
"belegdatum": "2025-03-01T00:00:00Z",
"waehrung": "EUR",
"rechnungsordner": "Eingangsrechnungen",
"belegnummer": "RE-2025-001",
"betrag": 119,
"positionen": [
{
"betrag": 119,
"belegtext": "Büromaterial",
"steuersatzProzent": 19,
"skontoBetrag": 123,
"skontoProzent": 123,
"skontoBetrag2": 123,
"skontoProzent2": 123,
"kontoname": "<string>",
"kontonummer": 123,
"buSchluessel": "<string>",
"kostenstelle1": "Marketing",
"kostenstelle2": "IT-Abteilung"
}
],
"belegtyp": "EINGANGSRECHNUNG",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"adressen": [{ "stadt": "<string>" }],
"bankkontonummer": 123,
"bankleitzahl": "<string>",
"bic": "DEUTDEFF",
"iban": "DE89370400440532013000",
"kontaktKontonummer": 123,
"kontaktName": "<string>",
"lieferdatum": "2023-11-07T05:31:56Z",
"faelligkeitsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum2": "2023-11-07T05:31:56Z",
"zahlungsdatum": "2023-11-07T05:31:56Z",
"istZahlungsauftrag": True,
"notizen": "<string>",
"bestellId": "<string>",
"zahlungsbedingungenId": "<string>",
"ustId": "<string>",
"belegbilder": [
{
"content": "<string>",
"dateiname": "rechnung.pdf"
}
]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
belegdatum: '2025-03-01T00:00:00Z',
waehrung: 'EUR',
rechnungsordner: 'Eingangsrechnungen',
belegnummer: 'RE-2025-001',
betrag: 119,
positionen: [
{
betrag: 119,
belegtext: 'Büromaterial',
steuersatzProzent: 19,
skontoBetrag: 123,
skontoProzent: 123,
skontoBetrag2: 123,
skontoProzent2: 123,
kontoname: '<string>',
kontonummer: 123,
buSchluessel: '<string>',
kostenstelle1: 'Marketing',
kostenstelle2: 'IT-Abteilung'
}
],
belegtyp: 'EINGANGSRECHNUNG',
id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
adressen: [{stadt: '<string>'}],
bankkontonummer: 123,
bankleitzahl: '<string>',
bic: 'DEUTDEFF',
iban: 'DE89370400440532013000',
kontaktKontonummer: 123,
kontaktName: '<string>',
lieferdatum: '2023-11-07T05:31:56Z',
faelligkeitsdatum: '2023-11-07T05:31:56Z',
skontoZahlungsdatum: '2023-11-07T05:31:56Z',
skontoZahlungsdatum2: '2023-11-07T05:31:56Z',
zahlungsdatum: '2023-11-07T05:31:56Z',
istZahlungsauftrag: true,
notizen: '<string>',
bestellId: '<string>',
zahlungsbedingungenId: '<string>',
ustId: '<string>',
belegbilder: [{content: '<string>', dateiname: 'rechnung.pdf'}]
})
};
fetch('https://api.business-os.de/v2/datev-duo/buchungsvorschlag', 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-duo/buchungsvorschlag",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'belegdatum' => '2025-03-01T00:00:00Z',
'waehrung' => 'EUR',
'rechnungsordner' => 'Eingangsrechnungen',
'belegnummer' => 'RE-2025-001',
'betrag' => 119,
'positionen' => [
[
'betrag' => 119,
'belegtext' => 'Büromaterial',
'steuersatzProzent' => 19,
'skontoBetrag' => 123,
'skontoProzent' => 123,
'skontoBetrag2' => 123,
'skontoProzent2' => 123,
'kontoname' => '<string>',
'kontonummer' => 123,
'buSchluessel' => '<string>',
'kostenstelle1' => 'Marketing',
'kostenstelle2' => 'IT-Abteilung'
]
],
'belegtyp' => 'EINGANGSRECHNUNG',
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'adressen' => [
[
'stadt' => '<string>'
]
],
'bankkontonummer' => 123,
'bankleitzahl' => '<string>',
'bic' => 'DEUTDEFF',
'iban' => 'DE89370400440532013000',
'kontaktKontonummer' => 123,
'kontaktName' => '<string>',
'lieferdatum' => '2023-11-07T05:31:56Z',
'faelligkeitsdatum' => '2023-11-07T05:31:56Z',
'skontoZahlungsdatum' => '2023-11-07T05:31:56Z',
'skontoZahlungsdatum2' => '2023-11-07T05:31:56Z',
'zahlungsdatum' => '2023-11-07T05:31:56Z',
'istZahlungsauftrag' => true,
'notizen' => '<string>',
'bestellId' => '<string>',
'zahlungsbedingungenId' => '<string>',
'ustId' => '<string>',
'belegbilder' => [
[
'content' => '<string>',
'dateiname' => 'rechnung.pdf'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.business-os.de/v2/datev-duo/buchungsvorschlag"
payload := strings.NewReader("{\n \"belegdatum\": \"2025-03-01T00:00:00Z\",\n \"waehrung\": \"EUR\",\n \"rechnungsordner\": \"Eingangsrechnungen\",\n \"belegnummer\": \"RE-2025-001\",\n \"betrag\": 119,\n \"positionen\": [\n {\n \"betrag\": 119,\n \"belegtext\": \"Büromaterial\",\n \"steuersatzProzent\": 19,\n \"skontoBetrag\": 123,\n \"skontoProzent\": 123,\n \"skontoBetrag2\": 123,\n \"skontoProzent2\": 123,\n \"kontoname\": \"<string>\",\n \"kontonummer\": 123,\n \"buSchluessel\": \"<string>\",\n \"kostenstelle1\": \"Marketing\",\n \"kostenstelle2\": \"IT-Abteilung\"\n }\n ],\n \"belegtyp\": \"EINGANGSRECHNUNG\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"adressen\": [\n {\n \"stadt\": \"<string>\"\n }\n ],\n \"bankkontonummer\": 123,\n \"bankleitzahl\": \"<string>\",\n \"bic\": \"DEUTDEFF\",\n \"iban\": \"DE89370400440532013000\",\n \"kontaktKontonummer\": 123,\n \"kontaktName\": \"<string>\",\n \"lieferdatum\": \"2023-11-07T05:31:56Z\",\n \"faelligkeitsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum2\": \"2023-11-07T05:31:56Z\",\n \"zahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"istZahlungsauftrag\": true,\n \"notizen\": \"<string>\",\n \"bestellId\": \"<string>\",\n \"zahlungsbedingungenId\": \"<string>\",\n \"ustId\": \"<string>\",\n \"belegbilder\": [\n {\n \"content\": \"<string>\",\n \"dateiname\": \"rechnung.pdf\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.business-os.de/v2/datev-duo/buchungsvorschlag")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"belegdatum\": \"2025-03-01T00:00:00Z\",\n \"waehrung\": \"EUR\",\n \"rechnungsordner\": \"Eingangsrechnungen\",\n \"belegnummer\": \"RE-2025-001\",\n \"betrag\": 119,\n \"positionen\": [\n {\n \"betrag\": 119,\n \"belegtext\": \"Büromaterial\",\n \"steuersatzProzent\": 19,\n \"skontoBetrag\": 123,\n \"skontoProzent\": 123,\n \"skontoBetrag2\": 123,\n \"skontoProzent2\": 123,\n \"kontoname\": \"<string>\",\n \"kontonummer\": 123,\n \"buSchluessel\": \"<string>\",\n \"kostenstelle1\": \"Marketing\",\n \"kostenstelle2\": \"IT-Abteilung\"\n }\n ],\n \"belegtyp\": \"EINGANGSRECHNUNG\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"adressen\": [\n {\n \"stadt\": \"<string>\"\n }\n ],\n \"bankkontonummer\": 123,\n \"bankleitzahl\": \"<string>\",\n \"bic\": \"DEUTDEFF\",\n \"iban\": \"DE89370400440532013000\",\n \"kontaktKontonummer\": 123,\n \"kontaktName\": \"<string>\",\n \"lieferdatum\": \"2023-11-07T05:31:56Z\",\n \"faelligkeitsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum2\": \"2023-11-07T05:31:56Z\",\n \"zahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"istZahlungsauftrag\": true,\n \"notizen\": \"<string>\",\n \"bestellId\": \"<string>\",\n \"zahlungsbedingungenId\": \"<string>\",\n \"ustId\": \"<string>\",\n \"belegbilder\": [\n {\n \"content\": \"<string>\",\n \"dateiname\": \"rechnung.pdf\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.business-os.de/v2/datev-duo/buchungsvorschlag")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"belegdatum\": \"2025-03-01T00:00:00Z\",\n \"waehrung\": \"EUR\",\n \"rechnungsordner\": \"Eingangsrechnungen\",\n \"belegnummer\": \"RE-2025-001\",\n \"betrag\": 119,\n \"positionen\": [\n {\n \"betrag\": 119,\n \"belegtext\": \"Büromaterial\",\n \"steuersatzProzent\": 19,\n \"skontoBetrag\": 123,\n \"skontoProzent\": 123,\n \"skontoBetrag2\": 123,\n \"skontoProzent2\": 123,\n \"kontoname\": \"<string>\",\n \"kontonummer\": 123,\n \"buSchluessel\": \"<string>\",\n \"kostenstelle1\": \"Marketing\",\n \"kostenstelle2\": \"IT-Abteilung\"\n }\n ],\n \"belegtyp\": \"EINGANGSRECHNUNG\",\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"adressen\": [\n {\n \"stadt\": \"<string>\"\n }\n ],\n \"bankkontonummer\": 123,\n \"bankleitzahl\": \"<string>\",\n \"bic\": \"DEUTDEFF\",\n \"iban\": \"DE89370400440532013000\",\n \"kontaktKontonummer\": 123,\n \"kontaktName\": \"<string>\",\n \"lieferdatum\": \"2023-11-07T05:31:56Z\",\n \"faelligkeitsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"skontoZahlungsdatum2\": \"2023-11-07T05:31:56Z\",\n \"zahlungsdatum\": \"2023-11-07T05:31:56Z\",\n \"istZahlungsauftrag\": true,\n \"notizen\": \"<string>\",\n \"bestellId\": \"<string>\",\n \"zahlungsbedingungenId\": \"<string>\",\n \"ustId\": \"<string>\",\n \"belegbilder\": [\n {\n \"content\": \"<string>\",\n \"dateiname\": \"rechnung.pdf\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"adressen": [
{
"stadt": "<string>"
}
],
"belegdatum": "2023-11-07T05:31:56Z",
"belegtyp": "EINGANGSRECHNUNG",
"kontaktKontonummer": 123,
"kontaktName": "<string>",
"erstellungsdatum": "<string>",
"waehrung": "EUR",
"lieferdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum": "2023-11-07T05:31:56Z",
"skontoZahlungsdatum2": "2023-11-07T05:31:56Z",
"faelligkeitsdatum": "2023-11-07T05:31:56Z",
"belegbilder": null,
"iban": "<string>",
"bankkontonummer": 123,
"bankleitzahl": "<string>",
"bic": "<string>",
"istZahlungsauftrag": true,
"rechnungsordner": "<string>",
"positionen": [
{
"erstellungsdatum": "<string>",
"belegtext": "<string>",
"betrag": 123,
"steuersatzProzent": 123,
"skontoBetrag": 123,
"skontoProzent": 123,
"skontoBetrag2": 123,
"skontoProzent2": 123,
"kontoname": "<string>",
"kontonummer": 123,
"buSchluessel": "<string>",
"kostenstelle1": "<string>",
"kostenstelle2": "<string>"
}
],
"belegnummer": "RE-2025-001",
"notizen": "<string>",
"bestellId": "<string>",
"zahlungsdatum": "2023-11-07T05:31:56Z",
"zahlungsbedingungenId": "<string>",
"aufgabenId": "<string>",
"betrag": 119,
"ustId": "<string>",
"datevAntwort": {
"status": "<string>",
"information": [
{
"filename": "<string>",
"message": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"type": "<string>"
}
]
},
"business-os": {
"neuesGuthaben": 499
}
}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"
Kennzeichnung der Aufrufquelle für die Nutzungsanalyse. Standard bei Weglassen: API (direkter API-Aufruf). Für Automationen aus Make z. B. Make angeben.
"Make"
Body
Belegdatum (z. B. Rechnungsdatum). ISO-8601-Datum und -Uhrzeit mit Zeitzone (RFC 3339).
"2025-03-01T00:00:00Z"
Währungscode nach ISO 4217.
"EUR"
Name des Rechnungsordners. Muss zum Buchungstyp passen: bei EINGANGSRECHNUNG ein Kreditorenordner, bei AUSGANGSRECHNUNG ein Debitorenordner. Kann aus GET /v2/datev-duo/rechnungsordner (Feld bezeichnung) ausgelesen werden.
"Eingangsrechnungen"
Belegnummer / Rechnungsnummer.
36^[a-zA-Z0-9$%&*+\-/]{0,36}$"RE-2025-001"
Gesamtbetrag brutto (wie bei anderen DUO-Belegen). Darf nicht 0 sein und muss der Summe der Positionsbeträge (positionen[].betrag) entsprechen. Max. 10 Vorkomma- und 2 Nachkommastellen.
119
Belegpositionen — mindestens eine Position erforderlich.
1Show child attributes
Show child attributes
EINGANGSRECHNUNG = Eingangsrechnung (Kreditor), AUSGANGSRECHNUNG = Ausgangsrechnung (Debitor).
EINGANGSRECHNUNG, AUSGANGSRECHNUNG "EINGANGSRECHNUNG"
Optionale UUID zur Zuordnung von hochgeladenen Dateien zum Buchungsvorschlag. Muss eine gültige UUID sein, wird andernfalls ignoriert.
Optionale Adressen.
Show child attributes
Show child attributes
Bankkontonummer (1–10 Ziffern). Wenn angegeben, ist bankleitzahl erforderlich.
Bankleitzahl. Wenn angegeben, ist bankkontonummer erforderlich.
^([1-9]|[0-9]{2,10})$BIC-Code.
^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}[A-Z0-9]{0,3}$"DEUTDEFF"
IBAN.
^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$"DE89370400440532013000"
Kreditoren- oder Debitorennummer des Geschäftspartners.
Name des Geschäftspartners, max. 50 Zeichen.
50Liefer- bzw. Leistungsdatum. ISO-8601-Datum und -Uhrzeit mit Zeitzone (RFC 3339).
Fälligkeitsdatum. ISO-8601-Datum und -Uhrzeit mit Zeitzone (RFC 3339). Muss nach belegdatum liegen. Pflicht, wenn Skonto-Felder verwendet werden.
Zahlungsziel für Skonto 1. ISO-8601-Datum und -Uhrzeit mit Zeitzone (RFC 3339). Muss vor faelligkeitsdatum und nach belegdatum liegen. Erfordert skontoBetrag und skontoProzent in jeder Position.
Zahlungsziel für Skonto 2. ISO-8601-Datum und -Uhrzeit mit Zeitzone (RFC 3339). Muss vor faelligkeitsdatum und nach skontoZahlungsdatum liegen. Erfordert zusätzlich skontoBetrag2 und skontoProzent2 in jeder Position.
Zahlungsdatum — markiert den Beleg als bezahlt. ISO-8601-Datum und -Uhrzeit mit Zeitzone (RFC 3339).
Ob automatisch eine Zahlungsanweisung (Überweisung bei EINGANGSRECHNUNG, Lastschrift bei AUSGANGSRECHNUNG) erstellt werden soll. Muss false sein, wenn zahlungsbedingungenId = 9.
Zusätzliche Notizen zum Buchungsvorschlag, max. 120 Zeichen.
120Bestell- bzw. Auftrags-ID.
30^[a-zA-Z0-9$%&*+\-./]{1,30}$Kennung der Zahlungsbedingungen (max. 3 Ziffern). Wenn gesetzt, dürfen keine Skonto-Felder verwendet werden.
3^[0-9]{1,3}$USt-IdNr. des Geschäftspartners.
15^[0-9a-zA-Z. _]{1,15}$Optionale dreistufige Ordnerstruktur für die Belegablage. Ohne Angabe wird die Standardstruktur verwendet.
Show child attributes
Show child attributes
Optionale Belegdateien (z. B. PDF-Rechnungen).
Show child attributes
Show child attributes
Response
Buchungsvorschlag erfolgreich erstellt
Show child attributes
Show child attributes
EINGANGSRECHNUNG, AUSGANGSRECHNUNG "EINGANGSRECHNUNG"
"EUR"
Show child attributes
Show child attributes
"RE-2025-001"
119
Ergebnis des DATEV-Async-Tasks. null, wenn kein Task gepollt wurde.
Show child attributes
Show child attributes
Show child attributes
Show child attributes