cURL
curl --request POST \
--url https://api.maesn.dev/accounting/bookingProposals \
--header 'Content-Type: multipart/form-data' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--form 'bookingProposal={
"addresses": [
{
"city": "city"
}
],
"bankAccountId": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bankAccountNumber": 5407324931,
"bankCode": "50010517",
"bic": "DEUTDEFF",
"bookingProposalDate": "2025-07-14T00:00:00Z",
"contactAccountNumber": 70000,
"contactId": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"contactName": "John Doe",
"currency": "EUR",
"deliveryDate": "2025-07-26T00:00:00Z",
"discountPaymentDate": "2025-07-16T00:00:00Z",
"discountPaymentDate2": "2025-07-18T00:00:00Z",
"dueDate": "2025-07-24T00:00:00Z",
"journalCode": "60",
"iban": "DE43100500000920018963",
"isPaymentOrder": true,
"ledgerName": "Payroll",
"lineItems": [
{
"accountCode": "200",
"accountId": "db32-4f56-8a9b-1234567890ab",
"accountName": "EXPENSE",
"accountNumber": 4900,
"bookingTaxCode": "9",
"description": "Item A",
"dimension1": "Marketing",
"dimension2": "Service and Maintenance",
"dimensions": [
{
"id": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"code": "CS1",
"dimension": "CostCenter",
"name": "Jerde, Greenfelder and Jacobi"
}
],
"discountAmount": 100,
"discountAmount2": 50,
"discountPercentage": 20,
"discountPercentage2": 10,
"taxCode": "02",
"taxRatePercentage": 19,
"totalGrossAmount": 500,
"totalNetAmount": 450,
"type": "SERVICES"
}
],
"notes": "Bill for maintenance services",
"number": "1233330",
"orderId": "3344566",
"paidDate": "2021-01-01T00:00:00Z",
"paymentTermsId": "03",
"status": "DRAFT",
"totalGrossAmount": 500,
"vatId": "DE987654321"
}' \
--form bookingType=INVOICE \
--form 'folderManagement={
"category": "Accounting",
"folder": "Invoices",
"register": "2025 January"
}' \
--form files.items='@example-file'import requests
url = "https://api.maesn.dev/accounting/bookingProposals"
files = { "files.items": ("example-file", open("example-file", "rb")) }
payload = {
"bookingProposal": "{
\"addresses\": [
{
\"city\": \"city\"
}
],
\"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",
\"bankAccountNumber\": 5407324931,
\"bankCode\": \"50010517\",
\"bic\": \"DEUTDEFF\",
\"bookingProposalDate\": \"2025-07-14T00:00:00Z\",
\"contactAccountNumber\": 70000,
\"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",
\"contactName\": \"John Doe\",
\"currency\": \"EUR\",
\"deliveryDate\": \"2025-07-26T00:00:00Z\",
\"discountPaymentDate\": \"2025-07-16T00:00:00Z\",
\"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",
\"dueDate\": \"2025-07-24T00:00:00Z\",
\"journalCode\": \"60\",
\"iban\": \"DE43100500000920018963\",
\"isPaymentOrder\": true,
\"ledgerName\": \"Payroll\",
\"lineItems\": [
{
\"accountCode\": \"200\",
\"accountId\": \"db32-4f56-8a9b-1234567890ab\",
\"accountName\": \"EXPENSE\",
\"accountNumber\": 4900,
\"bookingTaxCode\": \"9\",
\"description\": \"Item A\",
\"dimension1\": \"Marketing\",
\"dimension2\": \"Service and Maintenance\",
\"dimensions\": [
{
\"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",
\"code\": \"CS1\",
\"dimension\": \"CostCenter\",
\"name\": \"Jerde, Greenfelder and Jacobi\"
}
],
\"discountAmount\": 100,
\"discountAmount2\": 50,
\"discountPercentage\": 20,
\"discountPercentage2\": 10,
\"taxCode\": \"02\",
\"taxRatePercentage\": 19,
\"totalGrossAmount\": 500,
\"totalNetAmount\": 450,
\"type\": \"SERVICES\"
}
],
\"notes\": \"Bill for maintenance services\",
\"number\": \"1233330\",
\"orderId\": \"3344566\",
\"paidDate\": \"2021-01-01T00:00:00Z\",
\"paymentTermsId\": \"03\",
\"status\": \"DRAFT\",
\"totalGrossAmount\": 500,
\"vatId\": \"DE987654321\"
}",
"bookingType": "INVOICE",
"folderManagement": "{
\"category\": \"Accounting\",
\"folder\": \"Invoices\",
\"register\": \"2025 January\"
}"
}
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('bookingProposal', '{
"addresses": [
{
"city": "city"
}
],
"bankAccountId": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bankAccountNumber": 5407324931,
"bankCode": "50010517",
"bic": "DEUTDEFF",
"bookingProposalDate": "2025-07-14T00:00:00Z",
"contactAccountNumber": 70000,
"contactId": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"contactName": "John Doe",
"currency": "EUR",
"deliveryDate": "2025-07-26T00:00:00Z",
"discountPaymentDate": "2025-07-16T00:00:00Z",
"discountPaymentDate2": "2025-07-18T00:00:00Z",
"dueDate": "2025-07-24T00:00:00Z",
"journalCode": "60",
"iban": "DE43100500000920018963",
"isPaymentOrder": true,
"ledgerName": "Payroll",
"lineItems": [
{
"accountCode": "200",
"accountId": "db32-4f56-8a9b-1234567890ab",
"accountName": "EXPENSE",
"accountNumber": 4900,
"bookingTaxCode": "9",
"description": "Item A",
"dimension1": "Marketing",
"dimension2": "Service and Maintenance",
"dimensions": [
{
"id": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"code": "CS1",
"dimension": "CostCenter",
"name": "Jerde, Greenfelder and Jacobi"
}
],
"discountAmount": 100,
"discountAmount2": 50,
"discountPercentage": 20,
"discountPercentage2": 10,
"taxCode": "02",
"taxRatePercentage": 19,
"totalGrossAmount": 500,
"totalNetAmount": 450,
"type": "SERVICES"
}
],
"notes": "Bill for maintenance services",
"number": "1233330",
"orderId": "3344566",
"paidDate": "2021-01-01T00:00:00Z",
"paymentTermsId": "03",
"status": "DRAFT",
"totalGrossAmount": 500,
"vatId": "DE987654321"
}');
form.append('bookingType', 'INVOICE');
form.append('folderManagement', '{
"category": "Accounting",
"folder": "Invoices",
"register": "2025 January"
}');
form.append('files.items', '{
"fileName": "example-file"
}');
const options = {
method: 'POST',
headers: {'X-API-KEY': '<x-api-key>', 'X-ACCOUNT-KEY': '<x-account-key>'}
};
options.body = form;
fetch('https://api.maesn.dev/accounting/bookingProposals', 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/bookingProposals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingProposal\"\r\n\r\n{\r\n \"addresses\": [\r\n {\r\n \"city\": \"city\"\r\n }\r\n ],\r\n \"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\r\n \"bankAccountNumber\": 5407324931,\r\n \"bankCode\": \"50010517\",\r\n \"bic\": \"DEUTDEFF\",\r\n \"bookingProposalDate\": \"2025-07-14T00:00:00Z\",\r\n \"contactAccountNumber\": 70000,\r\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"contactName\": \"John Doe\",\r\n \"currency\": \"EUR\",\r\n \"deliveryDate\": \"2025-07-26T00:00:00Z\",\r\n \"discountPaymentDate\": \"2025-07-16T00:00:00Z\",\r\n \"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",\r\n \"dueDate\": \"2025-07-24T00:00:00Z\",\r\n \"journalCode\": \"60\",\r\n \"iban\": \"DE43100500000920018963\",\r\n \"isPaymentOrder\": true,\r\n \"ledgerName\": \"Payroll\",\r\n \"lineItems\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"db32-4f56-8a9b-1234567890ab\",\r\n \"accountName\": \"EXPENSE\",\r\n \"accountNumber\": 4900,\r\n \"bookingTaxCode\": \"9\",\r\n \"description\": \"Item A\",\r\n \"dimension1\": \"Marketing\",\r\n \"dimension2\": \"Service and Maintenance\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"code\": \"CS1\",\r\n \"dimension\": \"CostCenter\",\r\n \"name\": \"Jerde, Greenfelder and Jacobi\"\r\n }\r\n ],\r\n \"discountAmount\": 100,\r\n \"discountAmount2\": 50,\r\n \"discountPercentage\": 20,\r\n \"discountPercentage2\": 10,\r\n \"taxCode\": \"02\",\r\n \"taxRatePercentage\": 19,\r\n \"totalGrossAmount\": 500,\r\n \"totalNetAmount\": 450,\r\n \"type\": \"SERVICES\"\r\n }\r\n ],\r\n \"notes\": \"Bill for maintenance services\",\r\n \"number\": \"1233330\",\r\n \"orderId\": \"3344566\",\r\n \"paidDate\": \"2021-01-01T00:00:00Z\",\r\n \"paymentTermsId\": \"03\",\r\n \"status\": \"DRAFT\",\r\n \"totalGrossAmount\": 500,\r\n \"vatId\": \"DE987654321\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingType\"\r\n\r\nINVOICE\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"folderManagement\"\r\n\r\n{\r\n \"category\": \"Accounting\",\r\n \"folder\": \"Invoices\",\r\n \"register\": \"2025 January\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"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/bookingProposals"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingProposal\"\r\n\r\n{\r\n \"addresses\": [\r\n {\r\n \"city\": \"city\"\r\n }\r\n ],\r\n \"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\r\n \"bankAccountNumber\": 5407324931,\r\n \"bankCode\": \"50010517\",\r\n \"bic\": \"DEUTDEFF\",\r\n \"bookingProposalDate\": \"2025-07-14T00:00:00Z\",\r\n \"contactAccountNumber\": 70000,\r\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"contactName\": \"John Doe\",\r\n \"currency\": \"EUR\",\r\n \"deliveryDate\": \"2025-07-26T00:00:00Z\",\r\n \"discountPaymentDate\": \"2025-07-16T00:00:00Z\",\r\n \"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",\r\n \"dueDate\": \"2025-07-24T00:00:00Z\",\r\n \"journalCode\": \"60\",\r\n \"iban\": \"DE43100500000920018963\",\r\n \"isPaymentOrder\": true,\r\n \"ledgerName\": \"Payroll\",\r\n \"lineItems\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"db32-4f56-8a9b-1234567890ab\",\r\n \"accountName\": \"EXPENSE\",\r\n \"accountNumber\": 4900,\r\n \"bookingTaxCode\": \"9\",\r\n \"description\": \"Item A\",\r\n \"dimension1\": \"Marketing\",\r\n \"dimension2\": \"Service and Maintenance\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"code\": \"CS1\",\r\n \"dimension\": \"CostCenter\",\r\n \"name\": \"Jerde, Greenfelder and Jacobi\"\r\n }\r\n ],\r\n \"discountAmount\": 100,\r\n \"discountAmount2\": 50,\r\n \"discountPercentage\": 20,\r\n \"discountPercentage2\": 10,\r\n \"taxCode\": \"02\",\r\n \"taxRatePercentage\": 19,\r\n \"totalGrossAmount\": 500,\r\n \"totalNetAmount\": 450,\r\n \"type\": \"SERVICES\"\r\n }\r\n ],\r\n \"notes\": \"Bill for maintenance services\",\r\n \"number\": \"1233330\",\r\n \"orderId\": \"3344566\",\r\n \"paidDate\": \"2021-01-01T00:00:00Z\",\r\n \"paymentTermsId\": \"03\",\r\n \"status\": \"DRAFT\",\r\n \"totalGrossAmount\": 500,\r\n \"vatId\": \"DE987654321\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingType\"\r\n\r\nINVOICE\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"folderManagement\"\r\n\r\n{\r\n \"category\": \"Accounting\",\r\n \"folder\": \"Invoices\",\r\n \"register\": \"2025 January\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<x-api-key>")
req.Header.Add("X-ACCOUNT-KEY", "<x-account-key>")
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/bookingProposals")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingProposal\"\r\n\r\n{\r\n \"addresses\": [\r\n {\r\n \"city\": \"city\"\r\n }\r\n ],\r\n \"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\r\n \"bankAccountNumber\": 5407324931,\r\n \"bankCode\": \"50010517\",\r\n \"bic\": \"DEUTDEFF\",\r\n \"bookingProposalDate\": \"2025-07-14T00:00:00Z\",\r\n \"contactAccountNumber\": 70000,\r\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"contactName\": \"John Doe\",\r\n \"currency\": \"EUR\",\r\n \"deliveryDate\": \"2025-07-26T00:00:00Z\",\r\n \"discountPaymentDate\": \"2025-07-16T00:00:00Z\",\r\n \"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",\r\n \"dueDate\": \"2025-07-24T00:00:00Z\",\r\n \"journalCode\": \"60\",\r\n \"iban\": \"DE43100500000920018963\",\r\n \"isPaymentOrder\": true,\r\n \"ledgerName\": \"Payroll\",\r\n \"lineItems\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"db32-4f56-8a9b-1234567890ab\",\r\n \"accountName\": \"EXPENSE\",\r\n \"accountNumber\": 4900,\r\n \"bookingTaxCode\": \"9\",\r\n \"description\": \"Item A\",\r\n \"dimension1\": \"Marketing\",\r\n \"dimension2\": \"Service and Maintenance\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"code\": \"CS1\",\r\n \"dimension\": \"CostCenter\",\r\n \"name\": \"Jerde, Greenfelder and Jacobi\"\r\n }\r\n ],\r\n \"discountAmount\": 100,\r\n \"discountAmount2\": 50,\r\n \"discountPercentage\": 20,\r\n \"discountPercentage2\": 10,\r\n \"taxCode\": \"02\",\r\n \"taxRatePercentage\": 19,\r\n \"totalGrossAmount\": 500,\r\n \"totalNetAmount\": 450,\r\n \"type\": \"SERVICES\"\r\n }\r\n ],\r\n \"notes\": \"Bill for maintenance services\",\r\n \"number\": \"1233330\",\r\n \"orderId\": \"3344566\",\r\n \"paidDate\": \"2021-01-01T00:00:00Z\",\r\n \"paymentTermsId\": \"03\",\r\n \"status\": \"DRAFT\",\r\n \"totalGrossAmount\": 500,\r\n \"vatId\": \"DE987654321\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingType\"\r\n\r\nINVOICE\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"folderManagement\"\r\n\r\n{\r\n \"category\": \"Accounting\",\r\n \"folder\": \"Invoices\",\r\n \"register\": \"2025 January\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/bookingProposals")
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.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingProposal\"\r\n\r\n{\r\n \"addresses\": [\r\n {\r\n \"city\": \"city\"\r\n }\r\n ],\r\n \"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\r\n \"bankAccountNumber\": 5407324931,\r\n \"bankCode\": \"50010517\",\r\n \"bic\": \"DEUTDEFF\",\r\n \"bookingProposalDate\": \"2025-07-14T00:00:00Z\",\r\n \"contactAccountNumber\": 70000,\r\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"contactName\": \"John Doe\",\r\n \"currency\": \"EUR\",\r\n \"deliveryDate\": \"2025-07-26T00:00:00Z\",\r\n \"discountPaymentDate\": \"2025-07-16T00:00:00Z\",\r\n \"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",\r\n \"dueDate\": \"2025-07-24T00:00:00Z\",\r\n \"journalCode\": \"60\",\r\n \"iban\": \"DE43100500000920018963\",\r\n \"isPaymentOrder\": true,\r\n \"ledgerName\": \"Payroll\",\r\n \"lineItems\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"db32-4f56-8a9b-1234567890ab\",\r\n \"accountName\": \"EXPENSE\",\r\n \"accountNumber\": 4900,\r\n \"bookingTaxCode\": \"9\",\r\n \"description\": \"Item A\",\r\n \"dimension1\": \"Marketing\",\r\n \"dimension2\": \"Service and Maintenance\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"code\": \"CS1\",\r\n \"dimension\": \"CostCenter\",\r\n \"name\": \"Jerde, Greenfelder and Jacobi\"\r\n }\r\n ],\r\n \"discountAmount\": 100,\r\n \"discountAmount2\": 50,\r\n \"discountPercentage\": 20,\r\n \"discountPercentage2\": 10,\r\n \"taxCode\": \"02\",\r\n \"taxRatePercentage\": 19,\r\n \"totalGrossAmount\": 500,\r\n \"totalNetAmount\": 450,\r\n \"type\": \"SERVICES\"\r\n }\r\n ],\r\n \"notes\": \"Bill for maintenance services\",\r\n \"number\": \"1233330\",\r\n \"orderId\": \"3344566\",\r\n \"paidDate\": \"2021-01-01T00:00:00Z\",\r\n \"paymentTermsId\": \"03\",\r\n \"status\": \"DRAFT\",\r\n \"totalGrossAmount\": 500,\r\n \"vatId\": \"DE987654321\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingType\"\r\n\r\nINVOICE\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"folderManagement\"\r\n\r\n{\r\n \"category\": \"Accounting\",\r\n \"folder\": \"Invoices\",\r\n \"register\": \"2025 January\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"meta": {
"warnings": [
"Field not used by target system"
],
"pagination": {
"total": 125,
"perPage": 50,
"currentPage": 1,
"totalPages": 3
}
},
"data": {
"id": "BP-12345",
"addresses ": [
{
"city": "city"
}
],
"bankAccountId": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bankAccountNumber": 5407324931,
"bankCode": "50010517",
"bic": "DEUTDEFF",
"bookingProposalDate": "2025-07-14T00:00:00Z",
"bookingType": "INVOICE",
"contactAccountNumber": 70000,
"contactId": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"contactName ": "John Doe",
"createdDate": "2025-07-16T00:00:00Z",
"currency": "EUR",
"deliveryDate": "2025-07-26T00:00:00Z",
"discountPaymentDate": "2025-07-16T00:00:00Z",
"discountPaymentDate2": "2025-07-18T00:00:00Z",
"dueDate": "2025-07-24T00:00:00Z",
"files": [
"file1.pdf"
],
"journalCode": "60",
"iban": "DE43100500000920018963",
"isPaymentOrder": "true",
"ledgerName": "Payroll",
"lineItems": [
{
"id": "Item-112233",
"accountCode": "200",
"accountId": "db32-4f56-8a9b-1234567890ab",
"accountName": "EXPENSE",
"accountNumber": 4900,
"bookingTaxCode": "9",
"createdDate": "2021-01-01T00:00:00Z",
"description": "Item A",
"dimension1": "Marketing",
"dimension2": "Service and Maintenance",
"dimensions": [
{
"id": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"code": "CS1",
"dimension": "CostCenter",
"name": "Jerde, Greenfelder and Jacobi"
}
],
"discountAmount": 100,
"discountAmount2": 50,
"discountPercentage": 20,
"discountPercentage2": 10,
"taxCode": "02",
"taxRatePercentage": 19,
"totalGrossAmount": 500,
"totalNetAmount": 450,
"type": "SERVICES",
"updatedDate": "2021-01-01T00:00:00Z"
}
],
"notes": "Bill for maintenance services",
"number": "1233330",
"orderId": "3344566",
"paidDate": "2021-01-01T00:00:00Z",
"paymentTermsId": "03",
"status": "DRAFT",
"taskId": "ADHUR74BCBSW8399DCN",
"totalGrossAmount": 500,
"updatedDate": "2025-07-16T00:00:00Z",
"vatId": "DE987654321"
}
}Booking Proposals
Create booking proposal
POST
/
accounting
/
bookingProposals
cURL
curl --request POST \
--url https://api.maesn.dev/accounting/bookingProposals \
--header 'Content-Type: multipart/form-data' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--form 'bookingProposal={
"addresses": [
{
"city": "city"
}
],
"bankAccountId": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bankAccountNumber": 5407324931,
"bankCode": "50010517",
"bic": "DEUTDEFF",
"bookingProposalDate": "2025-07-14T00:00:00Z",
"contactAccountNumber": 70000,
"contactId": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"contactName": "John Doe",
"currency": "EUR",
"deliveryDate": "2025-07-26T00:00:00Z",
"discountPaymentDate": "2025-07-16T00:00:00Z",
"discountPaymentDate2": "2025-07-18T00:00:00Z",
"dueDate": "2025-07-24T00:00:00Z",
"journalCode": "60",
"iban": "DE43100500000920018963",
"isPaymentOrder": true,
"ledgerName": "Payroll",
"lineItems": [
{
"accountCode": "200",
"accountId": "db32-4f56-8a9b-1234567890ab",
"accountName": "EXPENSE",
"accountNumber": 4900,
"bookingTaxCode": "9",
"description": "Item A",
"dimension1": "Marketing",
"dimension2": "Service and Maintenance",
"dimensions": [
{
"id": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"code": "CS1",
"dimension": "CostCenter",
"name": "Jerde, Greenfelder and Jacobi"
}
],
"discountAmount": 100,
"discountAmount2": 50,
"discountPercentage": 20,
"discountPercentage2": 10,
"taxCode": "02",
"taxRatePercentage": 19,
"totalGrossAmount": 500,
"totalNetAmount": 450,
"type": "SERVICES"
}
],
"notes": "Bill for maintenance services",
"number": "1233330",
"orderId": "3344566",
"paidDate": "2021-01-01T00:00:00Z",
"paymentTermsId": "03",
"status": "DRAFT",
"totalGrossAmount": 500,
"vatId": "DE987654321"
}' \
--form bookingType=INVOICE \
--form 'folderManagement={
"category": "Accounting",
"folder": "Invoices",
"register": "2025 January"
}' \
--form files.items='@example-file'import requests
url = "https://api.maesn.dev/accounting/bookingProposals"
files = { "files.items": ("example-file", open("example-file", "rb")) }
payload = {
"bookingProposal": "{
\"addresses\": [
{
\"city\": \"city\"
}
],
\"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",
\"bankAccountNumber\": 5407324931,
\"bankCode\": \"50010517\",
\"bic\": \"DEUTDEFF\",
\"bookingProposalDate\": \"2025-07-14T00:00:00Z\",
\"contactAccountNumber\": 70000,
\"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",
\"contactName\": \"John Doe\",
\"currency\": \"EUR\",
\"deliveryDate\": \"2025-07-26T00:00:00Z\",
\"discountPaymentDate\": \"2025-07-16T00:00:00Z\",
\"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",
\"dueDate\": \"2025-07-24T00:00:00Z\",
\"journalCode\": \"60\",
\"iban\": \"DE43100500000920018963\",
\"isPaymentOrder\": true,
\"ledgerName\": \"Payroll\",
\"lineItems\": [
{
\"accountCode\": \"200\",
\"accountId\": \"db32-4f56-8a9b-1234567890ab\",
\"accountName\": \"EXPENSE\",
\"accountNumber\": 4900,
\"bookingTaxCode\": \"9\",
\"description\": \"Item A\",
\"dimension1\": \"Marketing\",
\"dimension2\": \"Service and Maintenance\",
\"dimensions\": [
{
\"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",
\"code\": \"CS1\",
\"dimension\": \"CostCenter\",
\"name\": \"Jerde, Greenfelder and Jacobi\"
}
],
\"discountAmount\": 100,
\"discountAmount2\": 50,
\"discountPercentage\": 20,
\"discountPercentage2\": 10,
\"taxCode\": \"02\",
\"taxRatePercentage\": 19,
\"totalGrossAmount\": 500,
\"totalNetAmount\": 450,
\"type\": \"SERVICES\"
}
],
\"notes\": \"Bill for maintenance services\",
\"number\": \"1233330\",
\"orderId\": \"3344566\",
\"paidDate\": \"2021-01-01T00:00:00Z\",
\"paymentTermsId\": \"03\",
\"status\": \"DRAFT\",
\"totalGrossAmount\": 500,
\"vatId\": \"DE987654321\"
}",
"bookingType": "INVOICE",
"folderManagement": "{
\"category\": \"Accounting\",
\"folder\": \"Invoices\",
\"register\": \"2025 January\"
}"
}
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('bookingProposal', '{
"addresses": [
{
"city": "city"
}
],
"bankAccountId": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bankAccountNumber": 5407324931,
"bankCode": "50010517",
"bic": "DEUTDEFF",
"bookingProposalDate": "2025-07-14T00:00:00Z",
"contactAccountNumber": 70000,
"contactId": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"contactName": "John Doe",
"currency": "EUR",
"deliveryDate": "2025-07-26T00:00:00Z",
"discountPaymentDate": "2025-07-16T00:00:00Z",
"discountPaymentDate2": "2025-07-18T00:00:00Z",
"dueDate": "2025-07-24T00:00:00Z",
"journalCode": "60",
"iban": "DE43100500000920018963",
"isPaymentOrder": true,
"ledgerName": "Payroll",
"lineItems": [
{
"accountCode": "200",
"accountId": "db32-4f56-8a9b-1234567890ab",
"accountName": "EXPENSE",
"accountNumber": 4900,
"bookingTaxCode": "9",
"description": "Item A",
"dimension1": "Marketing",
"dimension2": "Service and Maintenance",
"dimensions": [
{
"id": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"code": "CS1",
"dimension": "CostCenter",
"name": "Jerde, Greenfelder and Jacobi"
}
],
"discountAmount": 100,
"discountAmount2": 50,
"discountPercentage": 20,
"discountPercentage2": 10,
"taxCode": "02",
"taxRatePercentage": 19,
"totalGrossAmount": 500,
"totalNetAmount": 450,
"type": "SERVICES"
}
],
"notes": "Bill for maintenance services",
"number": "1233330",
"orderId": "3344566",
"paidDate": "2021-01-01T00:00:00Z",
"paymentTermsId": "03",
"status": "DRAFT",
"totalGrossAmount": 500,
"vatId": "DE987654321"
}');
form.append('bookingType', 'INVOICE');
form.append('folderManagement', '{
"category": "Accounting",
"folder": "Invoices",
"register": "2025 January"
}');
form.append('files.items', '{
"fileName": "example-file"
}');
const options = {
method: 'POST',
headers: {'X-API-KEY': '<x-api-key>', 'X-ACCOUNT-KEY': '<x-account-key>'}
};
options.body = form;
fetch('https://api.maesn.dev/accounting/bookingProposals', 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/bookingProposals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingProposal\"\r\n\r\n{\r\n \"addresses\": [\r\n {\r\n \"city\": \"city\"\r\n }\r\n ],\r\n \"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\r\n \"bankAccountNumber\": 5407324931,\r\n \"bankCode\": \"50010517\",\r\n \"bic\": \"DEUTDEFF\",\r\n \"bookingProposalDate\": \"2025-07-14T00:00:00Z\",\r\n \"contactAccountNumber\": 70000,\r\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"contactName\": \"John Doe\",\r\n \"currency\": \"EUR\",\r\n \"deliveryDate\": \"2025-07-26T00:00:00Z\",\r\n \"discountPaymentDate\": \"2025-07-16T00:00:00Z\",\r\n \"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",\r\n \"dueDate\": \"2025-07-24T00:00:00Z\",\r\n \"journalCode\": \"60\",\r\n \"iban\": \"DE43100500000920018963\",\r\n \"isPaymentOrder\": true,\r\n \"ledgerName\": \"Payroll\",\r\n \"lineItems\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"db32-4f56-8a9b-1234567890ab\",\r\n \"accountName\": \"EXPENSE\",\r\n \"accountNumber\": 4900,\r\n \"bookingTaxCode\": \"9\",\r\n \"description\": \"Item A\",\r\n \"dimension1\": \"Marketing\",\r\n \"dimension2\": \"Service and Maintenance\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"code\": \"CS1\",\r\n \"dimension\": \"CostCenter\",\r\n \"name\": \"Jerde, Greenfelder and Jacobi\"\r\n }\r\n ],\r\n \"discountAmount\": 100,\r\n \"discountAmount2\": 50,\r\n \"discountPercentage\": 20,\r\n \"discountPercentage2\": 10,\r\n \"taxCode\": \"02\",\r\n \"taxRatePercentage\": 19,\r\n \"totalGrossAmount\": 500,\r\n \"totalNetAmount\": 450,\r\n \"type\": \"SERVICES\"\r\n }\r\n ],\r\n \"notes\": \"Bill for maintenance services\",\r\n \"number\": \"1233330\",\r\n \"orderId\": \"3344566\",\r\n \"paidDate\": \"2021-01-01T00:00:00Z\",\r\n \"paymentTermsId\": \"03\",\r\n \"status\": \"DRAFT\",\r\n \"totalGrossAmount\": 500,\r\n \"vatId\": \"DE987654321\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingType\"\r\n\r\nINVOICE\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"folderManagement\"\r\n\r\n{\r\n \"category\": \"Accounting\",\r\n \"folder\": \"Invoices\",\r\n \"register\": \"2025 January\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"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/bookingProposals"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingProposal\"\r\n\r\n{\r\n \"addresses\": [\r\n {\r\n \"city\": \"city\"\r\n }\r\n ],\r\n \"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\r\n \"bankAccountNumber\": 5407324931,\r\n \"bankCode\": \"50010517\",\r\n \"bic\": \"DEUTDEFF\",\r\n \"bookingProposalDate\": \"2025-07-14T00:00:00Z\",\r\n \"contactAccountNumber\": 70000,\r\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"contactName\": \"John Doe\",\r\n \"currency\": \"EUR\",\r\n \"deliveryDate\": \"2025-07-26T00:00:00Z\",\r\n \"discountPaymentDate\": \"2025-07-16T00:00:00Z\",\r\n \"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",\r\n \"dueDate\": \"2025-07-24T00:00:00Z\",\r\n \"journalCode\": \"60\",\r\n \"iban\": \"DE43100500000920018963\",\r\n \"isPaymentOrder\": true,\r\n \"ledgerName\": \"Payroll\",\r\n \"lineItems\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"db32-4f56-8a9b-1234567890ab\",\r\n \"accountName\": \"EXPENSE\",\r\n \"accountNumber\": 4900,\r\n \"bookingTaxCode\": \"9\",\r\n \"description\": \"Item A\",\r\n \"dimension1\": \"Marketing\",\r\n \"dimension2\": \"Service and Maintenance\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"code\": \"CS1\",\r\n \"dimension\": \"CostCenter\",\r\n \"name\": \"Jerde, Greenfelder and Jacobi\"\r\n }\r\n ],\r\n \"discountAmount\": 100,\r\n \"discountAmount2\": 50,\r\n \"discountPercentage\": 20,\r\n \"discountPercentage2\": 10,\r\n \"taxCode\": \"02\",\r\n \"taxRatePercentage\": 19,\r\n \"totalGrossAmount\": 500,\r\n \"totalNetAmount\": 450,\r\n \"type\": \"SERVICES\"\r\n }\r\n ],\r\n \"notes\": \"Bill for maintenance services\",\r\n \"number\": \"1233330\",\r\n \"orderId\": \"3344566\",\r\n \"paidDate\": \"2021-01-01T00:00:00Z\",\r\n \"paymentTermsId\": \"03\",\r\n \"status\": \"DRAFT\",\r\n \"totalGrossAmount\": 500,\r\n \"vatId\": \"DE987654321\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingType\"\r\n\r\nINVOICE\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"folderManagement\"\r\n\r\n{\r\n \"category\": \"Accounting\",\r\n \"folder\": \"Invoices\",\r\n \"register\": \"2025 January\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<x-api-key>")
req.Header.Add("X-ACCOUNT-KEY", "<x-account-key>")
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/bookingProposals")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingProposal\"\r\n\r\n{\r\n \"addresses\": [\r\n {\r\n \"city\": \"city\"\r\n }\r\n ],\r\n \"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\r\n \"bankAccountNumber\": 5407324931,\r\n \"bankCode\": \"50010517\",\r\n \"bic\": \"DEUTDEFF\",\r\n \"bookingProposalDate\": \"2025-07-14T00:00:00Z\",\r\n \"contactAccountNumber\": 70000,\r\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"contactName\": \"John Doe\",\r\n \"currency\": \"EUR\",\r\n \"deliveryDate\": \"2025-07-26T00:00:00Z\",\r\n \"discountPaymentDate\": \"2025-07-16T00:00:00Z\",\r\n \"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",\r\n \"dueDate\": \"2025-07-24T00:00:00Z\",\r\n \"journalCode\": \"60\",\r\n \"iban\": \"DE43100500000920018963\",\r\n \"isPaymentOrder\": true,\r\n \"ledgerName\": \"Payroll\",\r\n \"lineItems\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"db32-4f56-8a9b-1234567890ab\",\r\n \"accountName\": \"EXPENSE\",\r\n \"accountNumber\": 4900,\r\n \"bookingTaxCode\": \"9\",\r\n \"description\": \"Item A\",\r\n \"dimension1\": \"Marketing\",\r\n \"dimension2\": \"Service and Maintenance\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"code\": \"CS1\",\r\n \"dimension\": \"CostCenter\",\r\n \"name\": \"Jerde, Greenfelder and Jacobi\"\r\n }\r\n ],\r\n \"discountAmount\": 100,\r\n \"discountAmount2\": 50,\r\n \"discountPercentage\": 20,\r\n \"discountPercentage2\": 10,\r\n \"taxCode\": \"02\",\r\n \"taxRatePercentage\": 19,\r\n \"totalGrossAmount\": 500,\r\n \"totalNetAmount\": 450,\r\n \"type\": \"SERVICES\"\r\n }\r\n ],\r\n \"notes\": \"Bill for maintenance services\",\r\n \"number\": \"1233330\",\r\n \"orderId\": \"3344566\",\r\n \"paidDate\": \"2021-01-01T00:00:00Z\",\r\n \"paymentTermsId\": \"03\",\r\n \"status\": \"DRAFT\",\r\n \"totalGrossAmount\": 500,\r\n \"vatId\": \"DE987654321\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingType\"\r\n\r\nINVOICE\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"folderManagement\"\r\n\r\n{\r\n \"category\": \"Accounting\",\r\n \"folder\": \"Invoices\",\r\n \"register\": \"2025 January\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/bookingProposals")
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.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingProposal\"\r\n\r\n{\r\n \"addresses\": [\r\n {\r\n \"city\": \"city\"\r\n }\r\n ],\r\n \"bankAccountId\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\r\n \"bankAccountNumber\": 5407324931,\r\n \"bankCode\": \"50010517\",\r\n \"bic\": \"DEUTDEFF\",\r\n \"bookingProposalDate\": \"2025-07-14T00:00:00Z\",\r\n \"contactAccountNumber\": 70000,\r\n \"contactId\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"contactName\": \"John Doe\",\r\n \"currency\": \"EUR\",\r\n \"deliveryDate\": \"2025-07-26T00:00:00Z\",\r\n \"discountPaymentDate\": \"2025-07-16T00:00:00Z\",\r\n \"discountPaymentDate2\": \"2025-07-18T00:00:00Z\",\r\n \"dueDate\": \"2025-07-24T00:00:00Z\",\r\n \"journalCode\": \"60\",\r\n \"iban\": \"DE43100500000920018963\",\r\n \"isPaymentOrder\": true,\r\n \"ledgerName\": \"Payroll\",\r\n \"lineItems\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"db32-4f56-8a9b-1234567890ab\",\r\n \"accountName\": \"EXPENSE\",\r\n \"accountNumber\": 4900,\r\n \"bookingTaxCode\": \"9\",\r\n \"description\": \"Item A\",\r\n \"dimension1\": \"Marketing\",\r\n \"dimension2\": \"Service and Maintenance\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"eaa28f49-6028-4b6e-bb12-d8f6278073fc\",\r\n \"code\": \"CS1\",\r\n \"dimension\": \"CostCenter\",\r\n \"name\": \"Jerde, Greenfelder and Jacobi\"\r\n }\r\n ],\r\n \"discountAmount\": 100,\r\n \"discountAmount2\": 50,\r\n \"discountPercentage\": 20,\r\n \"discountPercentage2\": 10,\r\n \"taxCode\": \"02\",\r\n \"taxRatePercentage\": 19,\r\n \"totalGrossAmount\": 500,\r\n \"totalNetAmount\": 450,\r\n \"type\": \"SERVICES\"\r\n }\r\n ],\r\n \"notes\": \"Bill for maintenance services\",\r\n \"number\": \"1233330\",\r\n \"orderId\": \"3344566\",\r\n \"paidDate\": \"2021-01-01T00:00:00Z\",\r\n \"paymentTermsId\": \"03\",\r\n \"status\": \"DRAFT\",\r\n \"totalGrossAmount\": 500,\r\n \"vatId\": \"DE987654321\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"bookingType\"\r\n\r\nINVOICE\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"folderManagement\"\r\n\r\n{\r\n \"category\": \"Accounting\",\r\n \"folder\": \"Invoices\",\r\n \"register\": \"2025 January\"\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"meta": {
"warnings": [
"Field not used by target system"
],
"pagination": {
"total": 125,
"perPage": 50,
"currentPage": 1,
"totalPages": 3
}
},
"data": {
"id": "BP-12345",
"addresses ": [
{
"city": "city"
}
],
"bankAccountId": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bankAccountNumber": 5407324931,
"bankCode": "50010517",
"bic": "DEUTDEFF",
"bookingProposalDate": "2025-07-14T00:00:00Z",
"bookingType": "INVOICE",
"contactAccountNumber": 70000,
"contactId": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"contactName ": "John Doe",
"createdDate": "2025-07-16T00:00:00Z",
"currency": "EUR",
"deliveryDate": "2025-07-26T00:00:00Z",
"discountPaymentDate": "2025-07-16T00:00:00Z",
"discountPaymentDate2": "2025-07-18T00:00:00Z",
"dueDate": "2025-07-24T00:00:00Z",
"files": [
"file1.pdf"
],
"journalCode": "60",
"iban": "DE43100500000920018963",
"isPaymentOrder": "true",
"ledgerName": "Payroll",
"lineItems": [
{
"id": "Item-112233",
"accountCode": "200",
"accountId": "db32-4f56-8a9b-1234567890ab",
"accountName": "EXPENSE",
"accountNumber": 4900,
"bookingTaxCode": "9",
"createdDate": "2021-01-01T00:00:00Z",
"description": "Item A",
"dimension1": "Marketing",
"dimension2": "Service and Maintenance",
"dimensions": [
{
"id": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"code": "CS1",
"dimension": "CostCenter",
"name": "Jerde, Greenfelder and Jacobi"
}
],
"discountAmount": 100,
"discountAmount2": 50,
"discountPercentage": 20,
"discountPercentage2": 10,
"taxCode": "02",
"taxRatePercentage": 19,
"totalGrossAmount": 500,
"totalNetAmount": 450,
"type": "SERVICES",
"updatedDate": "2021-01-01T00:00:00Z"
}
],
"notes": "Bill for maintenance services",
"number": "1233330",
"orderId": "3344566",
"paidDate": "2021-01-01T00:00:00Z",
"paymentTermsId": "03",
"status": "DRAFT",
"taskId": "ADHUR74BCBSW8399DCN",
"totalGrossAmount": 500,
"updatedDate": "2025-07-16T00:00:00Z",
"vatId": "DE987654321"
}
}Field support per integration

Business Central
Business Central
If you’re not using the Interactive Authentication Flow, make sure the query parameters
environmentName and companyId are correctly populated.
You can obtain these values by using the GET Environments and GET Companies endpoints available under the Authentication section.object
required
Show properties
Show properties
string
The
bookingProposalDate field represents the invoice date.For date format details visit the Standardized Data section.string
required
The
contactId field represents the ID of the vendor associated with the booking proposal.You can obtain this value by using the GET Suppliers endpoint.Either contactId or contactAccountNumber should be provided to identify the vendor.number
The
contactAccountNumber field represents the vendor number associated with the booking proposal.Either contactId or contactAccountNumber should be provided to identify the vendor.enum
The
currency field supports ISO 4217 (3-letter codes).For details visit the Standardized Data section.string
The
dueDate field represents the date by which the payment is expected.For date format details visit the Standardized Data section.BookingLineItem[]
Show properties
Show properties
string
The
accountId field specifies the ID of the general ledger account linked to the line item.You can obtain this value by using the GET Accounts endpoint.string
The
description field provides details about the specific line item.Dimension[]
number
The
totalGrossAmount field represents the unit cost for the line item.Note: Quantity is fixed at 1 for each line item.string
The
taxCode field represents the tax code associated with the line item.number
The
discountAmount field represents the discount amount applied to the line item.number
The
discountPercentage field represents the discount percentage applied to the line item.string
The
number field represents the vendor invoice number for the booking proposal.BookingType
required
Available options:
BILLNote: Business Central booking proposals are created as purchase invoices, so only BILL type is supported.file[]
The
files array can be used to attach files to the booking proposal. Only one file can be attached.The name of the uploaded files must include the file extension, for example
invoice.pdf.
DATEV Unternehmen Online
DATEV Unternehmen Online
This endpoint has been deprecated. Please use the
Create Booking Proposal Async endpoint.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.string
required
Show properties
Show properties
string
The
id field represents the unique identifier of the booking proposal.The
id must be a valid UUID; otherwise, it will be ignored.This field is only relevant and used when uploading files with the booking proposal.number
The
bankAccountNumber field must be 1-10 digits long and includes only numbers.If bankAccountNumber is provided, then bankCode is required.Example: 532013000string
The
bankCode must respect the following pattern: ^([1-9]|[0-9]{2,10})$If bankCode is provided, then bankAccountNumber is required.Example: 37040044string
The
bic field must respect the following pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}[A-Z0-9]{0,3}$.Example: DEUTDEFF.string
required
For date format details visits the
Standardized Data section.number
The
contactAccountNumber field represents the account number of the contact associated with the booking proposal.It must be a valid number. The length must be equal to the account configured length + 1.It is the customer account number for INVOICE or the vendor account number for BILL.string
The
contactName field represents the name of the contact associated with the booking proposal.It cannot exceed 50 characters in length.enum
required
The
currency field supports ISO 4217 (3-letter codes).
For details visits the Standardized Data section.string
For date format details visits the
Standardized Data section.string
For date format details visits the
Standardized Data section.The discountPaymentDate field represents the date until which a discount (discountAmount and discountPercentage in line items) can be applied to the payment.If discountPaymentDate is provided, then discountAmount and discountPercentage are required for each line item.Its value must be earlier than the dueDate and later than the bookingProposalDate.string
For date format details visits the
Standardized Data section.The discountPaymentDate2 field represents the date until which a discount (discountAmount2 and discountPercentage2 in line items) can be applied to the payment.If provided, discountPaymentDate, discountAmount, discountPercentage, discountAmount2 and discountPercentage2 are required for each line item.Its value must be earlier than the dueDate and later than the bookingProposalDate and discountPaymentDate.string
For date format details visits the
Standardized Data section.The dueDate field represents the date by which the payment for the booking proposal is expected to be made.It is required when discount fields are provided. It must be after the bookingProposalDate.string
The
iban field must respect the following pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$.Example: DE89370400440532013000.boolean
The
isPaymentOrder field determines whether a payment instruction (transfer for bills or direct debit for invoices) should
be automatically created when the booking proposal is processed.It must be false if paymentTermId is equal to 9.string
required
The
ledgerName field represents the name of the correct ledger folder where the data will be sent to.To get the correct name, you can use the GET Accounts endpoint.For
INVOICE booking proposals, the ledgerName must be of type ACCOUNT_RECEIVABLE, and for BILL booking proposals, it must be of type ACCOUNT_PAYABLE.BookingLineItem[]
required
Depending on the Rechnungsdatenschnittstelle (invoice data interface) settings in DATEV Unternehmen Online, either a single booking proposal or one booking proposal per line item is created. Please check your configuration to ensure the desired behavior.
Show properties
Show properties
string
The
accountName field specifies the name of the general ledger account linked to the individual line item within the invoice or bill.It cannot exceed 40 characters in length.number
The
accountNumber field specifies the general ledger account linked to the individual line item within the invoice or bill.It must be a valid number. The length must be equal to the account configured length.string
The
bookingTaxCode field represents the BU code associated with the line item.It must be max 4 characters long. Only numbers are allowed.string
The
description field provides details about the specific line item in the booking proposal.It cannot exceed 60 characters in length.string
The
dimension1 field represents the information for cost accounting (KOST1).It cannot exceed 36 characters in length. It must follow the pattern : ^([\S][\S ]{0,34}[\S]|[\S]{0,1})$.Example: Marketing.string
The
dimension2 field represents the information for cost accounting (KOST2).It cannot exceed 36 characters in length. It must follow the pattern : ^([\S][\S ]{0,34}[\S]|[\S]{0,1})$.Example: IT department.number
The
discountAmount field represents the fixed amount to be discounted if paid by the discountPaymentDate.It must be a positive number with up to 8 digits before the decimal point and exactly 2 digits after.It cannot exceed the line item’s totalGrossAmount.number
The
discountAmount2 field represents the fixed amount to be discounted if paid by the discountPaymentDate2.It must be a positive number with up to 8 digits before the decimal point and exactly 2 digits after.It cannot exceed the line item’s totalGrossAmount and the discountAmount.number
The
discountPercentage field represents the percentage to be discounted if paid by the discountPaymentDate.It must be a positive number with up to 2 digits before the decimal point and up to 2 digits after.It cannot exceed 100%.number
The
discountPercentage2 field represents the percentage to be discounted if paid by the discountPaymentDate2.It must be a positive number with up to 2 digits before the decimal point and up to 2 digits after.It must be less then the discountPercentage.number
The
taxRatePercentage field represents the tax rate applied to the line item.It must be a positive number.number
required
The
totalGrossAmount field represents the total gross amount for the specific line item.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
The
notes field allows for additional information or comments related to the booking proposal.
It cannot exceed 120 characters in length.string
required
The
number field represents the document number.It must match the pattern: ^[a-zA-Z0-9$%&*\+\-/]{0,36}$.string
The
orderId field represents the order identifier associated with the booking proposal.It must match the pattern: ^[a-zA-Z0-9$%&*+\-./]{1,30}$.string
For date format details visits the
Standardized Data section.string
The
paymentTermsId field represents the identifier of the payment term associated with the booking proposal.It is max 3 characters long. It must includes only numbers.If provided, the discount fields are not allowed.number
required
The
totalGrossAmount field represents the total gross amount for the entire booking proposal.It cannot be zero and must equal the sum of the totalGrossAmount of all line items.string
The
vatId field represents the VAT identification number associated with the booking proposal.It must match pattern: ^[0-9a-zA-Z\. _]{1,15}$.BookingType
required
Available options:
INVOICE, BILLfile[]
The
files array can be used to attach files to the booking proposal.The name of the uploaded files must include the file extension, for example
invoice.pdf.The file name must not exceed 255 characters in length.
FolderManagement
The
folderManagement object defines the three-level folder structure for a booking proposal. If not provided, the default structure will be used.
Exact Online
Exact Online
If you’re not using the Interactive Authentication Flow, make sure the query parameter
companyId is correctly populated.
You can obtain this value by using the GET Companies endpoint available under the Authentication section.string
required
Show properties
Show properties
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
required
The
contactId represents the contact associated with the booking proposal.
If the bookingType is BILL, this must be the id of a supplier.
If the booking type is INVOICE, this must be the id of a customer.enum
Available options (3-letter ISO 4217):
AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CVE, CZK, DJF, DKK, DOP, DZD, EEK, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GQE, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MYR, MZM, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SYP, SZL, THB, TJS, TMT, TND, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEB, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, YER, ZAR, ZMK, ZWRstring
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
required
BookingLineItem[]
required
Show properties
Show properties
string
required
The
accountId field specifies the id of the general ledger account linked to the individual line item within the booking proposal.string
string
The
dimension1 field represents the name of CostCenter category.string
The
dimension2 field represents the name of CostUnit category.string
If the
taxCode is not provided, it will be set to the default tax code for the account.number
number
If the
taxCode is provided and is of type INCLUSIVE, the totalNetAmount will be treated as a gross amount (i.e., including tax).string
string
The
paymentTermsId field represents the code of the payment term associated with the booking proposal.To get the correct code, you can use the GET PaymentTerms endpoint.BookingType
required
Available options:
INVOICE, BILL, INVOICE_CREDIT_NOTEfile[]
The file name must not exceed 255 characters in length.

Lexware Office
Lexware Office
Supported request parameters:
string
required
Show properties
Show properties
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
required
The
contactId field represents the id of the contact associated with the booking proposal.string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
It is only supported for booking proposals of type INVOICE.
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
BookingLineItem[]
required
Show properties
Show properties
string
string
number
BookingType
required
Available options:
BILL, INVOICEfile[]
The file name must not exceed 255 characters in length.

Moneybird
Moneybird
If you’re not using the Interactive Authentication Flow, make sure the query parameter
companyId is correctly populated.
You can obtain this value by using the GET Companies endpoint available under the Authentication section.string
required
Show properties
Show properties
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
It is required for booking proposals of type BILL.
string
required
The
contactId field represents the id of the contact associated with the booking proposal.string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
It is only supported for booking proposals of type BILL.
BookingLineItem[]
required
Show properties
Show properties
string
The
accountId field specifies the id of ledger account linked to the individual line item within the booking proposal.To get the correct accountId, you can use the GET Accounts endpoint.string
string
The
taxCode field represents the tax code associated with the line item.To get the correct code, you can use the GET TaxRates endpoint.It is required for booking proposals of type BILL.
number
string
The
number field represents the reference number of the booking proposal.It is required for booking proposals of type BILL.
string
The
paymentTermsId field represents the reference or description of the payment term associated with the booking proposal.It is only supported for booking proposals of type INVOICE
BookingType
required
Available options:
BILL, INVOICEfile[]
The file name must not exceed 255 characters in length.

Sage Accounting
Sage Accounting
This endpoint is available only for the following countries:
Accounting Plus: Canada, United Kingdom, Ireland
Accounting Standard: United Kingdom, Ireland
Accounting Start: Canada, United Kingdom, Ireland
Accounting Standard: United Kingdom, Ireland
Accounting Start: Canada, United Kingdom, Ireland
When handling a new connection in your integration, it is advisable to first determine which subscription your customer is using to ensure compatibility. To do this, you can use the
GET Companies call to retrieve all businesses available for the user. The user will then select one of these businesses.
It is also a good practice to verify that the active property of the selected business is set to true before proceeding with the integration setup.string
required
Show properties
Show properties
string
required
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
required
The
contactId field represents the id of the contact associated with the booking proposal.string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
It is only supported higher subscription levels (Accounting Plus and Accounting Standard).
BookingLineItem[]
required
string
string
string
The
paymentTermsId field represents the reference or description of the payment term associated with the booking proposal.BookingType
required
Available options:
INVOICE
sevdesk
sevdesk
Supported request parameters:
string
required
Show properties
Show properties
string
required
The
contactId field represents the id of the contact associated with the booking proposal.string
The
contactName field represents the name of the contact associated with the booking proposal.enum
Available options (3-letter ISO 4217):
AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CVE, CZK, DJF, DKK, DOP, DZD, EEK, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GQE, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MYR, MZM, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SYP, SZL, THB, TJS, TMT, TND, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEB, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, YER, ZAR, ZMK, ZWRstring
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
BookingLineItem[]
required
Show properties
Show properties
number
required
The
accountNumber field specifies the general ledger account linked to the individual line item within the invoice or bill.number
required
number
required
Either the
totalGrossAmount or totalNetAmount field must be provided.number
required
Either the
totalGrossAmount or totalNetAmount field must be provided.string
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
enum
Available options :
A booking proposal must have status
DRAFT, OPENA booking proposal must have status
OPEN to be marked as paid via the /payments endpoint.BookingType
required
Available options:
INVOICE, BILLfile[]
The file name must not exceed 255 characters in length.

Snelstart
Snelstart
Supported request parameters:
string
required
Show properties
Show properties
string
required
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
required
Id of the related contact. For invoice proposals, this is the customer id. For bill proposals, this is the supplier id.
BookingLineItem[]
required
Show properties
Show properties
string
required
The
accountId field specifies the id of the general ledger account linked to the individual line item within the booking proposal.string
string
string
Note that if the
taxCode is provided, the taxRatePercentage must be provided too. string
Note that if the
taxRatePercentage is provided, the taxCode must be provided too.number
required
string
string
required
string
The number of days until the booking proposal is due.
BookingType
required
Available options:
INVOICE, BILL, INVOICE_CREDIT_NOTE, BILL_CREDIT_NOTEfile[]
The file name must not exceed 255 characters in length.

Visma e-conomic
Visma e-conomic
Supported request fields:
string
required
BookingType
required
Available options:
BILL, INVOICE
Xero
Xero
Supported request parameters:
string
required
Show properties
Show properties
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
required
The
contactId field represents the id of the contact associated with the booking proposal.enum
The
currency field supports ISO 4217 (3-letter codes).For details visit the Standardized Data section.string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
BookingLineItem[]
required
string
The
number field represents the reference number for the booking proposal transaction.enum
Available options:
DRAFT, SUBMITTED, OPEN, PAID, VOIDED, CANCELLEDBookingType
required
Available options:
BILL, INVOICEfile[]
The file name must not exceed 255 characters in length.
Headers
API key
Example:
"example value"
Account key
Example:
"example value"
Query Parameters
Body
multipart/form-data
Last modified on July 20, 2026
Was this page helpful?
⌘I