COUNTCOUNT
Sign Up
TransactionsBulk exclude transactions

Bulk exclude transactions

PATCH/partners/transactions/exclude-bulk

Excludes or un-excludes transactions by UUID list or postedDate range.

Pass either `{ transactionUuids, excluded }` or `{ startDate, endDate, excluded }` — not both. Date-range mode rejects with 400 if more than 100 transactions match. Excluding hides a row from the ledger without deleting it. Same per-row eligibility guards as single-row exclude (unreviewed, unreconciled, not pending, not attached).

HMAC signature + Bearer access token
Try this request

Request body

excludedbooleanrequired

true to exclude, false to un-exclude.

transactionUuidsarray

UUID mode: non-empty array of transaction UUIDs (max 100). Mutually exclusive with date range.

startDatedate

Date-range mode: inclusive postedDate start (YYYY-MM-DD). Requires endDate.

endDatedate

Date-range mode: inclusive postedDate end (YYYY-MM-DD). Requires startDate.

Responses

200Bulk exclude processed with per-row failures for skipped rows.
400Invalid body — both modes, neither mode, bad dates, or more than 100 matches.
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
PATCHhttps://api.getcount.com/partners/transactions/exclude-bulk
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 = 'PATCH';
const signingPath = '/transactions/exclude-bulk';
const timestamp = Math.floor(Date.now() / 1000).toString();
const body = {
  "excluded": true,
  "transactionUuids": [
    "b7c8d9e0-f1a2-3456-bcde-678901234567"
  ]
};
const bodyString = JSON.stringify(body);

const bodyHash = crypto.createHash('sha256').update(bodyString).digest('hex');
const baseString = `${method}:${signingPath}:${timestamp}:${bodyHash}`;
const signature = crypto.createHmac('sha256', CLIENT_SECRET).update(baseString).digest('hex');

const response = await fetch(`${BASE_URL}/partners/transactions/exclude-bulk`, {
  method,
  headers: {
    'x-client-id': CLIENT_ID,
    'x-timestamp': timestamp,
    'x-signature': signature,
    'Content-Type': 'application/json',
    Authorization: `Bearer ${ACCESS_TOKEN}`,
  },
  body: bodyString,
});

console.log(await response.json());
Response · 200
{
  "status": "success",
  "data": {
    "successCount": 1,
    "failedCount": 0,
    "failures": []
  }
}