Create account
POST
/partners/chart-of-accountsCreates a new chart-of-accounts entry.
Requires `name` and `subTypeId`. The high-level `type` is derived server-side from `subTypeId` — do not send `type`. For New Zealand workspaces, `taxes` (numeric tax ids) may be required.
HMAC signature + Bearer access token
Try this requestRequest body
namestringrequiredDisplay name for the account.
subTypeIdintegerrequiredNumeric AccountSubType id from an existing account in the target bucket (`subType.id` on list rows).
accountNumberstringOptional account number or code.
currencystringISO 4217 currency. Defaults to the workspace currency.
descriptionstringFree-text description.
colorstringHex color for UI display.
parentAccountIdintegerNumeric id of the parent account when creating a sub-account.
institutionIdintegerInstitution id for connected feed accounts.
taxesarrayArray of numeric tax ids (required for NZ workspaces).
statusenumAccount status. Defaults to active.
One of: active, inactive
Responses
201Account created successfully.400Validation failed — missing name/subTypeId or invalid sub-type.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/chart-of-accountsRequest
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 = '/chart-of-accounts';
const timestamp = Math.floor(Date.now() / 1000).toString();
const body = {
"name": "Petty Cash",
"subTypeId": 1,
"accountNumber": "1010",
"currency": "USD",
"status": "active"
};
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/chart-of-accounts`, {
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 · 201
{
"status": "success",
"message": "Success on creating account.",
"data": {
"account": {
"id": "c8d9e0f1-a2b3-4567-cdef-789012345678",
"name": "Operating Bank Account",
"accountNumber": "1000",
"type": "Assets",
"status": "active",
"currency": "USD",
"description": "Primary business checking account",
"color": "#4A90D9",
"subType": {
"id": 1,
"type": "Assets",
"name": "Bank",
"anchorTier": null
},
"institution": {
"name": "Chase",
"logoUrl": null
},
"subAccounts": [],
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-28T14:22:30.000Z"
}
}
}