cURL
curl --request GET \
--url https://api.maesn.dev/accounting/purchaseOrders/{purchaseOrderId} \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.maesn.dev/accounting/purchaseOrders/{purchaseOrderId}"
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/purchaseOrders/{purchaseOrderId}', 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/purchaseOrders/{purchaseOrderId}",
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/purchaseOrders/{purchaseOrderId}"
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/purchaseOrders/{purchaseOrderId}")
.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/purchaseOrders/{purchaseOrderId}")
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": "f302303e-4365-4779-8685-872b713aeab1",
"addresses": [
{
"addressLine1": "Main street 45",
"addressLine2": "2nd floor",
"city": "Berlin",
"countryCode": "DE",
"postalCode": "10243",
"type": "BILLING"
}
],
"approvalDate": "2021-01-01T00:00:00Z",
"comment": "due today",
"createdDate": "2021-01-01T00:00:00Z",
"currency": "EUR",
"description": "Red chair order",
"lineItems": [
{
"id": "9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
"itemId": "efa82f42-fd85-11e1-a21f-0800200c9a33",
"createdDate": "2021-01-01T00:00:00Z",
"description": "SEOUL Guest Chair, red",
"itemName": "RED CHAIR",
"quantity": 1,
"taxCode": "CODE.19",
"taxRatePercentage": 19,
"totalDiscountAmount": 10,
"totalDiscountPercentage": 10,
"totalGrossAmount": 109,
"totalNetAmount": 100,
"totalTaxAmount": 19,
"unitAmount": 100,
"unitDiscountAmount": 10,
"unitDiscountPercentage": 10,
"unitName": "PIECE",
"updatedDate": "2021-01-01T00:00:00Z"
}
],
"orderDate": "2021-01-01T00:00:00Z",
"paymentTermId": "21",
"reference": "RCXF197253F",
"status": "OPEN",
"supplierId": "8346e541-0a0c-4b45-a2d4-8fba44a99f6c",
"totalDiscountAmount": 10,
"totalDiscountPercentage": 10,
"totalGrossAmount": 109,
"totalNetAmount": 100,
"totalTaxAmount": 19,
"updatedDate": "2021-01-01T00:00:00Z"
}
}Purchase Orders
Get purchase order
GET
/
accounting
/
purchaseOrders
/
{purchaseOrderId}
cURL
curl --request GET \
--url https://api.maesn.dev/accounting/purchaseOrders/{purchaseOrderId} \
--header 'X-ACCOUNT-KEY: <x-account-key>' \
--header 'X-API-KEY: <x-api-key>'import requests
url = "https://api.maesn.dev/accounting/purchaseOrders/{purchaseOrderId}"
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/purchaseOrders/{purchaseOrderId}', 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/purchaseOrders/{purchaseOrderId}",
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/purchaseOrders/{purchaseOrderId}"
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/purchaseOrders/{purchaseOrderId}")
.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/purchaseOrders/{purchaseOrderId}")
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": "f302303e-4365-4779-8685-872b713aeab1",
"addresses": [
{
"addressLine1": "Main street 45",
"addressLine2": "2nd floor",
"city": "Berlin",
"countryCode": "DE",
"postalCode": "10243",
"type": "BILLING"
}
],
"approvalDate": "2021-01-01T00:00:00Z",
"comment": "due today",
"createdDate": "2021-01-01T00:00:00Z",
"currency": "EUR",
"description": "Red chair order",
"lineItems": [
{
"id": "9fc4f3a2-5b8e-4d1b-8a0c-9f6e7d2f3e4b",
"itemId": "efa82f42-fd85-11e1-a21f-0800200c9a33",
"createdDate": "2021-01-01T00:00:00Z",
"description": "SEOUL Guest Chair, red",
"itemName": "RED CHAIR",
"quantity": 1,
"taxCode": "CODE.19",
"taxRatePercentage": 19,
"totalDiscountAmount": 10,
"totalDiscountPercentage": 10,
"totalGrossAmount": 109,
"totalNetAmount": 100,
"totalTaxAmount": 19,
"unitAmount": 100,
"unitDiscountAmount": 10,
"unitDiscountPercentage": 10,
"unitName": "PIECE",
"updatedDate": "2021-01-01T00:00:00Z"
}
],
"orderDate": "2021-01-01T00:00:00Z",
"paymentTermId": "21",
"reference": "RCXF197253F",
"status": "OPEN",
"supplierId": "8346e541-0a0c-4b45-a2d4-8fba44a99f6c",
"totalDiscountAmount": 10,
"totalDiscountPercentage": 10,
"totalGrossAmount": 109,
"totalNetAmount": 100,
"totalTaxAmount": 19,
"updatedDate": "2021-01-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.To retrieve purchase orders from Exact Online, your account must have one of the following package subscriptions enabled:
- Manufacturing (any tier)
- Professional Services (Plus, Professional, or Premium)
- Wholesale & Distribution (any tier)
boolean
string
Address[]
Show properties
Show properties
string
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:
DELIVERYstring
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
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
LineItem[]
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
string
number
enum
Available options:
OPEN, PARTIALLY_FULFILLED, CLOSED, CANCELEDstring
number
number
string
ISO-8601 date format, e.g., 2024-01-01T00:00:00Z
Last modified on July 9, 2026
Was this page helpful?