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 'files=<string>' \
--form 'expense={
"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": [
{
"accountCode": "200",
"accountId": "56dec6c2-b14c-43ea-87bb-cc67b0ba2545",
"accountNumber": 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",
"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",
"totalGrossAmount": 119,
"totalNetAmount": 100,
"totalTaxAmount": 5,
"transactionDate": "2025-07-15T00:00:00Z"
}' \
--form files.items='@example-file'import requests
url = "https://api.maesn.dev/accounting/expenses"
files = { "files.items": ("example-file", open("example-file", "rb")) }
payload = {
"files": "<string>",
"expense": "{
\"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\": [
{
\"accountCode\": \"200\",
\"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",
\"accountNumber\": 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\",
\"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\",
\"totalGrossAmount\": 119,
\"totalNetAmount\": 100,
\"totalTaxAmount\": 5,
\"transactionDate\": \"2025-07-15T00:00:00Z\"
}"
}
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('files', '<string>');
form.append('expense', '{
"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": [
{
"accountCode": "200",
"accountId": "56dec6c2-b14c-43ea-87bb-cc67b0ba2545",
"accountNumber": 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",
"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",
"totalGrossAmount": 119,
"totalNetAmount": 100,
"totalTaxAmount": 5,
"transactionDate": "2025-07-15T00:00:00Z"
}');
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/expenses', 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/expenses",
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=\"files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expense\"\r\n\r\n{\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"6527a18d2-748e-4bda-9f4c-02b08a9622cd\",\r\n \"accountNumber\": 70000,\r\n \"currency\": \"EUR\",\r\n \"customerId\": \"8a32de4f-55cc-4962-b000-a2a20662b821\",\r\n \"description\": \"Expense_07/25 for business trip\",\r\n \"documentId\": \"c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf\",\r\n \"exchangeRate\": \"1\",\r\n \"expenseLines\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",\r\n \"accountNumber\": 4900,\r\n \"currency\": \"EUR\",\r\n \"description\": \"Gasoline for business trip\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"efa82f42-fd85-11e1-a21f-0800200c9a33\",\r\n \"categoryName\": \"CostCenter\",\r\n \"name\": \"Material/Waren\"\r\n }\r\n ],\r\n \"documentNumber\": \"EXP-12345\",\r\n \"exchangeRate\": 1,\r\n \"itemId\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\r\n \"taxRate\": {\r\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\r\n \"code\": \"03\",\r\n \"name\": \"Tax19\",\r\n \"taxRatePercentage\": \"19\"\r\n },\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100\r\n }\r\n ],\r\n \"journalCode\": \"60\",\r\n \"ledgerName\": \"Payroll\",\r\n \"note\": \"Gasoline for business trip\",\r\n \"paymentTermId\": \"d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l\",\r\n \"paymentType\": \"CASH\",\r\n \"supplierId\": \"52c049b9-91b7-4828-b346-e1eeadfa31dd\",\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100,\r\n \"totalTaxAmount\": 5,\r\n \"transactionDate\": \"2025-07-15T00:00:00Z\"\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/expenses"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expense\"\r\n\r\n{\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"6527a18d2-748e-4bda-9f4c-02b08a9622cd\",\r\n \"accountNumber\": 70000,\r\n \"currency\": \"EUR\",\r\n \"customerId\": \"8a32de4f-55cc-4962-b000-a2a20662b821\",\r\n \"description\": \"Expense_07/25 for business trip\",\r\n \"documentId\": \"c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf\",\r\n \"exchangeRate\": \"1\",\r\n \"expenseLines\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",\r\n \"accountNumber\": 4900,\r\n \"currency\": \"EUR\",\r\n \"description\": \"Gasoline for business trip\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"efa82f42-fd85-11e1-a21f-0800200c9a33\",\r\n \"categoryName\": \"CostCenter\",\r\n \"name\": \"Material/Waren\"\r\n }\r\n ],\r\n \"documentNumber\": \"EXP-12345\",\r\n \"exchangeRate\": 1,\r\n \"itemId\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\r\n \"taxRate\": {\r\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\r\n \"code\": \"03\",\r\n \"name\": \"Tax19\",\r\n \"taxRatePercentage\": \"19\"\r\n },\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100\r\n }\r\n ],\r\n \"journalCode\": \"60\",\r\n \"ledgerName\": \"Payroll\",\r\n \"note\": \"Gasoline for business trip\",\r\n \"paymentTermId\": \"d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l\",\r\n \"paymentType\": \"CASH\",\r\n \"supplierId\": \"52c049b9-91b7-4828-b346-e1eeadfa31dd\",\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100,\r\n \"totalTaxAmount\": 5,\r\n \"transactionDate\": \"2025-07-15T00:00:00Z\"\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/expenses")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expense\"\r\n\r\n{\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"6527a18d2-748e-4bda-9f4c-02b08a9622cd\",\r\n \"accountNumber\": 70000,\r\n \"currency\": \"EUR\",\r\n \"customerId\": \"8a32de4f-55cc-4962-b000-a2a20662b821\",\r\n \"description\": \"Expense_07/25 for business trip\",\r\n \"documentId\": \"c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf\",\r\n \"exchangeRate\": \"1\",\r\n \"expenseLines\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",\r\n \"accountNumber\": 4900,\r\n \"currency\": \"EUR\",\r\n \"description\": \"Gasoline for business trip\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"efa82f42-fd85-11e1-a21f-0800200c9a33\",\r\n \"categoryName\": \"CostCenter\",\r\n \"name\": \"Material/Waren\"\r\n }\r\n ],\r\n \"documentNumber\": \"EXP-12345\",\r\n \"exchangeRate\": 1,\r\n \"itemId\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\r\n \"taxRate\": {\r\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\r\n \"code\": \"03\",\r\n \"name\": \"Tax19\",\r\n \"taxRatePercentage\": \"19\"\r\n },\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100\r\n }\r\n ],\r\n \"journalCode\": \"60\",\r\n \"ledgerName\": \"Payroll\",\r\n \"note\": \"Gasoline for business trip\",\r\n \"paymentTermId\": \"d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l\",\r\n \"paymentType\": \"CASH\",\r\n \"supplierId\": \"52c049b9-91b7-4828-b346-e1eeadfa31dd\",\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100,\r\n \"totalTaxAmount\": 5,\r\n \"transactionDate\": \"2025-07-15T00:00:00Z\"\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/expenses")
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=\"files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expense\"\r\n\r\n{\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"6527a18d2-748e-4bda-9f4c-02b08a9622cd\",\r\n \"accountNumber\": 70000,\r\n \"currency\": \"EUR\",\r\n \"customerId\": \"8a32de4f-55cc-4962-b000-a2a20662b821\",\r\n \"description\": \"Expense_07/25 for business trip\",\r\n \"documentId\": \"c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf\",\r\n \"exchangeRate\": \"1\",\r\n \"expenseLines\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",\r\n \"accountNumber\": 4900,\r\n \"currency\": \"EUR\",\r\n \"description\": \"Gasoline for business trip\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"efa82f42-fd85-11e1-a21f-0800200c9a33\",\r\n \"categoryName\": \"CostCenter\",\r\n \"name\": \"Material/Waren\"\r\n }\r\n ],\r\n \"documentNumber\": \"EXP-12345\",\r\n \"exchangeRate\": 1,\r\n \"itemId\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\r\n \"taxRate\": {\r\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\r\n \"code\": \"03\",\r\n \"name\": \"Tax19\",\r\n \"taxRatePercentage\": \"19\"\r\n },\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100\r\n }\r\n ],\r\n \"journalCode\": \"60\",\r\n \"ledgerName\": \"Payroll\",\r\n \"note\": \"Gasoline for business trip\",\r\n \"paymentTermId\": \"d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l\",\r\n \"paymentType\": \"CASH\",\r\n \"supplierId\": \"52c049b9-91b7-4828-b346-e1eeadfa31dd\",\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100,\r\n \"totalTaxAmount\": 5,\r\n \"transactionDate\": \"2025-07-15T00:00:00Z\"\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": "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",
"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",
"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"
}
}Expenses
Create expense
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 'files=<string>' \
--form 'expense={
"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": [
{
"accountCode": "200",
"accountId": "56dec6c2-b14c-43ea-87bb-cc67b0ba2545",
"accountNumber": 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",
"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",
"totalGrossAmount": 119,
"totalNetAmount": 100,
"totalTaxAmount": 5,
"transactionDate": "2025-07-15T00:00:00Z"
}' \
--form files.items='@example-file'import requests
url = "https://api.maesn.dev/accounting/expenses"
files = { "files.items": ("example-file", open("example-file", "rb")) }
payload = {
"files": "<string>",
"expense": "{
\"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\": [
{
\"accountCode\": \"200\",
\"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",
\"accountNumber\": 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\",
\"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\",
\"totalGrossAmount\": 119,
\"totalNetAmount\": 100,
\"totalTaxAmount\": 5,
\"transactionDate\": \"2025-07-15T00:00:00Z\"
}"
}
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('files', '<string>');
form.append('expense', '{
"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": [
{
"accountCode": "200",
"accountId": "56dec6c2-b14c-43ea-87bb-cc67b0ba2545",
"accountNumber": 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",
"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",
"totalGrossAmount": 119,
"totalNetAmount": 100,
"totalTaxAmount": 5,
"transactionDate": "2025-07-15T00:00:00Z"
}');
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/expenses', 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/expenses",
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=\"files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expense\"\r\n\r\n{\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"6527a18d2-748e-4bda-9f4c-02b08a9622cd\",\r\n \"accountNumber\": 70000,\r\n \"currency\": \"EUR\",\r\n \"customerId\": \"8a32de4f-55cc-4962-b000-a2a20662b821\",\r\n \"description\": \"Expense_07/25 for business trip\",\r\n \"documentId\": \"c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf\",\r\n \"exchangeRate\": \"1\",\r\n \"expenseLines\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",\r\n \"accountNumber\": 4900,\r\n \"currency\": \"EUR\",\r\n \"description\": \"Gasoline for business trip\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"efa82f42-fd85-11e1-a21f-0800200c9a33\",\r\n \"categoryName\": \"CostCenter\",\r\n \"name\": \"Material/Waren\"\r\n }\r\n ],\r\n \"documentNumber\": \"EXP-12345\",\r\n \"exchangeRate\": 1,\r\n \"itemId\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\r\n \"taxRate\": {\r\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\r\n \"code\": \"03\",\r\n \"name\": \"Tax19\",\r\n \"taxRatePercentage\": \"19\"\r\n },\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100\r\n }\r\n ],\r\n \"journalCode\": \"60\",\r\n \"ledgerName\": \"Payroll\",\r\n \"note\": \"Gasoline for business trip\",\r\n \"paymentTermId\": \"d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l\",\r\n \"paymentType\": \"CASH\",\r\n \"supplierId\": \"52c049b9-91b7-4828-b346-e1eeadfa31dd\",\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100,\r\n \"totalTaxAmount\": 5,\r\n \"transactionDate\": \"2025-07-15T00:00:00Z\"\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/expenses"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expense\"\r\n\r\n{\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"6527a18d2-748e-4bda-9f4c-02b08a9622cd\",\r\n \"accountNumber\": 70000,\r\n \"currency\": \"EUR\",\r\n \"customerId\": \"8a32de4f-55cc-4962-b000-a2a20662b821\",\r\n \"description\": \"Expense_07/25 for business trip\",\r\n \"documentId\": \"c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf\",\r\n \"exchangeRate\": \"1\",\r\n \"expenseLines\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",\r\n \"accountNumber\": 4900,\r\n \"currency\": \"EUR\",\r\n \"description\": \"Gasoline for business trip\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"efa82f42-fd85-11e1-a21f-0800200c9a33\",\r\n \"categoryName\": \"CostCenter\",\r\n \"name\": \"Material/Waren\"\r\n }\r\n ],\r\n \"documentNumber\": \"EXP-12345\",\r\n \"exchangeRate\": 1,\r\n \"itemId\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\r\n \"taxRate\": {\r\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\r\n \"code\": \"03\",\r\n \"name\": \"Tax19\",\r\n \"taxRatePercentage\": \"19\"\r\n },\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100\r\n }\r\n ],\r\n \"journalCode\": \"60\",\r\n \"ledgerName\": \"Payroll\",\r\n \"note\": \"Gasoline for business trip\",\r\n \"paymentTermId\": \"d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l\",\r\n \"paymentType\": \"CASH\",\r\n \"supplierId\": \"52c049b9-91b7-4828-b346-e1eeadfa31dd\",\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100,\r\n \"totalTaxAmount\": 5,\r\n \"transactionDate\": \"2025-07-15T00:00:00Z\"\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/expenses")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expense\"\r\n\r\n{\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"6527a18d2-748e-4bda-9f4c-02b08a9622cd\",\r\n \"accountNumber\": 70000,\r\n \"currency\": \"EUR\",\r\n \"customerId\": \"8a32de4f-55cc-4962-b000-a2a20662b821\",\r\n \"description\": \"Expense_07/25 for business trip\",\r\n \"documentId\": \"c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf\",\r\n \"exchangeRate\": \"1\",\r\n \"expenseLines\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",\r\n \"accountNumber\": 4900,\r\n \"currency\": \"EUR\",\r\n \"description\": \"Gasoline for business trip\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"efa82f42-fd85-11e1-a21f-0800200c9a33\",\r\n \"categoryName\": \"CostCenter\",\r\n \"name\": \"Material/Waren\"\r\n }\r\n ],\r\n \"documentNumber\": \"EXP-12345\",\r\n \"exchangeRate\": 1,\r\n \"itemId\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\r\n \"taxRate\": {\r\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\r\n \"code\": \"03\",\r\n \"name\": \"Tax19\",\r\n \"taxRatePercentage\": \"19\"\r\n },\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100\r\n }\r\n ],\r\n \"journalCode\": \"60\",\r\n \"ledgerName\": \"Payroll\",\r\n \"note\": \"Gasoline for business trip\",\r\n \"paymentTermId\": \"d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l\",\r\n \"paymentType\": \"CASH\",\r\n \"supplierId\": \"52c049b9-91b7-4828-b346-e1eeadfa31dd\",\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100,\r\n \"totalTaxAmount\": 5,\r\n \"transactionDate\": \"2025-07-15T00:00:00Z\"\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/expenses")
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=\"files\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"expense\"\r\n\r\n{\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"6527a18d2-748e-4bda-9f4c-02b08a9622cd\",\r\n \"accountNumber\": 70000,\r\n \"currency\": \"EUR\",\r\n \"customerId\": \"8a32de4f-55cc-4962-b000-a2a20662b821\",\r\n \"description\": \"Expense_07/25 for business trip\",\r\n \"documentId\": \"c77fbedb-1ff3-4fed-8716-4d3e3fc85ccf\",\r\n \"exchangeRate\": \"1\",\r\n \"expenseLines\": [\r\n {\r\n \"accountCode\": \"200\",\r\n \"accountId\": \"56dec6c2-b14c-43ea-87bb-cc67b0ba2545\",\r\n \"accountNumber\": 4900,\r\n \"currency\": \"EUR\",\r\n \"description\": \"Gasoline for business trip\",\r\n \"dimensions\": [\r\n {\r\n \"id\": \"efa82f42-fd85-11e1-a21f-0800200c9a33\",\r\n \"categoryName\": \"CostCenter\",\r\n \"name\": \"Material/Waren\"\r\n }\r\n ],\r\n \"documentNumber\": \"EXP-12345\",\r\n \"exchangeRate\": 1,\r\n \"itemId\": \"9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b\",\r\n \"taxRate\": {\r\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\r\n \"code\": \"03\",\r\n \"name\": \"Tax19\",\r\n \"taxRatePercentage\": \"19\"\r\n },\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100\r\n }\r\n ],\r\n \"journalCode\": \"60\",\r\n \"ledgerName\": \"Payroll\",\r\n \"note\": \"Gasoline for business trip\",\r\n \"paymentTermId\": \"d2f3e4b5-6a7b-8c9d-0e1f-2g3h4i5j6k7l\",\r\n \"paymentType\": \"CASH\",\r\n \"supplierId\": \"52c049b9-91b7-4828-b346-e1eeadfa31dd\",\r\n \"totalGrossAmount\": 119,\r\n \"totalNetAmount\": 100,\r\n \"totalTaxAmount\": 5,\r\n \"transactionDate\": \"2025-07-15T00:00:00Z\"\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": "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",
"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",
"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

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.string
required
Show properties
Show properties
string
enum
required
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, ZWRJournalLineItem[]
required
string
string
required
file[]

DATEV Unternehmen Online
DATEV Unternehmen Online
This endpoint has been deprecated. Please use the
Create Expense 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
enum
required
The
currency field supports ISO 4217 (3-letter codes).
For details visits the Standardized Data section.JournalLineItem[]
required
Show properties
Show properties
number
The
accountNumber field specifies the general ledger account linked to the expense line.string
required
The
description field provides details about the specific expense line.It cannot exceed 60 characters in length.Dimension
Show properties
Show properties
string
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.string
The
documentNumber field represents the document number reference.It must match the pattern: ^[a-zA-Z0-9$%&*\+\-/]{0,36}$.taxRate
number
required
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.The
ledgerName must be of type CASH.string
The
note field allows for additional information or comments related to the expense.
It cannot exceed 120 characters in length.number
required
string
required
file[]

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
required
The
accountId represents the id of the GL account of type BANK related to the expense.You can obtain this value by using the GET Accounts endpoint.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
JournalLineItem[]
required
string
required
string
string
required
enum
Available options:
EXPENSEfile[]

Lexware Office
Lexware Office
Supported request parameters:
string
required
Show properties
Show properties
JournalLineItem[]
required
Show properties
Show properties
string
required
The
accountId field specifies the id of the posting category in Lexware that represents the general ledger account linked to the individual line item within the expense.To get the correct accountId, you can use the GET Accounts endpoint.string
required
The
documentNumber field represents the document number reference.taxRate
required
Show properties
Show properties
string
required
The
taxRatePercentage field represents the tax rate applied to the expense line.It must be a positive number.number
required
string
The
note field allows for additional information or comments related to the expense.string
required
number
required
string
required
file[]

QuickBooks
QuickBooks
Supported request parameters:
string
required
Show properties
Show properties
string
required
To get the correct id, you can use the
GET Accounts endpoint.
The account type has to be of type Cash, Credit Card, Check, the same as the paymentType field.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
JournalLineItem[]
required
enum
required
Available options:
CASH, CREDIT_CARD, CHECKstring
string
file[]

Twinfield
Twinfield
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.
Xero
Xero
Supported request parameters:
string
required
Show properties
Show properties
string
required
The
accountIdfield represents the id of the GL account of type BANK that is used for the expense.To get the correct id, you can use the GET Accounts endpoint.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
If
supplierId is not provided, customerId is required.string
JournalLineItem[]
required
string
If
customerId is not provided, supplierId is required.enum
required
Available options:
EXPENSE, REFUNDstring
file[]
Last modified on July 9, 2026
Was this page helpful?
⌘I