Generate aged receivables
POST
/partners/reports/aged-receivablesGenerates an AR aging report as of a date.
Computes open invoice and credit-memo balances off the Accounts Receivable control account. Returns detail rows, customer summaries, bucket totals, and reconciliation against the control account GL balance. Filters are query parameters only.
HMAC signature + Bearer access token
Try this requestQuery parameters
asOfDatedateoptionalAs-of date for aging (YYYY-MM-DD). Alias for endDate — supply one.
endDatedateoptionalAlias for asOfDate.
currencystringoptionalReport currency. Defaults to workspace currency.
agingBasisenumoptionalAge documents off due date (default) or posted/document date.
One of: dueDate, postedDate, documentDate
tagUuidsstringoptionalComma-separated tag UUIDs to filter by.
Responses
200Aged receivables report generated.400Missing or invalid query parameters.401Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. Troubleshoot403The credential does not have access to this workspace or resource. Troubleshoot429Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. TroubleshootPOST
https://api.getcount.com/partners/reports/aged-receivablesRequest
import crypto from 'node:crypto';
const BASE_URL = 'https://api.getcount.com';
const CLIENT_ID = process.env.COUNT_CLIENT_ID;
const CLIENT_SECRET = process.env.COUNT_CLIENT_SECRET;
const ACCESS_TOKEN = process.env.COUNT_ACCESS_TOKEN;
const method = 'POST';
const signingPath = '/reports/aged-receivables';
const timestamp = Math.floor(Date.now() / 1000).toString();
const bodyString = '';
const bodyHash = '';
const baseString = `${method}:${signingPath}:${timestamp}:${bodyHash}`;
const signature = crypto.createHmac('sha256', CLIENT_SECRET).update(baseString).digest('hex');
const response = await fetch(`${BASE_URL}/partners/reports/aged-receivables`, {
method,
headers: {
'x-client-id': CLIENT_ID,
'x-timestamp': timestamp,
'x-signature': signature,
Authorization: `Bearer ${ACCESS_TOKEN}`,
},
});
console.log(await response.json());Response · 200
{
"status": "success",
"message": "Success on generating aged receivables report",
"data": {
"currency": "USD",
"asOfDate": "2026-03-31",
"rows": [
{
"documentUuid": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"documentNumber": "INV-1042",
"counterpartyUuid": "dfa3219e-6af8-4c53-997a-037534f63a35",
"counterpartyName": "Acme Corporation",
"dueDate": "2026-03-31",
"ageDays": 12,
"bucket": "notYetOverdue",
"amountDue": 2500
}
],
"customers": [
{
"counterpartyUuid": "dfa3219e-6af8-4c53-997a-037534f63a35",
"counterpartyName": "Acme Corporation",
"totals": {
"notYetOverdue": 2500
}
}
],
"totals": {
"notYetOverdue": 2500
},
"reconciliation": {
"controlAccountBalance": 2500,
"reportTotal": 2500
}
}
}