Charges API
Get Charges Table Definition
Returns the available charges export columns and default columns. Downstream finance systems such as NetSuite, Sage, or ERP middleware can use this metadata to map Cedar fields before requesting charge rows.
This response is metadata only: it tells consumers which columns are available, how Cedar labels them, which columns are searchable, and which columns Cedar returns by default.
Common export-oriented columns:
| Column | Meaning for downstream systems |
|---|---|
chargeId | Stable Cedar charge identifier for reconciliation, upserts, or idempotent imports. |
customerLocationAccountNumber | Customer location account number often used to map a charge into an external account or business unit. |
invoice | Invoice number or sequence used to group already-invoiced charges. |
accountingPeriod | Cedar accounting period label that can be used for period-close exports or batching. |
billingType | High-level charge category such as storage, demurrage, switching, or ISS shipment. |
serviceType | Service-specific classification that can help downstream mapping rules route charges to the right workflow. |
glCode | General ledger code used for financial posting and account mapping. |
rateTableEntry / rateDescription | Human-readable pricing fields that explain why the amount was calculated. |
adjustment_total | Net difference between the original amount and the final adjusted amount. |
The response example below shows a representative subset of these columns.
GET
/
t
/
v1
/
charges-table-def
Get Charges Table Definition
curl --request GET \
--url https://api-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def \
--header 'Carrier: <carrier>' \
--header 'x-arms-api-key: <api-key>' \
--header 'x-arms-assume-user: <api-key>'import requests
url = "https://api-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def"
headers = {
"Carrier": "<carrier>",
"x-arms-api-key": "<api-key>",
"x-arms-assume-user": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
Carrier: '<carrier>',
'x-arms-api-key': '<api-key>',
'x-arms-assume-user': '<api-key>'
}
};
fetch('https://api-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def', 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-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Carrier: <carrier>",
"x-arms-api-key: <api-key>",
"x-arms-assume-user: <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-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Carrier", "<carrier>")
req.Header.Add("x-arms-api-key", "<api-key>")
req.Header.Add("x-arms-assume-user", "<api-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-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def")
.header("Carrier", "<carrier>")
.header("x-arms-api-key", "<api-key>")
.header("x-arms-assume-user", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Carrier"] = '<carrier>'
request["x-arms-api-key"] = '<api-key>'
request["x-arms-assume-user"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"columns": [
{
"key": "chargeId",
"name": "Charge ID",
"searchable": true,
"type": "INT"
},
{
"key": "customer",
"name": "Customer",
"searchable": true,
"type": "STRING"
},
{
"key": "customerLocation",
"name": "Customer Location",
"searchable": true,
"type": "STRING"
},
{
"key": "customerLocationAccountNumber",
"name": "Customer Location Account #",
"searchable": true,
"type": "STRING"
},
{
"key": "invoice",
"name": "Invoice",
"searchable": true,
"type": "STRING"
},
{
"key": "accountingPeriod",
"name": "Accounting Period",
"searchable": true,
"type": "STRING"
},
{
"enumValues": [
"STORAGE",
"DEMURRAGE",
"SWITCHING",
"JUNCTION SETTLEMENT",
"NON-RAILROAD CHARGE",
"TRACKAGE",
"EXCESS",
"MISC.",
"ISS SHIPMENT"
],
"key": "billingType",
"name": "Billing Type",
"searchable": true,
"type": "STRING"
},
{
"enumValues": [
"IN_PROGRESS",
"PENDING",
"ASSIGNED",
"INVOICED",
"ARCHIVED",
"DELETED",
"RESET",
"VOID"
],
"key": "billingStatus",
"name": "Billing Status",
"searchable": true,
"type": "STRING"
},
{
"key": "amount",
"name": "Amount",
"searchable": true,
"type": "REAL"
},
{
"key": "appliedAt",
"name": "Applied At",
"searchable": true,
"type": "TIMESTAMP"
},
{
"key": "serviceType",
"name": "Service Type",
"searchable": true,
"type": "STRING"
},
{
"key": "glCode",
"name": "GL Code",
"searchable": true,
"type": "STRING"
},
{
"key": "rateTableEntry",
"name": "Rate Table Entry",
"searchable": true,
"type": "STRING"
},
{
"key": "rateDescription",
"name": "Rate Description",
"searchable": true,
"type": "STRING"
},
{
"key": "adjustment_total",
"name": "Adjustment Total",
"searchable": true,
"type": "REAL"
}
],
"defaultColumns": [
"chargeId",
"customer",
"customerLocation",
"billingStatus",
"amount",
"appliedAt",
"invoice",
"billingType",
"serviceType",
"glCode",
"rateTableEntry"
]
}{
"code": 123,
"details": [
{
"@type": "<string>"
}
],
"message": "<string>"
}Was this page helpful?
⌘I
Get Charges Table Definition
curl --request GET \
--url https://api-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def \
--header 'Carrier: <carrier>' \
--header 'x-arms-api-key: <api-key>' \
--header 'x-arms-assume-user: <api-key>'import requests
url = "https://api-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def"
headers = {
"Carrier": "<carrier>",
"x-arms-api-key": "<api-key>",
"x-arms-assume-user": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
Carrier: '<carrier>',
'x-arms-api-key': '<api-key>',
'x-arms-assume-user': '<api-key>'
}
};
fetch('https://api-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def', 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-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Carrier: <carrier>",
"x-arms-api-key: <api-key>",
"x-arms-assume-user: <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-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Carrier", "<carrier>")
req.Header.Add("x-arms-api-key", "<api-key>")
req.Header.Add("x-arms-assume-user", "<api-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-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def")
.header("Carrier", "<carrier>")
.header("x-arms-api-key", "<api-key>")
.header("x-arms-assume-user", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-lg-k-h1.arms.cedarai.com/t/v1/charges-table-def")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Carrier"] = '<carrier>'
request["x-arms-api-key"] = '<api-key>'
request["x-arms-assume-user"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"columns": [
{
"key": "chargeId",
"name": "Charge ID",
"searchable": true,
"type": "INT"
},
{
"key": "customer",
"name": "Customer",
"searchable": true,
"type": "STRING"
},
{
"key": "customerLocation",
"name": "Customer Location",
"searchable": true,
"type": "STRING"
},
{
"key": "customerLocationAccountNumber",
"name": "Customer Location Account #",
"searchable": true,
"type": "STRING"
},
{
"key": "invoice",
"name": "Invoice",
"searchable": true,
"type": "STRING"
},
{
"key": "accountingPeriod",
"name": "Accounting Period",
"searchable": true,
"type": "STRING"
},
{
"enumValues": [
"STORAGE",
"DEMURRAGE",
"SWITCHING",
"JUNCTION SETTLEMENT",
"NON-RAILROAD CHARGE",
"TRACKAGE",
"EXCESS",
"MISC.",
"ISS SHIPMENT"
],
"key": "billingType",
"name": "Billing Type",
"searchable": true,
"type": "STRING"
},
{
"enumValues": [
"IN_PROGRESS",
"PENDING",
"ASSIGNED",
"INVOICED",
"ARCHIVED",
"DELETED",
"RESET",
"VOID"
],
"key": "billingStatus",
"name": "Billing Status",
"searchable": true,
"type": "STRING"
},
{
"key": "amount",
"name": "Amount",
"searchable": true,
"type": "REAL"
},
{
"key": "appliedAt",
"name": "Applied At",
"searchable": true,
"type": "TIMESTAMP"
},
{
"key": "serviceType",
"name": "Service Type",
"searchable": true,
"type": "STRING"
},
{
"key": "glCode",
"name": "GL Code",
"searchable": true,
"type": "STRING"
},
{
"key": "rateTableEntry",
"name": "Rate Table Entry",
"searchable": true,
"type": "STRING"
},
{
"key": "rateDescription",
"name": "Rate Description",
"searchable": true,
"type": "STRING"
},
{
"key": "adjustment_total",
"name": "Adjustment Total",
"searchable": true,
"type": "REAL"
}
],
"defaultColumns": [
"chargeId",
"customer",
"customerLocation",
"billingStatus",
"amount",
"appliedAt",
"invoice",
"billingType",
"serviceType",
"glCode",
"rateTableEntry"
]
}{
"code": 123,
"details": [
{
"@type": "<string>"
}
],
"message": "<string>"
}