Generate account transactions report
/partners/reports/account-transactionsReturns journal-line activity grouped by ledger account.
The general-ledger detail report: every journal line in the period grouped by ledger account, with opening and ending balances per account and a running balance on each entry. This is ledger activity, not the bank/register rows returned by GET /partners/transactions. Each entry carries its transaction reference number as `checkNumber`; filter a check or deposit register by range with checkNumberFrom/checkNumberTo. unknownCustomerAr / unknownVendorAp reproduce the Aged Receivables "Unknown customer" and Aged Payables "Unknown vendor" rows.
Query parameters
startDatedaterequiredReport period start (YYYY-MM-DD).
endDatedaterequiredReport period end (YYYY-MM-DD).
currencystringoptionalReport currency. Defaults to workspace currency.
accountUuidsstringoptionalComma-separated ledger account UUIDs whose activity to include. Alias: accounts. Pass UUIDs from GET /partners/accounts, never internal numeric ids.
categoryAccountUuidsstringoptionalComma-separated source/bank account UUIDs restricting the counterpart account on each line. Aliases: categoryAccount, categoryAccountUuid.
transactionStatusenumoptionalFilter lines by review/reconciliation state.
One of: all, reviewed, unreviewed, reconciled, unreconciled
reportTypeenumoptionalAccounting basis for the report. Defaults to accrual.
One of: accrual, cash
taxenumoptionalFilter lines by tax treatment.
One of: taxable, none, other
customerUuidsstringoptionalComma-separated customer UUIDs. Alias: customers.
vendorUuidsstringoptionalComma-separated vendor UUIDs. Alias: vendors.
projectUuidsstringoptionalComma-separated project UUIDs. Alias: projects.
productUuidsstringoptionalComma-separated product UUIDs. Alias: products.
tagUuidsstringoptionalComma-separated tag UUIDs. Alias: tags.
noTagsstringoptionalPass "true" to return only lines with no tags attached.
checkNumberFromstringoptionalInclusive lower bound of the transaction reference-number range, 1–18 digits (leading zeros ignored). Accrual basis only.
checkNumberTostringoptionalInclusive upper bound of the transaction reference-number range, 1–18 digits (leading zeros ignored). Accrual basis only.
unknownCustomerArstringoptionalPass "true" for the Aged Receivables "Unknown customer" drill-down: Accounts Receivable lines with no customer on the line or its transaction, in the reporting currency unless currency is given. The control account is returned even with no lines in the period. Accrual basis only; cannot be combined with unknownVendorAp, accountUuids, categoryAccountUuids, customerUuids, tagUuids, or noTags.
unknownVendorApstringoptionalPass "true" for the Aged Payables "Unknown vendor" drill-down: Accounts Payable lines with no vendor on the line or its transaction. Same rules as unknownCustomerAr, with vendorUuids in place of customerUuids.
Responses
200Account transactions report generated.400Missing startDate or endDate, or invalid filters — including a reference-number bound that is not 1–18 digits, a reference-number range or unknown-counterparty drill-down on a cash basis, both drill-down flags together, or a drill-down combined with a filter it sets itself.404Accounts Receivable or Accounts Payable account not found for the drill-down.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. Troubleshoothttps://api.getcount.com/partners/reports/account-transactionsimport 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/account-transactions';
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/account-transactions`, {
method,
headers: {
'x-client-id': CLIENT_ID,
'x-timestamp': timestamp,
'x-signature': signature,
Authorization: `Bearer ${ACCESS_TOKEN}`,
},
});
console.log(await response.json());{
"status": "success",
"message": "Success on generating account transaction reports",
"data": {
"categorized": [
{
"accountUuid": "c8d9e0f1-a2b3-4567-cdef-789012345678",
"name": "Business Checking",
"accountNumber": "1000",
"type": "Assets",
"openingBalance": 12500,
"endingBalance": 15000,
"balanceChange": 2500,
"debitTotal": 2500,
"creditTotal": 0,
"entries": [
{
"entryUuid": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"invoiceUuid": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"transactionUuid": null,
"billUuid": null,
"date": "2026-03-04",
"descriptionEntry": "Invoice INV-1042",
"descriptionLine": "Consulting retainer",
"entryType": "debit",
"entrySpecificType": "invoice",
"amountDebit": 2500,
"amountCredit": 0,
"amount": 2500,
"balance": 15000,
"invoiceNumber": "INV-1042",
"billNumber": null,
"checkNumber": null,
"sourceDocumentType": "invoice",
"sourceDocumentReference": "INV-1042",
"account": {
"uuid": "c8d9e0f1-a2b3-4567-cdef-789012345678",
"name": "Business Checking",
"type": "Assets",
"accountNumber": "1000"
},
"categoryAccount": {
"uuid": "d4e5f6a7-b8c9-0123-defa-234567890123",
"name": "Consulting Revenue",
"type": "Income",
"accountNumber": "4000"
},
"customer": {
"uuid": "dfa3219e-6af8-4c53-997a-037534f63a35",
"name": "Acme Corporation"
},
"vendor": null,
"project": null
}
]
}
],
"filters": {
"startDate": "2026-01-01",
"endDate": "2026-03-31"
}
}
}