Skip to main content
POST
/
accounting
/
expenses
cURL
curl --request POST \
  --url https://api.maesn.dev/accounting/expenses \
  --header 'Content-Type: multipart/form-data' \
  --header 'X-ACCOUNT-KEY: <x-account-key>' \
  --header 'X-API-KEY: <x-api-key>' \
  --form 'expense={
  "id ": "9dea18d2-748e-4bda-9f4c-02b08a9622cd",
  "accountCode ": "200",
  "accountId ": "6527a18d2-748e-4bda-9f4c-02b08a9622cd",
  "accountNumber ": 70000,
  "currency": "EUR",
  "customerId": "8a32de4f-55cc-4962-b000-a2a20662b821",
  "description": "Expense_07/25 for business trip",
  "documentId": "c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf",
  "exchangeRate": "1",
  "expenseLines": [
    {
      "id": "b9dade6b-2b69-42c9-bcd4-841960f6cd9f",
      "accountCode": "200",
      "accountId": "56dec6c2-b14c-43ea-87bb-cc67b0ba2545",
      "accountNumber": 4900,
      "currency": "EUR",
      "description": "Gasoline for business trip",
      "dimensions": [
        {
          "id": "efa82f42-fd85-11e1-a21f-0800200c9a33",
          "name": "Material/Waren"
        }
      ],
      "documentNumber": "EXP-12345",
      "exchangeRate": 1,
      "itemId": "9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
      "taxRate": {
        "id": "1895b05b-38a6-4a6a-9653-166389894350",
        "code": "03",
        "name": "Tax19",
        "taxRatePercentage": "19"
      },
      "totalGrossAmount": 119,
      "totalNetAmount": 100
    }
  ],
  "journalCode": "60",
  "ledgerName": "Payroll",
  "note": "Gasoline for business trip",
  "paymentTermId": "d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l",
  "paymentType": "CASH",
  "supplierId": "52c049b9-91b7-4828-b346-e1eeadfa31dd",
  "type": "EXPENSE",
  "totalGrossAmount": 119,
  "totalNetAmount": 100,
  "totalTaxAmount": 5,
  "transactionDate": "2025-07-15T00:00:00Z"
}'
{
  "meta": {
    "warnings": [
      "Field not used by target system"
    ],
    "pagination": {
      "total": 123,
      "perPage": 123,
      "currentPage": 123,
      "totalPages": 123
    }
  },
  "data": {
    "id": "9dea18d2-748e-4bda-9f4c-02b08a9622cd",
    "accountCode ": "200",
    "accountId ": "6527a18d2-748e-4bda-9f4c-02b08a9622cd",
    "accountNumber ": 70000,
    "createdDate": "2025-07-15T00:00:00Z",
    "currency": "EUR",
    "customerId": "8a32de4f-55cc-4962-b000-a2a20662b821",
    "description": "Expense_07/25 for business trip",
    "documentId": "c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf",
    "exchangeRate": "1",
    "expenseLines": [
      {
        "id": "b9dade6b-2b69-42c9-bcd4-841960f6cd9f",
        "accountCode": "200",
        "accountId": "56dec6c2-b14c-43ea-87bb-cc67b0ba2545",
        "accountNumber": 4900,
        "createdDate ": "2025-07-15T00:00:00Z",
        "currency": "EUR",
        "description": "Gasoline for business trip",
        "dimensions": [
          {
            "id": "efa82f42-fd85-11e1-a21f-0800200c9a33",
            "name": "Material/Waren"
          }
        ],
        "documentNumber": "EXP-12345",
        "exchangeRate": 1,
        "itemId": "9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
        "taxRate": {
          "id": "1895b05b-38a6-4a6a-9653-166389894350",
          "code": "03",
          "name": "Tax19",
          "taxRatePercentage": "19"
        },
        "totalGrossAmount": 119,
        "totalNetAmount": 100,
        "updatedDate": "2025-07-15T00:00:00Z"
      }
    ],
    "files": [
      "file1.pdf"
    ],
    "journalCode": "60",
    "ledgerName": "Payroll",
    "note": "Gasoline for business trip",
    "paymentTermId": "d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l",
    "paymentType": "CASH",
    "supplierId": "52c049b9-91b7-4828-b346-e1eeadfa31dd",
    "taskId ": "ADB4457839PXTC2220",
    "type": "EXPENSE",
    "totalGrossAmount": 119,
    "totalNetAmount": 100,
    "totalTaxAmount": 19,
    "transactionDate": "2025-07-15T00:00:00Z",
    "updatedDate": "2025-07-15T00:00:00Z"
  }
}

Field support per integration

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.
Supported Request Parameters:
expense
string
required
files
file[]
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.
Supported Request Parameters:
expense
string
required
files
file[]
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.
Supported Request Parameters:
expense
string
required
files
file[]
Supported Request Parameters:
expense
string
required
files
file[]
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.
Supported Request Parameters:
expense
string
required
Supported Request Parameters:
expense
string
required
files
file[]

Headers

X-API-KEY
string
required

API key

X-ACCOUNT-KEY
string
required

Account key

Query Parameters

companyId
string
environmentName
string

Body

multipart/form-data
files
file[]

Array of files to upload

expense
object

Response

200 - application/json
meta
object
data
object
I