cURL
curl --request POST \
--url https://api.maesn.dev/accounting/contacts \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--data '
{
"contactType": "CONTACT_PERSON",
"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": [
{
"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"
}
],
"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",
"vatId": "DE123456789",
"website": "https://www.maesn.com"
}
'import requests
url = "https://api.maesn.dev/accounting/contacts"
payload = {
"contactType": "CONTACT_PERSON",
"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": [
{
"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"
}
],
"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",
"vatId": "DE123456789",
"website": "https://www.maesn.com"
}
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({
contactType: 'CONTACT_PERSON',
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: [
{
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'
}
],
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',
vatId: 'DE123456789',
website: 'https://www.maesn.com'
})
};
fetch('https://api.maesn.dev/accounting/contacts', 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",
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([
'contactType' => 'CONTACT_PERSON',
'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' => [
[
'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'
]
],
'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',
'vatId' => 'DE123456789',
'website' => 'https://www.maesn.com'
]),
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/contacts"
payload := strings.NewReader("{\n \"contactType\": \"CONTACT_PERSON\",\n \"addresses\": [\n {\n \"addressLine1\": \"Lucky street 1\",\n \"addressLine2\": \"2nd floor\",\n \"city\": \"Berlin\",\n \"countryCode\": \"DE\",\n \"postalCode\": \"10243\",\n \"type\": \"BILLING\"\n }\n ],\n \"bankAccounts\": [\n {\n \"id\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\n \"bankName\": \"Sparkasse\",\n \"bic\": \"DEUTDEFF\",\n \"code\": \"50010517\",\n \"iban\": \"DE89370400440532013000\",\n \"number\": 5407324931\n }\n ],\n \"businessRegistrationNumber\": \"12345678\",\n \"companyName\": \"maesn\",\n \"contactPersons\": [\n {\n \"birthDate\": \"1990-05-12T00:00:00.000Z\",\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"firstName\": \"John\",\n \"jobTitle\": \"Managing Director\",\n \"lastName\": \"Doe\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"salutation\": \"Mr\"\n }\n ],\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"isCustomer\": true,\n \"isSupplier\": false,\n \"number\": \"1042\",\n \"parentId\": \"3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"projectId\": \"3\",\n \"vatId\": \"DE123456789\",\n \"website\": \"https://www.maesn.com\"\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/contacts")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.header("Content-Type", "application/json")
.body("{\n \"contactType\": \"CONTACT_PERSON\",\n \"addresses\": [\n {\n \"addressLine1\": \"Lucky street 1\",\n \"addressLine2\": \"2nd floor\",\n \"city\": \"Berlin\",\n \"countryCode\": \"DE\",\n \"postalCode\": \"10243\",\n \"type\": \"BILLING\"\n }\n ],\n \"bankAccounts\": [\n {\n \"id\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\n \"bankName\": \"Sparkasse\",\n \"bic\": \"DEUTDEFF\",\n \"code\": \"50010517\",\n \"iban\": \"DE89370400440532013000\",\n \"number\": 5407324931\n }\n ],\n \"businessRegistrationNumber\": \"12345678\",\n \"companyName\": \"maesn\",\n \"contactPersons\": [\n {\n \"birthDate\": \"1990-05-12T00:00:00.000Z\",\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"firstName\": \"John\",\n \"jobTitle\": \"Managing Director\",\n \"lastName\": \"Doe\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"salutation\": \"Mr\"\n }\n ],\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"isCustomer\": true,\n \"isSupplier\": false,\n \"number\": \"1042\",\n \"parentId\": \"3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"projectId\": \"3\",\n \"vatId\": \"DE123456789\",\n \"website\": \"https://www.maesn.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/contacts")
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 \"contactType\": \"CONTACT_PERSON\",\n \"addresses\": [\n {\n \"addressLine1\": \"Lucky street 1\",\n \"addressLine2\": \"2nd floor\",\n \"city\": \"Berlin\",\n \"countryCode\": \"DE\",\n \"postalCode\": \"10243\",\n \"type\": \"BILLING\"\n }\n ],\n \"bankAccounts\": [\n {\n \"id\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\n \"bankName\": \"Sparkasse\",\n \"bic\": \"DEUTDEFF\",\n \"code\": \"50010517\",\n \"iban\": \"DE89370400440532013000\",\n \"number\": 5407324931\n }\n ],\n \"businessRegistrationNumber\": \"12345678\",\n \"companyName\": \"maesn\",\n \"contactPersons\": [\n {\n \"birthDate\": \"1990-05-12T00:00:00.000Z\",\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"firstName\": \"John\",\n \"jobTitle\": \"Managing Director\",\n \"lastName\": \"Doe\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"salutation\": \"Mr\"\n }\n ],\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"isCustomer\": true,\n \"isSupplier\": false,\n \"number\": \"1042\",\n \"parentId\": \"3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"projectId\": \"3\",\n \"vatId\": \"DE123456789\",\n \"website\": \"https://www.maesn.com\"\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": "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
Create contact
POST
/
accounting
/
contacts
cURL
curl --request POST \
--url https://api.maesn.dev/accounting/contacts \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>' \
--data '
{
"contactType": "CONTACT_PERSON",
"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": [
{
"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"
}
],
"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",
"vatId": "DE123456789",
"website": "https://www.maesn.com"
}
'import requests
url = "https://api.maesn.dev/accounting/contacts"
payload = {
"contactType": "CONTACT_PERSON",
"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": [
{
"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"
}
],
"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",
"vatId": "DE123456789",
"website": "https://www.maesn.com"
}
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({
contactType: 'CONTACT_PERSON',
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: [
{
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'
}
],
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',
vatId: 'DE123456789',
website: 'https://www.maesn.com'
})
};
fetch('https://api.maesn.dev/accounting/contacts', 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",
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([
'contactType' => 'CONTACT_PERSON',
'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' => [
[
'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'
]
],
'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',
'vatId' => 'DE123456789',
'website' => 'https://www.maesn.com'
]),
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/contacts"
payload := strings.NewReader("{\n \"contactType\": \"CONTACT_PERSON\",\n \"addresses\": [\n {\n \"addressLine1\": \"Lucky street 1\",\n \"addressLine2\": \"2nd floor\",\n \"city\": \"Berlin\",\n \"countryCode\": \"DE\",\n \"postalCode\": \"10243\",\n \"type\": \"BILLING\"\n }\n ],\n \"bankAccounts\": [\n {\n \"id\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\n \"bankName\": \"Sparkasse\",\n \"bic\": \"DEUTDEFF\",\n \"code\": \"50010517\",\n \"iban\": \"DE89370400440532013000\",\n \"number\": 5407324931\n }\n ],\n \"businessRegistrationNumber\": \"12345678\",\n \"companyName\": \"maesn\",\n \"contactPersons\": [\n {\n \"birthDate\": \"1990-05-12T00:00:00.000Z\",\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"firstName\": \"John\",\n \"jobTitle\": \"Managing Director\",\n \"lastName\": \"Doe\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"salutation\": \"Mr\"\n }\n ],\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"isCustomer\": true,\n \"isSupplier\": false,\n \"number\": \"1042\",\n \"parentId\": \"3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"projectId\": \"3\",\n \"vatId\": \"DE123456789\",\n \"website\": \"https://www.maesn.com\"\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/contacts")
.header("X-API-KEY", "<x-api-key>")
.header("X-ACCOUNT-KEY", "<x-account-key>")
.header("Content-Type", "application/json")
.body("{\n \"contactType\": \"CONTACT_PERSON\",\n \"addresses\": [\n {\n \"addressLine1\": \"Lucky street 1\",\n \"addressLine2\": \"2nd floor\",\n \"city\": \"Berlin\",\n \"countryCode\": \"DE\",\n \"postalCode\": \"10243\",\n \"type\": \"BILLING\"\n }\n ],\n \"bankAccounts\": [\n {\n \"id\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\n \"bankName\": \"Sparkasse\",\n \"bic\": \"DEUTDEFF\",\n \"code\": \"50010517\",\n \"iban\": \"DE89370400440532013000\",\n \"number\": 5407324931\n }\n ],\n \"businessRegistrationNumber\": \"12345678\",\n \"companyName\": \"maesn\",\n \"contactPersons\": [\n {\n \"birthDate\": \"1990-05-12T00:00:00.000Z\",\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"firstName\": \"John\",\n \"jobTitle\": \"Managing Director\",\n \"lastName\": \"Doe\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"salutation\": \"Mr\"\n }\n ],\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"isCustomer\": true,\n \"isSupplier\": false,\n \"number\": \"1042\",\n \"parentId\": \"3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"projectId\": \"3\",\n \"vatId\": \"DE123456789\",\n \"website\": \"https://www.maesn.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.maesn.dev/accounting/contacts")
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 \"contactType\": \"CONTACT_PERSON\",\n \"addresses\": [\n {\n \"addressLine1\": \"Lucky street 1\",\n \"addressLine2\": \"2nd floor\",\n \"city\": \"Berlin\",\n \"countryCode\": \"DE\",\n \"postalCode\": \"10243\",\n \"type\": \"BILLING\"\n }\n ],\n \"bankAccounts\": [\n {\n \"id\": \"5a6b7f5dw45c1c-403e-ad56-202fbc312414\",\n \"bankName\": \"Sparkasse\",\n \"bic\": \"DEUTDEFF\",\n \"code\": \"50010517\",\n \"iban\": \"DE89370400440532013000\",\n \"number\": 5407324931\n }\n ],\n \"businessRegistrationNumber\": \"12345678\",\n \"companyName\": \"maesn\",\n \"contactPersons\": [\n {\n \"birthDate\": \"1990-05-12T00:00:00.000Z\",\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"firstName\": \"John\",\n \"jobTitle\": \"Managing Director\",\n \"lastName\": \"Doe\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"salutation\": \"Mr\"\n }\n ],\n \"emailAddresses\": [\n {\n \"email\": \"john.doe@company.com\",\n \"type\": \"BUSINESS\"\n }\n ],\n \"isCustomer\": true,\n \"isSupplier\": false,\n \"number\": \"1042\",\n \"parentId\": \"3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34\",\n \"phoneNumbers\": [\n {\n \"number\": \"+49 7163307056\",\n \"type\": \"MOBILE\"\n }\n ],\n \"projectId\": \"3\",\n \"vatId\": \"DE123456789\",\n \"website\": \"https://www.maesn.com\"\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": "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 and an objectId. Use /asyncTask/{taskId} to check the task status and obtain the final result once it is ready. The objectId is the number you sent in the request, which is the id the contact will have if the task succeeds.
If the request completes instantly, you get a response body back instead, but only the id is populated. That id is the same as the objectId.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
required
Available options:
CONTACT_PERSON, COMPANYstring
required

bexio
bexio
Supported request parameters:
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
required
Available options:
CONTACT_PERSON, COMPANYstring

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.Address[]
string
string
required
ContactPerson[]
enum
required
Available options:
COMPANYboolean
boolean
string
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.Address[]
string
required
ContactPerson[]
enum
required
Available options:
COMPANY, CONTACT_PERSON
Snelstart
Snelstart
Supported request parameters:
Address[]
BankAccount[]
string
string
required
enum
required
Available options:
COMPANYboolean
boolean
string
string

Xero
Xero
Supported request parameters:
Address[]
string
required
string
Body
application/json
Available options:
CONTACT_PERSON, COMPANY Example:
"CONTACT_PERSON"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Example:
"12345678"
Example:
"maesn"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Example:
true
Example:
false
Example:
"1042"
Example:
"3b1e4c72-9d8a-42f5-9c6b-1a7f0e5d8c34"
Show child attributes
Show child attributes
Example:
"3"
Example:
"DE123456789"
Example:
"https://www.maesn.com"
Last modified on September 16, 2026
Was this page helpful?