cURL
curl --request POST \
--url https://api.maesn.dev/accounting/expenses/async \
--header 'Content-Type: multipart/form-data' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--form 'files=<string>' \
--form 'expense={
"account ": {
"id": "db32-4f56-8a9b-1234567890ab",
"code": "200",
"name": "EXPENSE",
"number": 4900
},
"currency": "EUR",
"customerId": "8a32de4f-55cc-4962-b000-a2a20662b821",
"description": "Expense_07/25 for business trip",
"documentId": "c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf",
"expenseLines": [
{
"account ": {
"id": "db32-4f56-8a9b-1234567890ab",
"code": "200",
"name": "EXPENSE",
"number": 4900
},
"currency": "EUR",
"description": "Gasoline for business trip",
"dimensions": [
{
"id": "efa82f42-fd85-11e1-a21f-0800200c9a33",
"categoryName": "CostCenter",
"name": "Material/Waren"
}
],
"documentNumber": "EXP-12345",
"exchangeRate": 1,
"itemId": "9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"description": "Tax19",
"taxRatePercentage": "19"
},
"totalGrossAmount": 119,
"totalNetAmount": 100
}
],
"generatorName": "Maesn GmbH",
"journalCode": "60",
"note": "Gasoline for business trip",
"paymentTermId": "d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l",
"paymentType": "CASH",
"supplierId": "52c049b9-91b7-4828-b346-e1eeadfa31dd",
"totalGrossAmount": 119,
"totalNetAmount": 100,
"totalTaxAmount": 5,
"transactionDate": "2025-07-15T00:00:00Z"
}' \
--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"
}
}Expenses
Create expense async
POST
/
accounting
/
expenses
/
async
cURL
curl --request POST \
--url https://api.maesn.dev/accounting/expenses/async \
--header 'Content-Type: multipart/form-data' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--form 'files=<string>' \
--form 'expense={
"account ": {
"id": "db32-4f56-8a9b-1234567890ab",
"code": "200",
"name": "EXPENSE",
"number": 4900
},
"currency": "EUR",
"customerId": "8a32de4f-55cc-4962-b000-a2a20662b821",
"description": "Expense_07/25 for business trip",
"documentId": "c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf",
"expenseLines": [
{
"account ": {
"id": "db32-4f56-8a9b-1234567890ab",
"code": "200",
"name": "EXPENSE",
"number": 4900
},
"currency": "EUR",
"description": "Gasoline for business trip",
"dimensions": [
{
"id": "efa82f42-fd85-11e1-a21f-0800200c9a33",
"categoryName": "CostCenter",
"name": "Material/Waren"
}
],
"documentNumber": "EXP-12345",
"exchangeRate": 1,
"itemId": "9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"description": "Tax19",
"taxRatePercentage": "19"
},
"totalGrossAmount": 119,
"totalNetAmount": 100
}
],
"generatorName": "Maesn GmbH",
"journalCode": "60",
"note": "Gasoline for business trip",
"paymentTermId": "d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l",
"paymentType": "CASH",
"supplierId": "52c049b9-91b7-4828-b346-e1eeadfa31dd",
"totalGrossAmount": 119,
"totalNetAmount": 100,
"totalTaxAmount": 5,
"transactionDate": "2025-07-15T00:00:00Z"
}' \
--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
Show properties
Show properties
The
To get the correct name, you can use the
Note that the
account.name 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.Note that the
ledgerName must be of type CASH.The
currency field supports ISO 4217 (3-letter codes).
For details visits the Standardized Data section.Show properties
Show properties
Show properties
Show properties
The
account.number field specifies the general ledger account linked to the expense line.The
description field provides details about the specific expense line.It cannot exceed 60 characters in length.Show properties
Show properties
The
name field specifies the name of the dimension associated with the expense line.It cannot exceed 36 characters in length. It must follow the pattern : ^([\S][\S ]{0,34}[\S]|[\S]{0,1})$.Example: Marketing.The
documentNumber field represents the document number reference.It must match the pattern: ^[a-zA-Z0-9$%&*\+\-/]{0,36}$.The
note field allows for additional information or comments related to the expense.
It cannot exceed 120 characters in length.Last modified on June 10, 2026
Was this page helpful?
⌘I