Bulk review transactions
POST
/partners/transactions/review-bulkMarks transactions as reviewed, or clears the reviewed flag, by UUID list.
Reviewing is the sign-off step that moves a categorised transaction out of the "to review" queue. Rows are processed independently with partial success: a UUID that does not resolve in this workspace, or a row the ledger refuses, comes back under `failures` with its reasons while the rest still apply. Capped at 100 UUIDs per request.
HMAC signature + Bearer access token
Try this requestRequest body
transactionUuidsarrayrequiredNon-empty array of transaction UUIDs, max 100. Every entry must be a non-empty string.
reviewedbooleanrequiredtrue to mark the transactions reviewed, false to clear the flag.
Responses
200Batch processed. Check successCount and per-row failures.400reviewed is not a boolean, transactionUuids is empty or over 100 entries, or an entry is not a UUID string.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/transactions/review-bulkRequest
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 = '/transactions/review-bulk';
const timestamp = Math.floor(Date.now() / 1000).toString();
const body = {
"transactionUuids": [
"b7c8d9e0-f1a2-3456-bcde-678901234567"
],
"reviewed": true
};
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/review-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",
"message": "Bulk review processed.",
"data": {
"updatedTransactions": [
"b7c8d9e0-f1a2-3456-bcde-678901234567"
],
"successCount": 1,
"failedCount": 0,
"failures": []
}
}