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.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.Available options:
SKR03, SKR04, SKR42, SKR51, SKR14Show properties
Show properties
An optional object that marks a booking as part of an advance-payment workflow.
Show properties
Show properties
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.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 OTHERThe
currency field supports ISO 4217 (3-letter codes).
For details visits the Standardized Data section.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.ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
The
description field provides details about the specific journal entry.It cannot exceed 60 characters in length.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.ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
The
exchangeRate must be up to 4 digits, comma, 2 to 6 digits (e.g., 1234,567890)Each journal entry must contain two journal line items. One with positive amount and one with negative amount.
Show properties
Show properties
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.The
dimensions field is used to categorize the journal entry with additional info such as cost centers, departments, projects.Show properties
Show properties
It cannot exceed 36 characters in length. It must follow the pattern :
^([\S][\S ]{0,34}[\S]|[\S]{0,1})$.Example: Marketing.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.
Show properties
Show properties
The
code field represents the BU code associated with the journal entry.It must be max 4 characters long. Only numbers are allowed.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.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.ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
The field is required when the
deliveryDate field is provided.ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
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