cURL
curl --request POST \
--url https://api.maesn.dev/accounting/bookingProposals/async \
--header 'Content-Type: multipart/form-data' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--form 'bookingProposal={
"id": "23a24449-6v28-446e-bb12-3f428073fc",
"addresses ": [
{
"city": "city"
}
],
"bankAccount": {
"id": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bic": "DEUTDEFF",
"code": "50010517",
"iban": "DE89370400440532013000",
"number": 5407324931
},
"bookingProposalDate": "2025-07-14T00:00:00Z",
"contact": {
"id": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"accountNumber": 70000,
"name": "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",
"generatorName": "Maesn GmbH",
"journalCode": "60",
"isPaymentOrder": "true",
"ledgerName": "Eingangsrechnungen",
"lineItems": [
{
"id": "Item-112233",
"account": {
"id": "db32-4f56-8a9b-1234567890ab",
"code": "200",
"name": "EXPENSE",
"number": 4900
},
"description": "Item A",
"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": "9",
"taxRatePercentage": 19,
"totalGrossAmount": 500,
"totalNetAmount": 450,
"type": "SERVICE"
}
],
"notes": "Bill for maintenance services",
"number": "1233330",
"orderId": "3344566",
"paidDate": "2025-07-20T00:00:00Z",
"paymentTermId": "03",
"status": "DRAFT",
"totalGrossAmount": 500,
"vatId": "DE987654321"
}' \
--form 'files=<string>' \
--form 'folderManagement={
"category": "Accounting",
"folder": "Invoices",
"register": "2025 January"
}' \
--form files.items='@example-file'{
"meta": {
"warnings": [
"Field not used by target system"
],
"pagination": {
"total": 125,
"perPage": 50,
"currentPage": 1,
"totalPages": 3
}
},
"data": {
"taskId": "02cc5849-b23c-48fe-8a9b-96f74bfc9571"
}
}Booking Proposals
Create booking proposal async
POST
/
accounting
/
bookingProposals
/
async
cURL
curl --request POST \
--url https://api.maesn.dev/accounting/bookingProposals/async \
--header 'Content-Type: multipart/form-data' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--form 'bookingProposal={
"id": "23a24449-6v28-446e-bb12-3f428073fc",
"addresses ": [
{
"city": "city"
}
],
"bankAccount": {
"id": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bic": "DEUTDEFF",
"code": "50010517",
"iban": "DE89370400440532013000",
"number": 5407324931
},
"bookingProposalDate": "2025-07-14T00:00:00Z",
"contact": {
"id": "eaa28f49-6028-4b6e-bb12-d8f6278073fc",
"accountNumber": 70000,
"name": "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",
"generatorName": "Maesn GmbH",
"journalCode": "60",
"isPaymentOrder": "true",
"ledgerName": "Eingangsrechnungen",
"lineItems": [
{
"id": "Item-112233",
"account": {
"id": "db32-4f56-8a9b-1234567890ab",
"code": "200",
"name": "EXPENSE",
"number": 4900
},
"description": "Item A",
"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": "9",
"taxRatePercentage": 19,
"totalGrossAmount": 500,
"totalNetAmount": 450,
"type": "SERVICE"
}
],
"notes": "Bill for maintenance services",
"number": "1233330",
"orderId": "3344566",
"paidDate": "2025-07-20T00:00:00Z",
"paymentTermId": "03",
"status": "DRAFT",
"totalGrossAmount": 500,
"vatId": "DE987654321"
}' \
--form 'files=<string>' \
--form 'folderManagement={
"category": "Accounting",
"folder": "Invoices",
"register": "2025 January"
}' \
--form files.items='@example-file'{
"meta": {
"warnings": [
"Field not used by target system"
],
"pagination": {
"total": 125,
"perPage": 50,
"currentPage": 1,
"totalPages": 3
}
},
"data": {
"taskId": "02cc5849-b23c-48fe-8a9b-96f74bfc9571"
}
}Field support per integration
DATEV Unternehmen Online
DATEV Unternehmen Online
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.Show properties
Show properties
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.Show properties
Show properties
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.The
code must respect the following pattern: ^([1-9]|[0-9]{2,10})$If code is provided, then number is required.Example: 37040044The
iban field must respect the following pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$.Example: DE89370400440532013000.The
number field must be 1-10 digits long and includes only numbers.If number is provided, then code is required.Example: 532013000For date format details visits the
Standardized Data section.Show properties
Show properties
The
accountNumber 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 and CREDIT_NOTE or the vendor account number for BILL and VENDOR_CREDIT.The
name field represents the name of the contact associated with the booking proposal.It cannot exceed 50 characters in length.The
currency field supports ISO 4217 (3-letter codes).
For details visits the Standardized Data section.For date format details visits the
Standardized Data section.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.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.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.If not provided, the fallback value
Integration will be used.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.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 and CREDIT_NOTE booking proposals, the ledgerName must be of type ACCOUNT_RECEIVABLE, and for BILL and VENDOR_CREDIT booking proposals, it must be of type ACCOUNT_PAYABLE.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
Show properties
Show properties
The
name field specifies the name of the general ledger account linked to the individual line item.It cannot exceed 40 characters in length.The
number field specifies the general ledger account linked to the individual line item.It must be a valid number. The length must be equal to the account configured length.The
description field provides details about the specific line item in the booking proposal.It cannot exceed 60 characters in length.Only 2 dimensions are allowed per line item.
Show properties
Show properties
The
name field specifies the name of the dimension associated with the line item.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 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.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.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%.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.The
taxCode field represents the BU code associated with the line item.It must be max 4 characters long. Only numbers are allowed.The
taxRatePercentage field represents the tax rate applied to the line item.It must be a positive number.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.The
notes field allows for additional information or comments related to the booking proposal.
It cannot exceed 120 characters in length.The
number field represents the document number.It must match the pattern: ^[a-zA-Z0-9$%&*\+\-/]{0,36}$.The
orderId field represents the order identifier associated with the booking proposal.It must match the pattern: ^[a-zA-Z0-9$%&*+\-./]{1,30}$.For date format details visits the
Standardized Data section.The
paymentTermId 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.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.It must always be a positive amount. The bookingType (INVOICE, BILL, CREDIT_NOTE, VENDOR_CREDIT) determines the document type.The
vatId field represents the VAT identification number associated with the booking proposal.It must match pattern: ^[0-9a-zA-Z\. _]{1,15}$.Available options:
INVOICE, BILL, CREDIT_NOTE, VENDOR_CREDITThe
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
folderManagement object defines the three-level folder structure for a booking proposal. If not provided, the default structure will be used.Show properties
Show properties
Query Parameters
Body
multipart/form-data
Last modified on June 9, 2026
Was this page helpful?
⌘I