---
title: "Generate account transactions report · Reports · COUNT Partner API"
description: "Returns journal-line activity grouped by ledger account. POST /partners/reports/account-transactions"
canonical: "https://developers.getcount.com/reference/reports/generate-account-transactions"
source: "https://developers.getcount.com/reference/reports/generate-account-transactions"
---
[Reports](https://developers.getcount.com/reference/reports) / Generate account transactions report

# Generate account transactions report

POST `/partners/reports/account-transactions`

Returns 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.

HMAC signature + Bearer access token

[Try this request](https://developers.getcount.com/tools/try-it?method=POST&path=%2Fpartners%2Freports%2Faccount-transactions)

[Chart of Accounts API](https://developers.getcount.com/reference/chart-of-accounts) [Tags API](https://developers.getcount.com/reference/tags) [Workspace Stats API](https://developers.getcount.com/reference/workspace-stats)

#### Query parameters

`startDate` date required

Report period start (YYYY-MM-DD).

`endDate` date required

Report period end (YYYY-MM-DD).

`currency` string optional

Report currency. Defaults to workspace currency.

`accountUuids` string optional

Comma-separated ledger account UUIDs whose activity to include. Alias: accounts. Pass UUIDs from GET /partners/accounts, never internal numeric ids.

`categoryAccountUuids` string optional

Comma-separated source/bank account UUIDs restricting the counterpart account on each line. Aliases: categoryAccount, categoryAccountUuid.

`transactionStatus` enum optional

Filter lines by review/reconciliation state.

One of: `all`, `reviewed`, `unreviewed`, `reconciled`, `unreconciled`

`reportType` enum optional

Accounting basis for the report. Defaults to accrual.

One of: `accrual`, `cash`

`tax` enum optional

Filter lines by tax treatment.

One of: `taxable`, `none`, `other`

`customerUuids` string optional

Comma-separated customer UUIDs. Alias: customers.

`vendorUuids` string optional

Comma-separated vendor UUIDs. Alias: vendors.

`projectUuids` string optional

Comma-separated project UUIDs. Alias: projects.

`productUuids` string optional

Comma-separated product UUIDs. Alias: products.

`tagUuids` string optional

Comma-separated tag UUIDs. Alias: tags.

`noTags` string optional

Pass "true" to return only lines with no tags attached.

`checkNumberFrom` string optional

Inclusive lower bound of the transaction reference-number range, 1–18 digits (leading zeros ignored). Accrual basis only.

`checkNumberTo` string optional

Inclusive upper bound of the transaction reference-number range, 1–18 digits (leading zeros ignored). Accrual basis only.

`unknownCustomerAr` string optional

Pass "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.

`unknownVendorAp` string optional

Pass "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

`200` Account transactions report generated.

`400` Missing 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.

`404` Accounts Receivable or Accounts Payable account not found for the drill-down.

`401` Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. [Troubleshoot](https://developers.getcount.com/getting-started/errors#error-401)

`403` The credential does not have access to this workspace or resource. [Troubleshoot](https://developers.getcount.com/getting-started/errors#error-403)

`429` Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. [Troubleshoot](https://developers.getcount.com/getting-started/errors#error-429)

[Previous POST Generate customer activity report](https://developers.getcount.com/reference/reports/generate-customer-report)

POST `https://api.getcount.com/partners/reports/account-transactions`

Request

```javascript
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/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());
```

Response · 200

```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"
    }
  }
}
```
