cURL
curl --request GET \
--url https://api.maesn.dev/accounting/contacts/{contactId} \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.maesn.dev/accounting/contacts/{contactId}"
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/contacts/{contactId}', 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/contacts/{contactId}",
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/contacts/{contactId}"
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/contacts/{contactId}")
.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/contacts/{contactId}")
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": "92c4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
"addresses": [
{
"addressLine1": "Lucky street 1",
"addressLine2": "2nd floor",
"city": "Berlin",
"countryCode": "DE",
"postalCode": "10243",
"type": "BILLING"
}
],
"bankAccounts": [
{
"id": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bankName": "Sparkasse",
"bic": "DEUTDEFF",
"code": "50010517",
"iban": "DE89370400440532013000",
"number": 5407324931
}
],
"businessRegistrationNumber": "12345678",
"companyName": "maesn",
"contactPersons": [
{
"id": "967188f6-8248-4765-b1e8-0f13a3ddb616",
"birthDate": "1990-05-12T00:00:00.000Z",
"emailAddresses": [
{
"email": "john.doe@company.com",
"type": "BUSINESS"
}
],
"firstName": "John",
"jobTitle": "Managing Director",
"lastName": "Doe",
"phoneNumbers": [
{
"number": "+49 7163307056",
"type": "MOBILE"
}
],
"salutation": "Mr"
}
],
"contactType": "CONTACT_PERSON",
"createdDate": "2025-06-01T11:09:11.533Z",
"emailAddresses": [
{
"email": "john.doe@company.com",
"type": "BUSINESS"
}
],
"isCustomer": true,
"isSupplier": false,
"number": "1042",
"parentId": "3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34",
"phoneNumbers": [
{
"number": "+49 7163307056",
"type": "MOBILE"
}
],
"projectId": "3",
"updatedDate": "2025-06-01T11:09:11.533Z",
"vatId": "DE123456789",
"website": "https://www.maesn.com"
}
}Contacts
Get contact
GET
/
accounting
/
contacts
/
{contactId}
cURL
curl --request GET \
--url https://api.maesn.dev/accounting/contacts/{contactId} \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.maesn.dev/accounting/contacts/{contactId}"
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/contacts/{contactId}', 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/contacts/{contactId}",
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/contacts/{contactId}"
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/contacts/{contactId}")
.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/contacts/{contactId}")
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": "92c4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
"addresses": [
{
"addressLine1": "Lucky street 1",
"addressLine2": "2nd floor",
"city": "Berlin",
"countryCode": "DE",
"postalCode": "10243",
"type": "BILLING"
}
],
"bankAccounts": [
{
"id": "5a6b7f5dw45c1c-403e-ad56-202fbc312414",
"bankName": "Sparkasse",
"bic": "DEUTDEFF",
"code": "50010517",
"iban": "DE89370400440532013000",
"number": 5407324931
}
],
"businessRegistrationNumber": "12345678",
"companyName": "maesn",
"contactPersons": [
{
"id": "967188f6-8248-4765-b1e8-0f13a3ddb616",
"birthDate": "1990-05-12T00:00:00.000Z",
"emailAddresses": [
{
"email": "john.doe@company.com",
"type": "BUSINESS"
}
],
"firstName": "John",
"jobTitle": "Managing Director",
"lastName": "Doe",
"phoneNumbers": [
{
"number": "+49 7163307056",
"type": "MOBILE"
}
],
"salutation": "Mr"
}
],
"contactType": "CONTACT_PERSON",
"createdDate": "2025-06-01T11:09:11.533Z",
"emailAddresses": [
{
"email": "john.doe@company.com",
"type": "BUSINESS"
}
],
"isCustomer": true,
"isSupplier": false,
"number": "1042",
"parentId": "3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34",
"phoneNumbers": [
{
"number": "+49 7163307056",
"type": "MOBILE"
}
],
"projectId": "3",
"updatedDate": "2025-06-01T11:09:11.533Z",
"vatId": "DE123456789",
"website": "https://www.maesn.com"
}
}Field support per integration

AbaConnect
AbaConnect
This endpoint is asynchronous. If the request has not completed, the response returns a
taskId. Use /asyncTask/{taskId} to check the task status and obtain the final result once it is ready.string
Address[]
Show properties
Show properties
string
string
string
enum
Available options (ISO 3166-1 alpha-2):
AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZWenum
Available options:
BILLINGstring
ContactPerson[]
enum
Available options:
CONTACT_PERSON, COMPANYstring
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
boolean
boolean
string
string

bexio
bexio
Query parameters:Supported response fields:
boolean
string
Address[]
Show properties
Show properties
string
string
string
enum
Available options (ISO 3166-1 alpha-2):
AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZWenum
Available options:
BILLINGstring
ContactPerson[]
enum
Available options:
CONTACT_PERSON, COMPANYstring
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.boolean
string
Address[]
string
string
ContactPerson[]
enum
Available options:
COMPANYstring
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
boolean
boolean
string
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
string

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.boolean
string
Address[]
string
ContactPerson[]
enum
Available options:
COMPANY, CONTACT_PERSONstring
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
boolean
boolean
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z

Procountor
Procountor
Query parameters:Supported response fields:
boolean
string
Address[]
string
ContactPerson[]
enum
Available options:
COMPANY, CONTACT_PERSONboolean
boolean

Snelstart
Snelstart
Query parameters:Supported response fields:
boolean
string
Address[]
string
string
enum
Available options:
COMPANYboolean
boolean
string
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string

Xero
Xero
Query parameters:Supported response fields:
boolean
string
Address[]
string
ContactPerson[]
enum
Available options:
CONTACT_PERSON, COMPANYboolean
boolean
string
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
Last modified on September 10, 2026
Was this page helpful?