cURL
curl --request POST \
--url https://api.maesn.dev/accounting/journalEntries/bulk \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--data '
{
"accountNumberLength": "4",
"chartOfAccount": "SKR03",
"entries": [
{
"advancePayment": {
"orderNumber": "Order-21900030",
"type": "FINAL_INVOICE"
},
"currency": "EUR",
"debitCreditIndicator": "CREDIT",
"deliveryDate": "2025-06-04T00:00:00Z",
"description": "Bill-3486 for services",
"documentId": "b5e624e5-fb9e-4836-a443-87a3820f5b48",
"dueDate": "2025-06-05T00:00:00Z",
"exchangeRate": "1,2045",
"journalLineItems": [
{
"accountNumber": "70001",
"dimensions": [
{
"name": "Material/Waren"
}
],
"discountAmount": 12.12,
"taxRate": {
"code": "03"
},
"totalGrossAmount": 1190
},
{
"accountNumber": "4900",
"dimensions": [
{
"name": "Material/Waren"
}
],
"discountAmount": 12.12,
"taxRate": {
"code": "03"
},
"totalGrossAmount": -1190
}
],
"number ": "21900030",
"taxAssignmentDate": "2025-06-04T00:00:00Z",
"transactionDate": "2025-06-01T00:00:00Z"
}
],
"fiscalYearStartDate": "2025-01-01"
}
'import requests
url = "https://api.maesn.dev/accounting/journalEntries/bulk"
payload = {
"accountNumberLength": "4",
"chartOfAccount": "SKR03",
"entries": [
{
"advancePayment": {
"orderNumber": "Order-21900030",
"type": "FINAL_INVOICE"
},
"currency": "EUR",
"debitCreditIndicator": "CREDIT",
"deliveryDate": "2025-06-04T00:00:00Z",
"description": "Bill-3486 for services",
"documentId": "b5e624e5-fb9e-4836-a443-87a3820f5b48",
"dueDate": "2025-06-05T00:00:00Z",
"exchangeRate": "1,2045",
"journalLineItems": [
{
"accountNumber": "70001",
"dimensions": [{ "name": "Material/Waren" }],
"discountAmount": 12.12,
"taxRate": { "code": "03" },
"totalGrossAmount": 1190
},
{
"accountNumber": "4900",
"dimensions": [{ "name": "Material/Waren" }],
"discountAmount": 12.12,
"taxRate": { "code": "03" },
"totalGrossAmount": -1190
}
],
"number ": "21900030",
"taxAssignmentDate": "2025-06-04T00:00:00Z",
"transactionDate": "2025-06-01T00:00:00Z"
}
],
"fiscalYearStartDate": "2025-01-01"
}
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<x-api-key>',
'X-ACCOUNT-KEY': '<x-account-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
accountNumberLength: '4',
chartOfAccount: 'SKR03',
entries: [
{
advancePayment: {orderNumber: 'Order-21900030', type: 'FINAL_INVOICE'},
currency: 'EUR',
debitCreditIndicator: 'CREDIT',
deliveryDate: '2025-06-04T00:00:00Z',
description: 'Bill-3486 for services',
documentId: 'b5e624e5-fb9e-4836-a443-87a3820f5b48',
dueDate: '2025-06-05T00:00:00Z',
exchangeRate: '1,2045',
journalLineItems: [
{
accountNumber: '70001',
dimensions: [{name: 'Material/Waren'}],
discountAmount: 12.12,
taxRate: {code: '03'},
totalGrossAmount: 1190
},
{
accountNumber: '4900',
dimensions: [{name: 'Material/Waren'}],
discountAmount: 12.12,
taxRate: {code: '03'},
totalGrossAmount: -1190
}
],
'number ': '21900030',
taxAssignmentDate: '2025-06-04T00:00:00Z',
transactionDate: '2025-06-01T00:00:00Z'
}
],
fiscalYearStartDate: '2025-01-01'
})
};
fetch('https://api.maesn.dev/accounting/journalEntries/bulk', 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.maesn.dev/accounting/journalEntries/bulk",
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([
'accountNumberLength' => '4',
'chartOfAccount' => 'SKR03',
'entries' => [
[
'advancePayment' => [
'orderNumber' => 'Order-21900030',
'type' => 'FINAL_INVOICE'
],
'currency' => 'EUR',
'debitCreditIndicator' => 'CREDIT',
'deliveryDate' => '2025-06-04T00:00:00Z',
'description' => 'Bill-3486 for services',
'documentId' => 'b5e624e5-fb9e-4836-a443-87a3820f5b48',
'dueDate' => '2025-06-05T00:00:00Z',
'exchangeRate' => '1,2045',
'journalLineItems' => [
[
'accountNumber' => '70001',
'dimensions' => [
[
'name' => 'Material/Waren'
]
],
'discountAmount' => 12.12,
'taxRate' => [
'code' => '03'
],
'totalGrossAmount' => 1190
],
[
'accountNumber' => '4900',
'dimensions' => [
[
'name' => 'Material/Waren'
]
],
'discountAmount' => 12.12,
'taxRate' => [
'code' => '03'
],
'totalGrossAmount' => -1190
]
],
'number ' => '21900030',
'taxAssignmentDate' => '2025-06-04T00:00:00Z',
'transactionDate' => '2025-06-01T00:00:00Z'
]
],
'fiscalYearStartDate' => '2025-01-01'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-ACCOUNT-KEY: <x-account-key>",
"X-API-KEY: <x-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.maesn.dev/accounting/journalEntries/bulk"
payload := strings.NewReader("{\n \"accountNumberLength\": \"4\",\n \"chartOfAccount\": \"SKR03\",\n \"entries\": [\n {\n \"advancePayment\": {\n \"orderNumber\": \"Order-21900030\",\n \"type\": \"FINAL_INVOICE\"\n },\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"CREDIT\",\n \"deliveryDate\": \"2025-06-04T00:00:00Z\",\n \"description\": \"Bill-3486 for services\",\n \"documentId\": \"b5e624e5-fb9e-4836-a443-87a3820f5b48\",\n \"dueDate\": \"2025-06-05T00:00:00Z\",\n \"exchangeRate\": \"1,2045\",\n \"journalLineItems\": [\n {\n \"accountNumber\": \"70001\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": 1190\n },\n {\n \"accountNumber\": \"4900\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": -1190\n }\n ],\n \"number \": \"21900030\",\n \"taxAssignmentDate\": \"2025-06-04T00:00:00Z\",\n \"transactionDate\": \"2025-06-01T00:00:00Z\"\n }\n ],\n \"fiscalYearStartDate\": \"2025-01-01\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<x-api-key>")
req.Header.Add("X-ACCOUNT-KEY", "<x-account-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.maesn.dev/accounting/journalEntries/bulk")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.header("Content-Type", "application/json")
.body("{\n \"accountNumberLength\": \"4\",\n \"chartOfAccount\": \"SKR03\",\n \"entries\": [\n {\n \"advancePayment\": {\n \"orderNumber\": \"Order-21900030\",\n \"type\": \"FINAL_INVOICE\"\n },\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"CREDIT\",\n \"deliveryDate\": \"2025-06-04T00:00:00Z\",\n \"description\": \"Bill-3486 for services\",\n \"documentId\": \"b5e624e5-fb9e-4836-a443-87a3820f5b48\",\n \"dueDate\": \"2025-06-05T00:00:00Z\",\n \"exchangeRate\": \"1,2045\",\n \"journalLineItems\": [\n {\n \"accountNumber\": \"70001\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": 1190\n },\n {\n \"accountNumber\": \"4900\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": -1190\n }\n ],\n \"number \": \"21900030\",\n \"taxAssignmentDate\": \"2025-06-04T00:00:00Z\",\n \"transactionDate\": \"2025-06-01T00:00:00Z\"\n }\n ],\n \"fiscalYearStartDate\": \"2025-01-01\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/journalEntries/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<x-api-key>'
request["X-ACCOUNT-KEY"] = '<x-account-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountNumberLength\": \"4\",\n \"chartOfAccount\": \"SKR03\",\n \"entries\": [\n {\n \"advancePayment\": {\n \"orderNumber\": \"Order-21900030\",\n \"type\": \"FINAL_INVOICE\"\n },\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"CREDIT\",\n \"deliveryDate\": \"2025-06-04T00:00:00Z\",\n \"description\": \"Bill-3486 for services\",\n \"documentId\": \"b5e624e5-fb9e-4836-a443-87a3820f5b48\",\n \"dueDate\": \"2025-06-05T00:00:00Z\",\n \"exchangeRate\": \"1,2045\",\n \"journalLineItems\": [\n {\n \"accountNumber\": \"70001\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": 1190\n },\n {\n \"accountNumber\": \"4900\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": -1190\n }\n ],\n \"number \": \"21900030\",\n \"taxAssignmentDate\": \"2025-06-04T00:00:00Z\",\n \"transactionDate\": \"2025-06-01T00:00:00Z\"\n }\n ],\n \"fiscalYearStartDate\": \"2025-01-01\"\n}"
response = http.request(request)
puts response.read_body{
"accountNumberLength": "4",
"chartOfAccount": "SKR03",
"createdDate": "2025-06-01T00:00:00Z",
"entries": [
{
"advancePayment": {
"orderNumber": "Order-21900030",
"type": "FINAL_INVOICE"
},
"currency": "EUR",
"createdDate": "2025-06-01T00:00:00Z",
"debitCreditIndicator": "CREDIT",
"deliveryDate": "2025-06-04T00:00:00Z",
"description": "Bill-3486 for services",
"documentId": "b5e624e5-fb9e-4836-a443-87a3820f5b48",
"dueDate": "2025-06-05T00:00:00Z",
"exchangeRate": "1,2045",
"journalLineItems": [
{
"accountNumber": "70001",
"createdDate": "2025-06-01T00:00:00Z",
"dimensions": [
{
"name": "Material/Waren"
}
],
"discountAmount": 12.12,
"taxRate": {
"code": "03"
},
"totalGrossAmount": 1190
},
{
"accountNumber": "4900",
"currency": "EUR",
"createdDate": "2025-06-01T00:00:00Z",
"dimensions": [
{
"name": "Material/Waren"
}
],
"discountAmount": 12.12,
"taxRate": {
"code": "03"
},
"totalGrossAmount": -1190,
"updatedDate": "2025-06-01T00:00:00Z"
}
],
"number ": "21900030",
"taxAssignmentDate": "2025-06-04T00:00:00Z",
"transactionDate": "2025-06-01T00:00:00Z"
}
],
"fiscalYearStartDate": "2025-01-01",
"taskId": "ABBDU8834993NND"
}Journal Entries
Create journal entries bulk
POST
/
accounting
/
journalEntries
/
bulk
cURL
curl --request POST \
--url https://api.maesn.dev/accounting/journalEntries/bulk \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--data '
{
"accountNumberLength": "4",
"chartOfAccount": "SKR03",
"entries": [
{
"advancePayment": {
"orderNumber": "Order-21900030",
"type": "FINAL_INVOICE"
},
"currency": "EUR",
"debitCreditIndicator": "CREDIT",
"deliveryDate": "2025-06-04T00:00:00Z",
"description": "Bill-3486 for services",
"documentId": "b5e624e5-fb9e-4836-a443-87a3820f5b48",
"dueDate": "2025-06-05T00:00:00Z",
"exchangeRate": "1,2045",
"journalLineItems": [
{
"accountNumber": "70001",
"dimensions": [
{
"name": "Material/Waren"
}
],
"discountAmount": 12.12,
"taxRate": {
"code": "03"
},
"totalGrossAmount": 1190
},
{
"accountNumber": "4900",
"dimensions": [
{
"name": "Material/Waren"
}
],
"discountAmount": 12.12,
"taxRate": {
"code": "03"
},
"totalGrossAmount": -1190
}
],
"number ": "21900030",
"taxAssignmentDate": "2025-06-04T00:00:00Z",
"transactionDate": "2025-06-01T00:00:00Z"
}
],
"fiscalYearStartDate": "2025-01-01"
}
'import requests
url = "https://api.maesn.dev/accounting/journalEntries/bulk"
payload = {
"accountNumberLength": "4",
"chartOfAccount": "SKR03",
"entries": [
{
"advancePayment": {
"orderNumber": "Order-21900030",
"type": "FINAL_INVOICE"
},
"currency": "EUR",
"debitCreditIndicator": "CREDIT",
"deliveryDate": "2025-06-04T00:00:00Z",
"description": "Bill-3486 for services",
"documentId": "b5e624e5-fb9e-4836-a443-87a3820f5b48",
"dueDate": "2025-06-05T00:00:00Z",
"exchangeRate": "1,2045",
"journalLineItems": [
{
"accountNumber": "70001",
"dimensions": [{ "name": "Material/Waren" }],
"discountAmount": 12.12,
"taxRate": { "code": "03" },
"totalGrossAmount": 1190
},
{
"accountNumber": "4900",
"dimensions": [{ "name": "Material/Waren" }],
"discountAmount": 12.12,
"taxRate": { "code": "03" },
"totalGrossAmount": -1190
}
],
"number ": "21900030",
"taxAssignmentDate": "2025-06-04T00:00:00Z",
"transactionDate": "2025-06-01T00:00:00Z"
}
],
"fiscalYearStartDate": "2025-01-01"
}
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<x-api-key>',
'X-ACCOUNT-KEY': '<x-account-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
accountNumberLength: '4',
chartOfAccount: 'SKR03',
entries: [
{
advancePayment: {orderNumber: 'Order-21900030', type: 'FINAL_INVOICE'},
currency: 'EUR',
debitCreditIndicator: 'CREDIT',
deliveryDate: '2025-06-04T00:00:00Z',
description: 'Bill-3486 for services',
documentId: 'b5e624e5-fb9e-4836-a443-87a3820f5b48',
dueDate: '2025-06-05T00:00:00Z',
exchangeRate: '1,2045',
journalLineItems: [
{
accountNumber: '70001',
dimensions: [{name: 'Material/Waren'}],
discountAmount: 12.12,
taxRate: {code: '03'},
totalGrossAmount: 1190
},
{
accountNumber: '4900',
dimensions: [{name: 'Material/Waren'}],
discountAmount: 12.12,
taxRate: {code: '03'},
totalGrossAmount: -1190
}
],
'number ': '21900030',
taxAssignmentDate: '2025-06-04T00:00:00Z',
transactionDate: '2025-06-01T00:00:00Z'
}
],
fiscalYearStartDate: '2025-01-01'
})
};
fetch('https://api.maesn.dev/accounting/journalEntries/bulk', 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.maesn.dev/accounting/journalEntries/bulk",
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([
'accountNumberLength' => '4',
'chartOfAccount' => 'SKR03',
'entries' => [
[
'advancePayment' => [
'orderNumber' => 'Order-21900030',
'type' => 'FINAL_INVOICE'
],
'currency' => 'EUR',
'debitCreditIndicator' => 'CREDIT',
'deliveryDate' => '2025-06-04T00:00:00Z',
'description' => 'Bill-3486 for services',
'documentId' => 'b5e624e5-fb9e-4836-a443-87a3820f5b48',
'dueDate' => '2025-06-05T00:00:00Z',
'exchangeRate' => '1,2045',
'journalLineItems' => [
[
'accountNumber' => '70001',
'dimensions' => [
[
'name' => 'Material/Waren'
]
],
'discountAmount' => 12.12,
'taxRate' => [
'code' => '03'
],
'totalGrossAmount' => 1190
],
[
'accountNumber' => '4900',
'dimensions' => [
[
'name' => 'Material/Waren'
]
],
'discountAmount' => 12.12,
'taxRate' => [
'code' => '03'
],
'totalGrossAmount' => -1190
]
],
'number ' => '21900030',
'taxAssignmentDate' => '2025-06-04T00:00:00Z',
'transactionDate' => '2025-06-01T00:00:00Z'
]
],
'fiscalYearStartDate' => '2025-01-01'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-ACCOUNT-KEY: <x-account-key>",
"X-API-KEY: <x-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.maesn.dev/accounting/journalEntries/bulk"
payload := strings.NewReader("{\n \"accountNumberLength\": \"4\",\n \"chartOfAccount\": \"SKR03\",\n \"entries\": [\n {\n \"advancePayment\": {\n \"orderNumber\": \"Order-21900030\",\n \"type\": \"FINAL_INVOICE\"\n },\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"CREDIT\",\n \"deliveryDate\": \"2025-06-04T00:00:00Z\",\n \"description\": \"Bill-3486 for services\",\n \"documentId\": \"b5e624e5-fb9e-4836-a443-87a3820f5b48\",\n \"dueDate\": \"2025-06-05T00:00:00Z\",\n \"exchangeRate\": \"1,2045\",\n \"journalLineItems\": [\n {\n \"accountNumber\": \"70001\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": 1190\n },\n {\n \"accountNumber\": \"4900\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": -1190\n }\n ],\n \"number \": \"21900030\",\n \"taxAssignmentDate\": \"2025-06-04T00:00:00Z\",\n \"transactionDate\": \"2025-06-01T00:00:00Z\"\n }\n ],\n \"fiscalYearStartDate\": \"2025-01-01\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<x-api-key>")
req.Header.Add("X-ACCOUNT-KEY", "<x-account-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.maesn.dev/accounting/journalEntries/bulk")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.header("Content-Type", "application/json")
.body("{\n \"accountNumberLength\": \"4\",\n \"chartOfAccount\": \"SKR03\",\n \"entries\": [\n {\n \"advancePayment\": {\n \"orderNumber\": \"Order-21900030\",\n \"type\": \"FINAL_INVOICE\"\n },\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"CREDIT\",\n \"deliveryDate\": \"2025-06-04T00:00:00Z\",\n \"description\": \"Bill-3486 for services\",\n \"documentId\": \"b5e624e5-fb9e-4836-a443-87a3820f5b48\",\n \"dueDate\": \"2025-06-05T00:00:00Z\",\n \"exchangeRate\": \"1,2045\",\n \"journalLineItems\": [\n {\n \"accountNumber\": \"70001\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": 1190\n },\n {\n \"accountNumber\": \"4900\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": -1190\n }\n ],\n \"number \": \"21900030\",\n \"taxAssignmentDate\": \"2025-06-04T00:00:00Z\",\n \"transactionDate\": \"2025-06-01T00:00:00Z\"\n }\n ],\n \"fiscalYearStartDate\": \"2025-01-01\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/journalEntries/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<x-api-key>'
request["X-ACCOUNT-KEY"] = '<x-account-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountNumberLength\": \"4\",\n \"chartOfAccount\": \"SKR03\",\n \"entries\": [\n {\n \"advancePayment\": {\n \"orderNumber\": \"Order-21900030\",\n \"type\": \"FINAL_INVOICE\"\n },\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"CREDIT\",\n \"deliveryDate\": \"2025-06-04T00:00:00Z\",\n \"description\": \"Bill-3486 for services\",\n \"documentId\": \"b5e624e5-fb9e-4836-a443-87a3820f5b48\",\n \"dueDate\": \"2025-06-05T00:00:00Z\",\n \"exchangeRate\": \"1,2045\",\n \"journalLineItems\": [\n {\n \"accountNumber\": \"70001\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": 1190\n },\n {\n \"accountNumber\": \"4900\",\n \"dimensions\": [\n {\n \"name\": \"Material/Waren\"\n }\n ],\n \"discountAmount\": 12.12,\n \"taxRate\": {\n \"code\": \"03\"\n },\n \"totalGrossAmount\": -1190\n }\n ],\n \"number \": \"21900030\",\n \"taxAssignmentDate\": \"2025-06-04T00:00:00Z\",\n \"transactionDate\": \"2025-06-01T00:00:00Z\"\n }\n ],\n \"fiscalYearStartDate\": \"2025-01-01\"\n}"
response = http.request(request)
puts response.read_body{
"accountNumberLength": "4",
"chartOfAccount": "SKR03",
"createdDate": "2025-06-01T00:00:00Z",
"entries": [
{
"advancePayment": {
"orderNumber": "Order-21900030",
"type": "FINAL_INVOICE"
},
"currency": "EUR",
"createdDate": "2025-06-01T00:00:00Z",
"debitCreditIndicator": "CREDIT",
"deliveryDate": "2025-06-04T00:00:00Z",
"description": "Bill-3486 for services",
"documentId": "b5e624e5-fb9e-4836-a443-87a3820f5b48",
"dueDate": "2025-06-05T00:00:00Z",
"exchangeRate": "1,2045",
"journalLineItems": [
{
"accountNumber": "70001",
"createdDate": "2025-06-01T00:00:00Z",
"dimensions": [
{
"name": "Material/Waren"
}
],
"discountAmount": 12.12,
"taxRate": {
"code": "03"
},
"totalGrossAmount": 1190
},
{
"accountNumber": "4900",
"currency": "EUR",
"createdDate": "2025-06-01T00:00:00Z",
"dimensions": [
{
"name": "Material/Waren"
}
],
"discountAmount": 12.12,
"taxRate": {
"code": "03"
},
"totalGrossAmount": -1190,
"updatedDate": "2025-06-01T00:00:00Z"
}
],
"number ": "21900030",
"taxAssignmentDate": "2025-06-04T00:00:00Z",
"transactionDate": "2025-06-01T00:00:00Z"
}
],
"fiscalYearStartDate": "2025-01-01",
"taskId": "ABBDU8834993NND"
}Field support per integration

DATEV Rechnungswesen
DATEV Rechnungswesen
This endpoints is asynchronous. To check the status of the request, use the
GET asyncTask endpoint.For more info about asynchronous tasks visit the Asynchronous Task section.If you’re not using the Interactive Authentication Flow, make sure the query parameter
companyId is accurately populated with the appropriate company ID. You can obtain this value by using the GET Companies endpoint available under the Authentication section.number
required
The
accountNumberLength field specifies the length of the G/L accounts.
The value must match the configuration defined in the end user’s mandate settings within the DATEV application.string
required
Available options:
SKR03, SKR04, SKR42, SKR51, SKR14JournalEntryRequestDto[]
Show properties
Show properties
AdvancePayment
An optional object that marks a booking as part of an advance-payment workflow.
Show properties
Show properties
string
required
The
orderNumber field represents a stable identifier shared across every booking that belongs to the same advance-payment transaction.It cannot exceed 30 characters in length.enum
required
A label on an individual booking indicating its role within that advance-payment transaction.Available options:
ADVANCE_INVOICE_REQUESTED ADVANCE_PAYMENT_RECEIVED
ADVANCE_LIABILITY_TRANSFER FINAL_INVOICE FINAL_INVOICE_CLEARING FINAL_PAYMENT_RECEIVED OTHERenum
required
The
currency field supports ISO 4217 (3-letter codes).
For details visits the Standardized Data section.enum
required
Available options:
DEBIT, CREDITDEBIT indicates a debit on the accountNumber associated with the positive journal line amount.CREDIT indicates a credit on the accountNumber associated with the positive journal line amount.string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
required
The
description field provides details about the specific journal entry.It cannot exceed 60 characters in length.string
The
documentId field is used to attach a document to the journal entry.
This is the ID of the document that have been previously uploaded using the POST Files endpoint.string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
The
exchangeRate must be up to 4 digits, comma, 2 to 6 digits (e.g., 1234,567890)JournalLineItem[]
required
Each journal entry must contain two journal line items. One with positive amount and one with negative amount.
Show properties
Show properties
string
required
The
accountNumber field should be the customer/supplier account if totalGrossAmount is positive; otherwise, a G/L account.It must be a valid number value. The length must be equal to accountNumberLength for G/L accounts, or accountNumberLength + 1 for customer/supplier accounts.Dimension[]
The
dimensions field is used to categorize the journal entry with additional info such as cost centers, departments, projects.Show properties
Show properties
string
required
It cannot exceed 36 characters in length. It must follow the pattern :
^([\S][\S ]{0,34}[\S]|[\S]{0,1})$.Example: Marketing.number
The
discountAmount field can only be used for EUR payments. It indicates a payment discount.It must be a positive number with max 8 digits before decimal and max 2 decimal places allowed.For such journal entries, exactly one account number must be a supplier or customer account, while the counter-account must be a bank account.
TaxRate
Show properties
Show properties
string
The
code field represents the BU code associated with the journal entry.It must be max 4 characters long. Only numbers are allowed.number
required
The
totalGrossAmount field represents the total gross amount for the specific journal entry.It must be a number with up to 10 digits before the decimal point and up to 2 digits after.It cannot be zero.string
required
The
number field represents the document number. Only numbers, upper and lower case letters and the following special characters: $ & % * + - / are supportedIt cannot exceed 36 characters in length.string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
The field is required when the
deliveryDate field is provided.string
required
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
required
YYYY-MM-DD date format, e.g., 2025-01-01The
fiscalYearStartDate field should be set to the first day of the fiscal year, which is usually January 1st.
If your fiscal year begins on a different date, please adjust this field accordingly.If the provided date does not match the actual fiscal year start date, DATEV will not return an error code. However, the journal entries will not be posted in Rechnungswesen.
Headers
API key
Example:
"example value"
Account key
Example:
"example value"
Query Parameters
Body
application/json
Last modified on July 9, 2026
Was this page helpful?
⌘I