COUNTCOUNT
Sign Up
ReportsGenerate aged payables

Generate aged payables

POST/partners/reports/aged-payables

Generates an AP aging report as of a date.

Payables mirror of aged receivables: open bills and vendor memos aged off the Accounts Payable control account. Query filters match aged receivables.

HMAC signature + Bearer access token
Try this request

Query parameters

asOfDatedateoptional

As-of date for aging (YYYY-MM-DD). Alias for endDate — supply one.

endDatedateoptional

Alias for asOfDate.

currencystringoptional

Report currency. Defaults to workspace currency.

agingBasisenumoptional

Age documents off due date (default) or posted/document date.

One of: dueDate, postedDate, documentDate

tagUuidsstringoptional

Comma-separated tag UUIDs to filter by.

Responses

200Aged payables report generated.
400Missing or invalid query parameters.
401Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. Troubleshoot
403The credential does not have access to this workspace or resource. Troubleshoot
429Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. Troubleshoot
POSThttps://api.getcount.com/partners/reports/aged-payables
Request
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-payables';
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-payables`, {
  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 payables report",
  "data": {
    "currency": "USD",
    "asOfDate": "2026-03-31",
    "rows": [
      {
        "documentUuid": "f6a7b8c9-d0e1-2345-fabc-456789012345",
        "documentNumber": "BILL-2042",
        "counterpartyUuid": "dfa3219e-6af8-4c53-997a-037534f63a35",
        "counterpartyName": "Acme Corporation",
        "dueDate": "2026-03-31",
        "ageDays": 12,
        "bucket": "notYetOverdue",
        "amountDue": 2500
      }
    ],
    "vendors": [
      {
        "counterpartyUuid": "aa11bb22-cc33-dd44-ee55-ff6677889901",
        "counterpartyName": "Office Supplies Co",
        "totals": {
          "between31And60": 900
        }
      }
    ],
    "totals": {
      "between31And60": 900
    },
    "reconciliation": {
      "controlAccountBalance": 900,
      "reportTotal": 900
    }
  }
}