Create Compound Aggregation - m3ter Documentation
Create Compound Aggregation
cURL
curl --request POST \
--url https://api.m3ter.com/organizations/{orgId}/compoundaggregations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"quantityPerUnit": 1,
"unit": "<string>",
"calculation": "<string>",
"version": 123,
"customFields": {},
"code": "example_code",
"accountingProductId": "<string>",
"productId": "<string>",
"evaluateNullAggregations": true
}
'
Python
import requests
url = "https://api.m3ter.com/organizations/{orgId}/compoundaggregations"
payload = {
"name": "<string>",
"quantityPerUnit": 1,
"unit": "<string>",
"calculation": "<string>",
"version": 123,
"customFields": {},
"code": "example_code",
"accountingProductId": "<string>",
"productId": "<string>",
"evaluateNullAggregations": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
JavaScript (Fetch API)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
quantityPerUnit: 1,
unit: '<string>',
calculation: '<string>',
version: 123,
customFields: {},
code: 'example_code',
accountingProductId: '<string>',
productId: '<string>',
evaluateNullAggregations: true
})
};
fetch('https://api.m3ter.com/organizations/{orgId}/compoundaggregations', 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.m3ter.com/organizations/{orgId}/compoundaggregations",
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([
'name' => '<string>',
'quantityPerUnit' => 1,
'unit' => '<string>',
'calculation' => '<string>',
'version' => 123,
'customFields' => [
],
'code' => 'example_code',
'accountingProductId' => '<string>',
'productId' => '<string>',
'evaluateNullAggregations' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Go
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.m3ter.com/organizations/{orgId}/compoundaggregations"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"quantityPerUnit\": 1,\n \"unit\": \"<string>\",\n \"calculation\": \"<string>\",\n \"version\": 123,\n \"customFields\": {},\n \"code\": \"example_code\",\n \"accountingProductId\": \"<string>\",\n \"productId\": \"<string>\",\n \"evaluateNullAggregations\": true}\")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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))
}
Response
{
"id": "<string>",
"version": 123,
"customFields": {},
"name": "<string>",
"quantityPerUnit": 123,
"unit": "<string>",
"code": "<string>",
"segments": [{}],
"accountingProductId": "<string>",
"calculation": "<string>",
"productId": "<string>",
"evaluateNullAggregations": true,
"dtCreated": "2023-11-07T05:31:56Z",
"dtLastModified": "2023-11-07T05:31:56Z",
"createdBy": "<string>",
"lastModifiedBy": "<string>"
}
Error Responses
{
"message": "<string>"
}
{
"message": "<string>"
}
Authorization
Required Authorization: Bearer Token
Path Parameters
orgId: Unique identifier (UUID) for your Organization.
Request Body
name: Descriptive name for the Aggregation.quantityPerUnit: Defines how much of a quantity equates to 1 unit.unit: User defined label for units.calculation: String that represents the formula for calculation.version: Version number.customFields: User defined fields for custom data.code: A unique short code to identify the Aggregation.accountingProductId: Optional Product ID for accounting attribution.productId: Unique identifier of the Product the Aggregate belongs to.evaluateNullAggregations: Boolean flag for null values in calculations.
Response
Returns the created Compound Aggregation, including details on id, version, name, quantityPerUnit, unit, code, segments, accountingProductId, calculation, productId, evaluateNullAggregations, dtCreated, dtLastModified, createdBy, lastModifiedBy.