cURL
curl --request POST \
--url https://api.maesn.dev/accounting/items \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--data '
{
"assetAccountId": "80",
"expenseAccountId": "81",
"incomeAccountId": "79",
"inventoryStartDate": "2021-01-01",
"itemNumber": "12345-A",
"name": "Handmade Plastic Chair",
"priceIncludesTax": true,
"stockCount": 11,
"taxCode": "TAX19",
"taxRatePercentage": 19,
"type": "PRODUCT",
"unitName": "PIECE",
"unitPurchasePrice": 10,
"unitSalesPrice": 20.5
}
'import requests
url = "https://api.maesn.dev/accounting/items"
payload = {
"assetAccountId": "80",
"expenseAccountId": "81",
"incomeAccountId": "79",
"inventoryStartDate": "2021-01-01",
"itemNumber": "12345-A",
"name": "Handmade Plastic Chair",
"priceIncludesTax": True,
"stockCount": 11,
"taxCode": "TAX19",
"taxRatePercentage": 19,
"type": "PRODUCT",
"unitName": "PIECE",
"unitPurchasePrice": 10,
"unitSalesPrice": 20.5
}
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<x-api-key>',
'X-ACCOUNT-KEY': '<x-account-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
assetAccountId: '80',
expenseAccountId: '81',
incomeAccountId: '79',
inventoryStartDate: '2021-01-01',
itemNumber: '12345-A',
name: 'Handmade Plastic Chair',
priceIncludesTax: true,
stockCount: 11,
taxCode: 'TAX19',
taxRatePercentage: 19,
type: 'PRODUCT',
unitName: 'PIECE',
unitPurchasePrice: 10,
unitSalesPrice: 20.5
})
};
fetch('https://api.maesn.dev/accounting/items', 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/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'assetAccountId' => '80',
'expenseAccountId' => '81',
'incomeAccountId' => '79',
'inventoryStartDate' => '2021-01-01',
'itemNumber' => '12345-A',
'name' => 'Handmade Plastic Chair',
'priceIncludesTax' => true,
'stockCount' => 11,
'taxCode' => 'TAX19',
'taxRatePercentage' => 19,
'type' => 'PRODUCT',
'unitName' => 'PIECE',
'unitPurchasePrice' => 10,
'unitSalesPrice' => 20.5
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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/items"
payload := strings.NewReader("{\n \"assetAccountId\": \"80\",\n \"expenseAccountId\": \"81\",\n \"incomeAccountId\": \"79\",\n \"inventoryStartDate\": \"2021-01-01\",\n \"itemNumber\": \"12345-A\",\n \"name\": \"Handmade Plastic Chair\",\n \"priceIncludesTax\": true,\n \"stockCount\": 11,\n \"taxCode\": \"TAX19\",\n \"taxRatePercentage\": 19,\n \"type\": \"PRODUCT\",\n \"unitName\": \"PIECE\",\n \"unitPurchasePrice\": 10,\n \"unitSalesPrice\": 20.5\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<x-api-key>")
req.Header.Add("X-ACCOUNT-KEY", "<x-account-key>")
req.Header.Add("Content-Type", "application/json")
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/items")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.header("Content-Type", "application/json")
.body("{\n \"assetAccountId\": \"80\",\n \"expenseAccountId\": \"81\",\n \"incomeAccountId\": \"79\",\n \"inventoryStartDate\": \"2021-01-01\",\n \"itemNumber\": \"12345-A\",\n \"name\": \"Handmade Plastic Chair\",\n \"priceIncludesTax\": true,\n \"stockCount\": 11,\n \"taxCode\": \"TAX19\",\n \"taxRatePercentage\": 19,\n \"type\": \"PRODUCT\",\n \"unitName\": \"PIECE\",\n \"unitPurchasePrice\": 10,\n \"unitSalesPrice\": 20.5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/items")
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["Content-Type"] = 'application/json'
request.body = "{\n \"assetAccountId\": \"80\",\n \"expenseAccountId\": \"81\",\n \"incomeAccountId\": \"79\",\n \"inventoryStartDate\": \"2021-01-01\",\n \"itemNumber\": \"12345-A\",\n \"name\": \"Handmade Plastic Chair\",\n \"priceIncludesTax\": true,\n \"stockCount\": 11,\n \"taxCode\": \"TAX19\",\n \"taxRatePercentage\": 19,\n \"type\": \"PRODUCT\",\n \"unitName\": \"PIECE\",\n \"unitPurchasePrice\": 10,\n \"unitSalesPrice\": 20.5\n}"
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": "02c74e8a-b95b-ef11-bfe2-002248e5aac5",
"assetAccountId": "80",
"expenseAccountId": "81",
"incomeAccountId": "79",
"inventoryStartDate": "2021-01-01",
"itemNumber": "12345-A",
"lastModifiedDate": "2021-01-01T00:00:00Z",
"name": "Handmade Plastic Chair",
"priceIncludesTax": true,
"stockCount": 11,
"taxCode": "TAX19",
"taxRatePercentage": 19,
"type": "PRODUCT",
"unitName": "PIECE",
"unitPurchasePrice": 10,
"unitSalesPrice": 20.5
}
}Items
Create item
POST
/
accounting
/
items
cURL
curl --request POST \
--url https://api.maesn.dev/accounting/items \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--data '
{
"assetAccountId": "80",
"expenseAccountId": "81",
"incomeAccountId": "79",
"inventoryStartDate": "2021-01-01",
"itemNumber": "12345-A",
"name": "Handmade Plastic Chair",
"priceIncludesTax": true,
"stockCount": 11,
"taxCode": "TAX19",
"taxRatePercentage": 19,
"type": "PRODUCT",
"unitName": "PIECE",
"unitPurchasePrice": 10,
"unitSalesPrice": 20.5
}
'import requests
url = "https://api.maesn.dev/accounting/items"
payload = {
"assetAccountId": "80",
"expenseAccountId": "81",
"incomeAccountId": "79",
"inventoryStartDate": "2021-01-01",
"itemNumber": "12345-A",
"name": "Handmade Plastic Chair",
"priceIncludesTax": True,
"stockCount": 11,
"taxCode": "TAX19",
"taxRatePercentage": 19,
"type": "PRODUCT",
"unitName": "PIECE",
"unitPurchasePrice": 10,
"unitSalesPrice": 20.5
}
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<x-api-key>',
'X-ACCOUNT-KEY': '<x-account-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
assetAccountId: '80',
expenseAccountId: '81',
incomeAccountId: '79',
inventoryStartDate: '2021-01-01',
itemNumber: '12345-A',
name: 'Handmade Plastic Chair',
priceIncludesTax: true,
stockCount: 11,
taxCode: 'TAX19',
taxRatePercentage: 19,
type: 'PRODUCT',
unitName: 'PIECE',
unitPurchasePrice: 10,
unitSalesPrice: 20.5
})
};
fetch('https://api.maesn.dev/accounting/items', 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/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'assetAccountId' => '80',
'expenseAccountId' => '81',
'incomeAccountId' => '79',
'inventoryStartDate' => '2021-01-01',
'itemNumber' => '12345-A',
'name' => 'Handmade Plastic Chair',
'priceIncludesTax' => true,
'stockCount' => 11,
'taxCode' => 'TAX19',
'taxRatePercentage' => 19,
'type' => 'PRODUCT',
'unitName' => 'PIECE',
'unitPurchasePrice' => 10,
'unitSalesPrice' => 20.5
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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/items"
payload := strings.NewReader("{\n \"assetAccountId\": \"80\",\n \"expenseAccountId\": \"81\",\n \"incomeAccountId\": \"79\",\n \"inventoryStartDate\": \"2021-01-01\",\n \"itemNumber\": \"12345-A\",\n \"name\": \"Handmade Plastic Chair\",\n \"priceIncludesTax\": true,\n \"stockCount\": 11,\n \"taxCode\": \"TAX19\",\n \"taxRatePercentage\": 19,\n \"type\": \"PRODUCT\",\n \"unitName\": \"PIECE\",\n \"unitPurchasePrice\": 10,\n \"unitSalesPrice\": 20.5\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<x-api-key>")
req.Header.Add("X-ACCOUNT-KEY", "<x-account-key>")
req.Header.Add("Content-Type", "application/json")
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/items")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.header("Content-Type", "application/json")
.body("{\n \"assetAccountId\": \"80\",\n \"expenseAccountId\": \"81\",\n \"incomeAccountId\": \"79\",\n \"inventoryStartDate\": \"2021-01-01\",\n \"itemNumber\": \"12345-A\",\n \"name\": \"Handmade Plastic Chair\",\n \"priceIncludesTax\": true,\n \"stockCount\": 11,\n \"taxCode\": \"TAX19\",\n \"taxRatePercentage\": 19,\n \"type\": \"PRODUCT\",\n \"unitName\": \"PIECE\",\n \"unitPurchasePrice\": 10,\n \"unitSalesPrice\": 20.5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/items")
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["Content-Type"] = 'application/json'
request.body = "{\n \"assetAccountId\": \"80\",\n \"expenseAccountId\": \"81\",\n \"incomeAccountId\": \"79\",\n \"inventoryStartDate\": \"2021-01-01\",\n \"itemNumber\": \"12345-A\",\n \"name\": \"Handmade Plastic Chair\",\n \"priceIncludesTax\": true,\n \"stockCount\": 11,\n \"taxCode\": \"TAX19\",\n \"taxRatePercentage\": 19,\n \"type\": \"PRODUCT\",\n \"unitName\": \"PIECE\",\n \"unitPurchasePrice\": 10,\n \"unitSalesPrice\": 20.5\n}"
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": "02c74e8a-b95b-ef11-bfe2-002248e5aac5",
"assetAccountId": "80",
"expenseAccountId": "81",
"incomeAccountId": "79",
"inventoryStartDate": "2021-01-01",
"itemNumber": "12345-A",
"lastModifiedDate": "2021-01-01T00:00:00Z",
"name": "Handmade Plastic Chair",
"priceIncludesTax": true,
"stockCount": 11,
"taxCode": "TAX19",
"taxRatePercentage": 19,
"type": "PRODUCT",
"unitName": "PIECE",
"unitPurchasePrice": 10,
"unitSalesPrice": 20.5
}
}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
string
required
boolean
enum
Available options:
PRODUCT, SERVICEstring
number
number

Lexware Office
Lexware Office

QuickBooks
QuickBooks

Sage Active
Sage Active
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. Please use the id field as the companyId.string
required
string
required
enum
Available options:
PRODUCT, SERVICEnumber
enum
Available options:
HOUR, KILOGRAM, LITRE, METRE, MILLILITRE, MILLIGRAM, PACK, SQUARE_METRE, TONNE, UNIT,
CUBIC_METRE, DAY, GRAM, KILOMETRE, MONTH, NIGHT, NOT_UNIT, PERCENTAGECustomized values are supported.
Body
application/json
Example:
"80"
Example:
"81"
Example:
"79"
Example:
"2021-01-01"
Example:
"12345-A"
Example:
"Handmade Plastic Chair"
Example:
true
Example:
11
Example:
"TAX19"
Example:
19
Available options:
PRODUCT, SERVICE Example:
"PRODUCT"
Available options:
PIECE, STÜCK, NOT_UNIT, CUBIC_METRE, DAY, GRAM, HOUR, KILOGRAM, KILOMETRE, LITRE, METRE, MILLIGRAM, MILLILITRE, MONTH, NIGHT, PACK, PERCENTAGE, SQUARE_METRE, TONNE, UNIT Example:
"PIECE"
Example:
10
Example:
20.5
Last modified on August 17, 2026
Was this page helpful?