cURL
curl --request GET \
--url https://api.maesn.dev/accounting/accounts \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.maesn.dev/accounting/accounts"
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<x-api-key>', 'X-ACCOUNT-KEY': '<x-account-key>'}
};
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 => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.maesn.dev/accounting/accounts"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://api.maesn.dev/accounting/accounts")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.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::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
request["X-ACCOUNT-KEY"] = '<x-account-key>'
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": "15534na-38a6-4a6a-3353-1663553394350",
"code": "04",
"name": "TAX21",
"percentage": 21
},
"type": "BANK",
"updatedDate": "2021-06-01T00:00:00Z"
},
{
"id": "5942390",
"balance": 5000,
"class": "REVENUE",
"code": "92",
"createdDate": "2021-05-01T00:00:00Z",
"currency": "EUR",
"debitCreditIndicator": "CREDIT",
"description": "Income from business activity",
"name": "Revenue account",
"number": "1820",
"parentAccountId": "47",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "TAX19",
"percentage": 19
},
"type": "REVENUE",
"updatedDate": "2021-06-01T00:00:00Z"
}
]
}Accounts
Get accounts
GET
/
accounting
/
accounts
cURL
curl --request GET \
--url https://api.maesn.dev/accounting/accounts \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.maesn.dev/accounting/accounts"
headers = {
"X-API-KEY": "<x-api-key>",
"X-ACCOUNT-KEY": "<x-account-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-API-KEY': '<x-api-key>', 'X-ACCOUNT-KEY': '<x-account-key>'}
};
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 => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.maesn.dev/accounting/accounts"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://api.maesn.dev/accounting/accounts")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.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::Get.new(url)
request["X-API-KEY"] = '<x-api-key>'
request["X-ACCOUNT-KEY"] = '<x-account-key>'
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": "15534na-38a6-4a6a-3353-1663553394350",
"code": "04",
"name": "TAX21",
"percentage": 21
},
"type": "BANK",
"updatedDate": "2021-06-01T00:00:00Z"
},
{
"id": "5942390",
"balance": 5000,
"class": "REVENUE",
"code": "92",
"createdDate": "2021-05-01T00:00:00Z",
"currency": "EUR",
"debitCreditIndicator": "CREDIT",
"description": "Income from business activity",
"name": "Revenue account",
"number": "1820",
"parentAccountId": "47",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "TAX19",
"percentage": 19
},
"type": "REVENUE",
"updatedDate": "2021-06-01T00:00:00Z"
}
]
}Field support per integration

bexio
bexio

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.enum
Available options:
5, 10, 20, 50, 100number
boolean
string
number
enum
Available options:
ASSET, EQUITY, EXPENSE, LIABILITY, REVENUEBusiness Central allows custom account classes. If custom values are used and no clear mapping to the provided enums exists, the field will return the original string value.
string
string
string

DATEV Rechnungswesen
DATEV Rechnungswesen
The query parameter
fiscalYearStartDate is required and must be a valid date.If you’re not using the Interactive Authentication Flow, make sure the query parameter
companyId is correctly populated.For DATEV-specific field explanations (account functions, etc.), contact us.
enum
Available options:
5, 10, 20, 50, 100number
string
required
Return data for fiscal year starting with given date.
Example:
Example:
fiscalYearStartDate=2023-01-01string
Show object
Show object
boolean
Filter by account active status.
Example:
Example:
isActive=true to retrieve only the active (booked) accounts.boolean
Supported response fields:
string
string

DATEV Unternehmen Online
DATEV Unternehmen 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
string
Available options:
CASH,ACCOUNTS_RECEIVABLE,ACCOUNTS_PAYABLE
Dinero
Dinero
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.enum
Available options:
5, 10, 20, 50, 100number
boolean
Supported response fields:
string
string
string
string
string
string

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.enum
Available options:
5, 10, 20, 50, 100number
string
boolean
string
string
Available options:
ASSET, EQUITY, EXPENSE, LIABILITY, REVENUEstring
string
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
enum
Available options:
ACTIVE, ARCHIVEDstring
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_COSTINGstring

fortnox
fortnox

Lexware Office
Lexware Office

Moneybird
Moneybird
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.enum
Available options:
5, 10, 20, 50, 100number
boolean
string
string
string
string
string
Available options:
NON_CURRENT_ASSET, CURRENT_ASSET,NON_CURRENT_LIABILITY, CURRENT_LIABILITY, EQUITY, REVENUE,
DIRECT_COSTS, EXPENSE,TEMPORARY, LIABILITY, OTHER_INCOME,OTHERstring

Odoo
Odoo
Query parameters:Supported response fields:
enum
Available options:
5, 10, 20, 50, 100number
boolean
string
number
string
Available options:
ASSET, EQUITY, EXPENSE, LIABILITY, REVENUEstring
string
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
string
enum
Available options:
ACTIVE, ARCHIVEDstring
string

Procountor
Procountor

QuickBooks
QuickBooks
Query parameters:Supported response fields:
enum
Available options:
5, 10, 20, 50, 100number
boolean
string
number
string
Available options:
ASSET, EQUITY, EXPENSE, LIABILITY, REVENUEstring
string
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
string
enum
Available options:
ACTIVE, ARCHIVEDstring
string

Sage Accounting
Sage Accounting
This endpoint is available only for the following countries:
Accounting Plus: Canada, United Kingdom, Ireland
Accounting Standard: United Kingdom, Ireland
Accounting Start: Canada, United Kingdom, Ireland
Accounting Standard: United Kingdom, Ireland
Accounting Start: Canada, United Kingdom, Ireland
When handling a new connection in your integration, it is advisable to first determine which subscription your customer is using to ensure compatibility. To do this, you can use the
GET Companies call to retrieve all businesses available for the user. The user will then select one of these businesses.
It is also a good practice to verify that the active property of the selected business is set to true before proceeding with the integration setup.enum
Available options:
5, 10, 20, 50, 100number
boolean
string
string
string
string
string
string
string
string

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.enum
Available options:
5, 10, 20, 50, 100number
boolean
string
string
string
string
string
enum
Available options:
ACTIVE, ARCHIVEDstring
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_PACKAGINGstring

sevdesk
sevdesk

Snelstart
Snelstart

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.enum
Available options:
5, 10, 20, 50, 100number
string
Show object
Show object
enum
Filter by account types.
Available options:
Available options:
PNL, BAS, CRD, DEB, KPL.
You can filter for one or more types.
Example: types=PNL,BAS,CRDNote that only Profit and Loss (PNL) and Balance Sheet (BAS) accounts are returned by default. Please use the filter
types if you require any of the other account types.string
string
string
string
string

Visma e-conomic
Visma e-conomic

Xero
Xero
Query parameters:Supported response fields:
enum
Available options:
5, 10, 20, 50, 100number
boolean
string
enum
Available options:
ASSET, EQUITY, EXPENSE, LIABILITY, REVENUEstring
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
string
enum
Available options:
ACTIVE, ARCHIVEDstring
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_LIABILITYstring
Headers
API key
Example:
"example value"
Account key
Example:
"example value"
Query Parameters
Available options:
5, 10, 20, 50, 100 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": "15534na-38a6-4a6a-3353-1663553394350",
"code": "04",
"name": "TAX21",
"percentage": 21
},
"type": "BANK",
"updatedDate": "2021-06-01T00:00:00Z"
},
{
"id": "5942390",
"balance": 5000,
"class": "REVENUE",
"code": "92",
"createdDate": "2021-05-01T00:00:00Z",
"currency": "EUR",
"debitCreditIndicator": "CREDIT",
"description": "Income from business activity",
"name": "Revenue account",
"number": "1820",
"parentAccountId": "47",
"status": "ACTIVE",
"taxRate": {
"id": "1895b05b-38a6-4a6a-9653-166389894350",
"code": "03",
"name": "TAX19",
"percentage": 19
},
"type": "REVENUE",
"updatedDate": "2021-06-01T00:00:00Z"
}
]
Last modified on September 4, 2026
Was this page helpful?