cURL
curl --request POST \
--url https://api.maesn.dev/accounting/accounts \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--data '
{
"balance": 100,
"class": "ASSET",
"code": "91",
"currency": "EUR",
"debitCreditIndicator": "DEBIT",
"description": "Business Savings Account",
"journalCode": "30",
"name": "Business Bank",
"number": "0150",
"parentAccountId": "46",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "Tax19",
"percentage": 19
},
"type": "BANK"
}
'import requests
url = "https://api.maesn.dev/accounting/accounts"
payload = {
"balance": 100,
"class": "ASSET",
"code": "91",
"currency": "EUR",
"debitCreditIndicator": "DEBIT",
"description": "Business Savings Account",
"journalCode": "30",
"name": "Business Bank",
"number": "0150",
"parentAccountId": "46",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "Tax19",
"percentage": 19
},
"type": "BANK"
}
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({
balance: 100,
class: 'ASSET',
code: '91',
currency: 'EUR',
debitCreditIndicator: 'DEBIT',
description: 'Business Savings Account',
journalCode: '30',
name: 'Business Bank',
number: '0150',
parentAccountId: '46',
status: 'ACTIVE',
taxRate: {
id: '1895b05b-38a6-4a6a-9653-166389894350',
code: '03',
name: 'Tax19',
percentage: 19
},
type: 'BANK'
})
};
fetch('https://api.maesn.dev/accounting/accounts', 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/accounts",
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([
'balance' => 100,
'class' => 'ASSET',
'code' => '91',
'currency' => 'EUR',
'debitCreditIndicator' => 'DEBIT',
'description' => 'Business Savings Account',
'journalCode' => '30',
'name' => 'Business Bank',
'number' => '0150',
'parentAccountId' => '46',
'status' => 'ACTIVE',
'taxRate' => [
'id' => '1895b05b-38a6-4a6a-9653-166389894350',
'code' => '03',
'name' => 'Tax19',
'percentage' => 19
],
'type' => 'BANK'
]),
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/accounts"
payload := strings.NewReader("{\n \"balance\": 100,\n \"class\": \"ASSET\",\n \"code\": \"91\",\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"DEBIT\",\n \"description\": \"Business Savings Account\",\n \"journalCode\": \"30\",\n \"name\": \"Business Bank\",\n \"number\": \"0150\",\n \"parentAccountId\": \"46\",\n \"status\": \"ACTIVE\",\n \"taxRate\": {\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\n \"code\": \"03\",\n \"name\": \"Tax19\",\n \"percentage\": 19\n },\n \"type\": \"BANK\"\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/accounts")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.header("Content-Type", "application/json")
.body("{\n \"balance\": 100,\n \"class\": \"ASSET\",\n \"code\": \"91\",\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"DEBIT\",\n \"description\": \"Business Savings Account\",\n \"journalCode\": \"30\",\n \"name\": \"Business Bank\",\n \"number\": \"0150\",\n \"parentAccountId\": \"46\",\n \"status\": \"ACTIVE\",\n \"taxRate\": {\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\n \"code\": \"03\",\n \"name\": \"Tax19\",\n \"percentage\": 19\n },\n \"type\": \"BANK\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/accounts")
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 \"balance\": 100,\n \"class\": \"ASSET\",\n \"code\": \"91\",\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"DEBIT\",\n \"description\": \"Business Savings Account\",\n \"journalCode\": \"30\",\n \"name\": \"Business Bank\",\n \"number\": \"0150\",\n \"parentAccountId\": \"46\",\n \"status\": \"ACTIVE\",\n \"taxRate\": {\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\n \"code\": \"03\",\n \"name\": \"Tax19\",\n \"percentage\": 19\n },\n \"type\": \"BANK\"\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": "5570042",
"balance": 100,
"class": "ASSET",
"code": "91",
"createdDate": "2025-05-01T00:00:00Z",
"currency": "EUR",
"debitCreditIndicator": "DEBIT",
"description": "Business Savings Account",
"name": "Business Bank",
"number": "0150",
"parentAccountId": "46",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "TAX19",
"percentage": 19
},
"type": "BANK",
"updatedDate": "2021-06-01T00:00:00Z"
}
}Accounts
Create account
POST
/
accounting
/
accounts
cURL
curl --request POST \
--url https://api.maesn.dev/accounting/accounts \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--data '
{
"balance": 100,
"class": "ASSET",
"code": "91",
"currency": "EUR",
"debitCreditIndicator": "DEBIT",
"description": "Business Savings Account",
"journalCode": "30",
"name": "Business Bank",
"number": "0150",
"parentAccountId": "46",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "Tax19",
"percentage": 19
},
"type": "BANK"
}
'import requests
url = "https://api.maesn.dev/accounting/accounts"
payload = {
"balance": 100,
"class": "ASSET",
"code": "91",
"currency": "EUR",
"debitCreditIndicator": "DEBIT",
"description": "Business Savings Account",
"journalCode": "30",
"name": "Business Bank",
"number": "0150",
"parentAccountId": "46",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "Tax19",
"percentage": 19
},
"type": "BANK"
}
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({
balance: 100,
class: 'ASSET',
code: '91',
currency: 'EUR',
debitCreditIndicator: 'DEBIT',
description: 'Business Savings Account',
journalCode: '30',
name: 'Business Bank',
number: '0150',
parentAccountId: '46',
status: 'ACTIVE',
taxRate: {
id: '1895b05b-38a6-4a6a-9653-166389894350',
code: '03',
name: 'Tax19',
percentage: 19
},
type: 'BANK'
})
};
fetch('https://api.maesn.dev/accounting/accounts', 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/accounts",
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([
'balance' => 100,
'class' => 'ASSET',
'code' => '91',
'currency' => 'EUR',
'debitCreditIndicator' => 'DEBIT',
'description' => 'Business Savings Account',
'journalCode' => '30',
'name' => 'Business Bank',
'number' => '0150',
'parentAccountId' => '46',
'status' => 'ACTIVE',
'taxRate' => [
'id' => '1895b05b-38a6-4a6a-9653-166389894350',
'code' => '03',
'name' => 'Tax19',
'percentage' => 19
],
'type' => 'BANK'
]),
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/accounts"
payload := strings.NewReader("{\n \"balance\": 100,\n \"class\": \"ASSET\",\n \"code\": \"91\",\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"DEBIT\",\n \"description\": \"Business Savings Account\",\n \"journalCode\": \"30\",\n \"name\": \"Business Bank\",\n \"number\": \"0150\",\n \"parentAccountId\": \"46\",\n \"status\": \"ACTIVE\",\n \"taxRate\": {\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\n \"code\": \"03\",\n \"name\": \"Tax19\",\n \"percentage\": 19\n },\n \"type\": \"BANK\"\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/accounts")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.header("Content-Type", "application/json")
.body("{\n \"balance\": 100,\n \"class\": \"ASSET\",\n \"code\": \"91\",\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"DEBIT\",\n \"description\": \"Business Savings Account\",\n \"journalCode\": \"30\",\n \"name\": \"Business Bank\",\n \"number\": \"0150\",\n \"parentAccountId\": \"46\",\n \"status\": \"ACTIVE\",\n \"taxRate\": {\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\n \"code\": \"03\",\n \"name\": \"Tax19\",\n \"percentage\": 19\n },\n \"type\": \"BANK\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/accounts")
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 \"balance\": 100,\n \"class\": \"ASSET\",\n \"code\": \"91\",\n \"currency\": \"EUR\",\n \"debitCreditIndicator\": \"DEBIT\",\n \"description\": \"Business Savings Account\",\n \"journalCode\": \"30\",\n \"name\": \"Business Bank\",\n \"number\": \"0150\",\n \"parentAccountId\": \"46\",\n \"status\": \"ACTIVE\",\n \"taxRate\": {\n \"id\": \"1895b05b-38a6-4a6a-9653-166389894350\",\n \"code\": \"03\",\n \"name\": \"Tax19\",\n \"percentage\": 19\n },\n \"type\": \"BANK\"\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": "5570042",
"balance": 100,
"class": "ASSET",
"code": "91",
"createdDate": "2025-05-01T00:00:00Z",
"currency": "EUR",
"debitCreditIndicator": "DEBIT",
"description": "Business Savings Account",
"name": "Business Bank",
"number": "0150",
"parentAccountId": "46",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "TAX19",
"percentage": 19
},
"type": "BANK",
"updatedDate": "2021-06-01T00:00:00Z"
}
}Field support per integration

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
string
required
string
required
Available options:
CASH, BANK, CREDIT_CARD, PAYMENT_PROVIDER, ACCOUNTS_RECEIVABLE, PRE_PAYMENT, ACCOUNTS_PAYABLE, VAT,
EMPLOYEES_PAYABLE, PREPAID_EXPENSES, ACCRUED_EXPENSES, INCOME_TAX_PAYABLE, FIXED_ASSET, NON_CURRENT_ASSET,
DEPRECIATION, INVENTORY, EQUITY, RETAINED_EARNINGS, LONG_TERM_LIABILITY, CURRENT_LIABILITY, OTHER, TAX_PAYABLE,
REVENUE, COST_OF_GOODS_SOLD, OTHER_EXPENSE, OVERHEADS, DEPRECIATION, RESEARCH_AND_DEVELOPMENT, EMPLOYEE_COSTS, EMPLOYMENT_COSTS,
EXCEPTIONAL_COSTS, EXCEPTIONAL_INCOME, INCOME_TAXES, INTEREST_INCOME, YEAR_END_REFLECTION, INDIRECT_YEAR_END_COSTING, DIRECT_YEAR_END_COSTING
fortnox
fortnox

Odoo
Odoo

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
string
required
enum
Available options:
ACTIVE, ARCHIVEDstring
required
Available options:
CUSTOMER, PROVIDER, BANK, CASH, CHARGE, REVENUE,
CAPITAL, FIXED_ASSET, MANAGEMENT_RESULT, DEPRECIATION_PROVISION, STOCK, RESULT_BALANCE_SHEET,
EMPLOYEE, TITLE, CURRENT_ASSETS, BORROWED_CAPITAL, COST, REDUCTION_IN_EXPENSES,
NEUTRAL_REVENUE, NEUTRAL_EXPENSES, SALES_DEDUCTION, EXCHANGE_RATE_INCOME, EXCHANGE_RATE_EXPENSE, BALANCE_CARRIED_FORWARD,
AGGREGATE_CARRIED_FORWARD, OTHER_BALANCE_SHEET_ACCOUNT, STATISTICAL_BALANCE, STATISTICAL_CONSUMPTION, CURRENT_ASSETS_INPUT_TAX, BORROWED_CAPITAL_OUTPUT_TAX,
CUSTOMER_PREPAYMENT, SUPPLIER_PREPAYMENT, CUSTOMER_PREPAYMENT_TAX_INCLUDED, SUPPLIER_PREPAYMENT_TAX_INCLUDED, INPUT_TAX, OUTPUT_TAX,
SUPPLIER_RETURNABLE_PACKAGING, CUSTOMER_RETURNABLE_PACKAGING
Xero
Xero
Supported request fields:
number
string
required
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
string
required
string
enum
Available options:
ACTIVE, ARCHIVEDstring
required
Available options:
BANK, CURRENT_ASSET, CURRENT_LIABILITY, DEPRECIATION, DIRECT_COSTS, EQUITY,
EXPENSE, FIXED_ASSET, INVENTORY, LIABILITY, NON_CURRENT_ASSET, OTHER_INCOME,
OVERHEADS, PRE_PAYMENT, REVENUE, SALES, NON_CURRENT_LIABILITYBody
application/json
Example:
100
Available options:
ASSET, EQUITY, EXPENSE, LIABILITY, REVENUE Example:
"ASSET"
Example:
"91"
Available options:
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, ZWR Example:
"EUR"
Available options:
DEBIT, CREDIT Example:
"DEBIT"
Example:
"Business Savings Account"
Example:
"30"
Example:
"Business Bank"
Example:
"0150"
Example:
"46"
Available options:
ACTIVE, ARCHIVED Example:
"ACTIVE"
Show child attributes
Show child attributes
Available options:
PAYMENT_PROVIDER, BANK, CURRENT, CURRLIAB, DEPRECIATN, DIRECTCOSTS, EQUITY, EXPENSE, FIXED, INVENTORY, LIABILITY, NONCURRENT, OTHERINCOME, OVERHEADS, PREPAYMENT, REVENUE, SALES, TERMLIAB Example:
"BANK"
Response
200 - application/json
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Example:
{
"id": "5570042",
"balance": 100,
"class": "ASSET",
"code": "91",
"createdDate": "2025-05-01T00:00:00Z",
"currency": "EUR",
"debitCreditIndicator": "DEBIT",
"description": "Business Savings Account",
"name": "Business Bank",
"number": "0150",
"parentAccountId": "46",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "TAX19",
"percentage": 19
},
"type": "BANK",
"updatedDate": "2021-06-01T00:00:00Z"
}
Last modified on September 4, 2026
Was this page helpful?