> For the complete documentation index, see [llms.txt](https://docs.kick.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kick.co/api/api-reference/chart-of-accounts.md).

# Chart of Accounts

Read an entity's chart of accounts, create, rename, archive, restore, merge, or delete the accounts in it, and organize them into account groups.

A chart of accounts belongs to a single entity, so every endpoint is nested under the entity uuid. Listing returns archived accounts too, flagged with `isDisabled`. Every account also carries a `groupId` pointing at the [account group](#account-groups) it sits in, `null` when it is ungrouped.

An account's type, class, and code are fixed once it exists, so the update route only renames. Retiring an account works one of three ways: delete it outright, which is refused with `409` once it carries journal entries, archive it with the disable route, which keeps it available to resolve historical postings, or merge it into another account with the merge route, which moves its activity before deleting it.

Merging moves journal entry lines, transactions, and every other reference from the source account to the target account, then permanently deletes the source. Both accounts must belong to the entity and share a class. A merge blocked by the accounts' state, such as a locked period, an opening balance on both accounts, or a source account linked to a connected financial account, returns `409` with the list of blockers, each carrying a stable `code` and a human-readable `message`.

Creation takes a `type` and never a `class`, because Kick derives the classification from the type it is given:

* `Assets`: Cash, Accounts Receivable, Inventory, Other Current Assets, Investments, Fixed Assets, Intangible Assets, Other Assets, Prepaid Expenses
* `Liabilities`: Accounts Payable, Credit Cards, Payroll Liabilities, Short-Term Loans, Other Current Liabilities, Long-Term Loans, Other Liabilities
* `Equity`: Equity
* `Income`: Income, Other Income
* `Expenses`: COGS, Operating Expenses, Other Expenses, Tax Expenses

## List chart of accounts

> Returns the entity's chart of accounts, archived accounts included and flagged with \`isDisabled\`. Results are paged with \`limit\`/\`offset\`.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/chart-of-accounts":{"get":{"description":"Returns the entity's chart of accounts, archived accounts included and flagged with `isDisabled`. Results are paged with `limit`/`offset`.","operationId":"chartOfAccounts.list","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"limit","schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"nullable":true,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"class":{"enum":["Assets","Liabilities","Equity","Income","Expenses"],"type":"string"},"code":{"description":"Human-facing account code, null when the account has none.","nullable":true,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"financialAccountId":{"description":"Financial (bank) account this ledger account was generated for — matches the Plaid account id. Null for standard and custom accounts.","format":"uuid","nullable":true,"type":"string"},"groupId":{"description":"Account group the account belongs to, null when ungrouped.","format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"isDisabled":{"description":"Archived accounts stay in the listing and are flagged here.","type":"boolean"},"name":{"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","code","name","type","class","groupId","isDisabled","financialAccountId","createdAt"],"type":"object"},"type":"array"},"pagination":{"properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"total":{"type":"integer"}},"required":["limit","offset","total"],"type":"object"}},"required":["data","pagination"],"type":"object"}}},"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"List chart of accounts","tags":["chartOfAccounts"]}}}}
```

## Create an account

> Creates a custom account in the entity's chart of accounts. A supplied \`code\` is honored only for workspaces on a custom chart of accounts; otherwise Kick allocates the next available code. Pass \`groupId\` to place the account in an account group of the same type.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/chart-of-accounts":{"post":{"description":"Creates a custom account in the entity's chart of accounts. A supplied `code` is honored only for workspaces on a custom chart of accounts; otherwise Kick allocates the next available code. Pass `groupId` to place the account in an account group of the same type.","operationId":"chartOfAccounts.create","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"code":{"description":"Human-facing account code.","maxLength":20,"minLength":1,"type":"string"},"groupId":{"description":"Account group to place the new account in. The group must share the account's type.","format":"uuid","type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["name","type"],"type":"object"}}},"description":"Body"},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"account":{"properties":{"class":{"enum":["Assets","Liabilities","Equity","Income","Expenses"],"type":"string"},"code":{"description":"Human-facing account code, null when the account has none.","nullable":true,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"financialAccountId":{"description":"Financial (bank) account this ledger account was generated for — matches the Plaid account id. Null for standard and custom accounts.","format":"uuid","nullable":true,"type":"string"},"groupId":{"description":"Account group the account belongs to, null when ungrouped.","format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"isDisabled":{"description":"Archived accounts stay in the listing and are flagged here.","type":"boolean"},"name":{"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","code","name","type","class","groupId","isDisabled","financialAccountId","createdAt"],"type":"object"}},"required":["account"],"type":"object"}}},"description":"201"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Create an account","tags":["chartOfAccounts"]}}}}
```

## Create accounts in bulk

> Creates up to 100 custom accounts in the entity's chart of accounts in a single transaction. The operation is atomic: if any account fails validation, none are created.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/chart-of-accounts/bulk":{"post":{"description":"Creates up to 100 custom accounts in the entity's chart of accounts in a single transaction. The operation is atomic: if any account fails validation, none are created.","operationId":"chartOfAccounts.bulkCreate","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accounts":{"items":{"additionalProperties":false,"properties":{"code":{"description":"Human-facing account code.","maxLength":20,"minLength":1,"type":"string"},"groupId":{"description":"Account group to place the new account in. The group must share the account's type.","format":"uuid","type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["name","type"],"type":"object"},"maxItems":100,"minItems":1,"type":"array"}},"required":["accounts"],"type":"object"}}},"description":"Body"},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"class":{"enum":["Assets","Liabilities","Equity","Income","Expenses"],"type":"string"},"code":{"description":"Human-facing account code, null when the account has none.","nullable":true,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"financialAccountId":{"description":"Financial (bank) account this ledger account was generated for — matches the Plaid account id. Null for standard and custom accounts.","format":"uuid","nullable":true,"type":"string"},"groupId":{"description":"Account group the account belongs to, null when ungrouped.","format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"isDisabled":{"description":"Archived accounts stay in the listing and are flagged here.","type":"boolean"},"name":{"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","code","name","type","class","groupId","isDisabled","financialAccountId","createdAt"],"type":"object"},"type":"array"}},"required":["data"],"type":"object"}}},"description":"201"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Create accounts in bulk","tags":["chartOfAccounts"]}}}}
```

## Retrieve an account

> Returns a single account of the entity's chart of accounts.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/chart-of-accounts/{accountId}":{"get":{"description":"Returns a single account of the entity's chart of accounts.","operationId":"chartOfAccounts.get","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"accountId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"account":{"properties":{"class":{"enum":["Assets","Liabilities","Equity","Income","Expenses"],"type":"string"},"code":{"description":"Human-facing account code, null when the account has none.","nullable":true,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"financialAccountId":{"description":"Financial (bank) account this ledger account was generated for — matches the Plaid account id. Null for standard and custom accounts.","format":"uuid","nullable":true,"type":"string"},"groupId":{"description":"Account group the account belongs to, null when ungrouped.","format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"isDisabled":{"description":"Archived accounts stay in the listing and are flagged here.","type":"boolean"},"name":{"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","code","name","type","class","groupId","isDisabled","financialAccountId","createdAt"],"type":"object"}},"required":["account"],"type":"object"}}},"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Retrieve an account","tags":["chartOfAccounts"]}}}}
```

## Update an account

> Renames an account of the entity's chart of accounts and/or moves it into an account group of the same type (\`groupId: null\` removes it from its group). An account's type, class and code are fixed once it exists.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/chart-of-accounts/{accountId}":{"patch":{"description":"Renames an account of the entity's chart of accounts and/or moves it into an account group of the same type (`groupId: null` removes it from its group). An account's type, class and code are fixed once it exists.","operationId":"chartOfAccounts.update","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"accountId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"groupId":{"description":"Account group to move the account into. Pass null to remove the account from its group. The group must share the account's type.","format":"uuid","nullable":true,"type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"}},"type":"object"}}},"description":"Body"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"account":{"properties":{"class":{"enum":["Assets","Liabilities","Equity","Income","Expenses"],"type":"string"},"code":{"description":"Human-facing account code, null when the account has none.","nullable":true,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"financialAccountId":{"description":"Financial (bank) account this ledger account was generated for — matches the Plaid account id. Null for standard and custom accounts.","format":"uuid","nullable":true,"type":"string"},"groupId":{"description":"Account group the account belongs to, null when ungrouped.","format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"isDisabled":{"description":"Archived accounts stay in the listing and are flagged here.","type":"boolean"},"name":{"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","code","name","type","class","groupId","isDisabled","financialAccountId","createdAt"],"type":"object"}},"required":["account"],"type":"object"}}},"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Update an account","tags":["chartOfAccounts"]}}}}
```

## Archive an account

> Archives (disables) an account of the entity's chart of accounts. Archiving is how an account with journal entries is retired, since it cannot be deleted.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/chart-of-accounts/{accountId}/disable":{"post":{"description":"Archives (disables) an account of the entity's chart of accounts. Archiving is how an account with journal entries is retired, since it cannot be deleted.","operationId":"chartOfAccounts.disable","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"accountId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"account":{"properties":{"class":{"enum":["Assets","Liabilities","Equity","Income","Expenses"],"type":"string"},"code":{"description":"Human-facing account code, null when the account has none.","nullable":true,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"financialAccountId":{"description":"Financial (bank) account this ledger account was generated for — matches the Plaid account id. Null for standard and custom accounts.","format":"uuid","nullable":true,"type":"string"},"groupId":{"description":"Account group the account belongs to, null when ungrouped.","format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"isDisabled":{"description":"Archived accounts stay in the listing and are flagged here.","type":"boolean"},"name":{"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","code","name","type","class","groupId","isDisabled","financialAccountId","createdAt"],"type":"object"}},"required":["account"],"type":"object"}}},"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Archive an account","tags":["chartOfAccounts"]}}}}
```

## Restore an account

> Restores (enables) a previously archived account of the entity's chart of accounts.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/chart-of-accounts/{accountId}/enable":{"post":{"description":"Restores (enables) a previously archived account of the entity's chart of accounts.","operationId":"chartOfAccounts.enable","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"accountId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"account":{"properties":{"class":{"enum":["Assets","Liabilities","Equity","Income","Expenses"],"type":"string"},"code":{"description":"Human-facing account code, null when the account has none.","nullable":true,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"financialAccountId":{"description":"Financial (bank) account this ledger account was generated for — matches the Plaid account id. Null for standard and custom accounts.","format":"uuid","nullable":true,"type":"string"},"groupId":{"description":"Account group the account belongs to, null when ungrouped.","format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"isDisabled":{"description":"Archived accounts stay in the listing and are flagged here.","type":"boolean"},"name":{"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","code","name","type","class","groupId","isDisabled","financialAccountId","createdAt"],"type":"object"}},"required":["account"],"type":"object"}}},"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Restore an account","tags":["chartOfAccounts"]}}}}
```

## Merge two accounts

> Merges the source account into the target account: journal entry lines, transactions and every other reference move to the target, then the source account is permanently deleted. Both accounts must belong to the entity. A merge blocked by the accounts' state (e.g. different classes, a locked period, or a source account linked to a financial account) returns 409 with the list of blockers.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/chart-of-accounts/merge":{"post":{"description":"Merges the source account into the target account: journal entry lines, transactions and every other reference move to the target, then the source account is permanently deleted. Both accounts must belong to the entity. A merge blocked by the accounts' state (e.g. different classes, a locked period, or a source account linked to a financial account) returns 409 with the list of blockers.","operationId":"chartOfAccounts.merge","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"sourceAccountId":{"description":"Account whose data moves to the target and is then deleted.","format":"uuid","type":"string"},"targetAccountId":{"description":"Account that survives the merge and absorbs the source.","format":"uuid","type":"string"}},"required":["sourceAccountId","targetAccountId"],"type":"object"}}},"description":"Body"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"account":{"properties":{"class":{"enum":["Assets","Liabilities","Equity","Income","Expenses"],"type":"string"},"code":{"description":"Human-facing account code, null when the account has none.","nullable":true,"type":"string"},"createdAt":{"format":"date-time","type":"string"},"financialAccountId":{"description":"Financial (bank) account this ledger account was generated for — matches the Plaid account id. Null for standard and custom accounts.","format":"uuid","nullable":true,"type":"string"},"groupId":{"description":"Account group the account belongs to, null when ungrouped.","format":"uuid","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"isDisabled":{"description":"Archived accounts stay in the listing and are flagged here.","type":"boolean"},"name":{"type":"string"},"type":{"enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","code","name","type","class","groupId","isDisabled","financialAccountId","createdAt"],"type":"object"}},"required":["account"],"type":"object"}}},"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"409":{"content":{"application/json":{"schema":{"properties":{"blockers":{"items":{"properties":{"code":{"enum":["same_account","different_class","source_is_financial","target_has_role","target_type_ineligible_for_role","source_archived","target_archived","locked_period","target_reconciled","both_have_opening_balance","opening_balance_clearing_conflict"],"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"},"type":"array"},"message":{"type":"string"}},"required":["message","blockers"],"type":"object"}}},"description":"409"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Merge two accounts","tags":["chartOfAccounts"]}}}}
```

## Delete an account

> Permanently deletes an account of the entity's chart of accounts. An account with journal entries cannot be deleted (409); archive it with the disable route instead.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/chart-of-accounts/{accountId}":{"delete":{"description":"Permanently deletes an account of the entity's chart of accounts. An account with journal entries cannot be deleted (409); archive it with the disable route instead.","operationId":"chartOfAccounts.delete","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"accountId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"409":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"409"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Delete an account","tags":["chartOfAccounts"]}}}}
```

## Account Groups

Account groups organize an entity's chart of accounts into a hierarchy. A group has a fixed account type, and everything attached to it must share that type: its parent group, its child groups, and the accounts inside it. Groups nest through `parentGroupId` (`null` means top level) up to five levels deep, and a group's name must be unique among siblings of the same type. Listing returns the groups in the order the chart of accounts displays them, parents before their children.

Because the type is fixed once a group exists, the update route only renames the group or moves it under a different parent (`null` re-roots it at the top level). A move that would create a cycle or exceed the nesting depth is rejected. Deleting a group never deletes what is inside it: its child groups and member accounts are lifted to the deleted group's parent, or to the top level when the group had none.

Groups do not have their own membership routes. An account is placed into a group through the chart of accounts endpoints above: pass `groupId` when creating an account, or set it on the update route, where `null` removes the account from its group. The group must share the account's type.

## List account groups

> Returns the entity's account groups ordered as displayed in the chart of accounts. Results are paged with \`limit\`/\`offset\`.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/account-groups":{"get":{"description":"Returns the entity's account groups ordered as displayed in the chart of accounts. Results are paged with `limit`/`offset`.","operationId":"accountGroups.list","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"query","name":"limit","schema":{"default":100,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"offset","schema":{"default":0,"minimum":0,"nullable":true,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"properties":{"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"parentGroupId":{"description":"Direct parent of the group, null for a top-level group.","format":"uuid","nullable":true,"type":"string"},"type":{"description":"Account type shared by the group and every account inside it.","enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","name","type","parentGroupId","createdAt"],"type":"object"},"type":"array"},"pagination":{"properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"total":{"type":"integer"}},"required":["limit","offset","total"],"type":"object"}},"required":["data","pagination"],"type":"object"}}},"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"List account groups","tags":["accountGroups"]}}}}
```

## Create an account group

> Creates an account group in the entity's chart of accounts. Pass \`parentGroupId\` to nest under an existing group of the same account type; names must be unique among siblings of the same type.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/account-groups":{"post":{"description":"Creates an account group in the entity's chart of accounts. Pass `parentGroupId` to nest under an existing group of the same account type; names must be unique among siblings of the same type.","operationId":"accountGroups.create","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"maxLength":80,"minLength":1,"type":"string"},"parentGroupId":{"description":"Parent to nest the new group under. Omit or pass null to create a top-level group. The parent must share the group's type.","format":"uuid","nullable":true,"type":"string"},"type":{"description":"Account type of the group. Only accounts of the same type can be placed inside it.","enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["name","type"],"type":"object"}}},"description":"Body"},"responses":{"201":{"content":{"application/json":{"schema":{"properties":{"group":{"properties":{"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"parentGroupId":{"description":"Direct parent of the group, null for a top-level group.","format":"uuid","nullable":true,"type":"string"},"type":{"description":"Account type shared by the group and every account inside it.","enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","name","type","parentGroupId","createdAt"],"type":"object"}},"required":["group"],"type":"object"}}},"description":"201"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Create an account group","tags":["accountGroups"]}}}}
```

## Retrieve an account group

> Returns a single account group of the entity.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/account-groups/{groupId}":{"get":{"description":"Returns a single account group of the entity.","operationId":"accountGroups.get","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"groupId","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"group":{"properties":{"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"parentGroupId":{"description":"Direct parent of the group, null for a top-level group.","format":"uuid","nullable":true,"type":"string"},"type":{"description":"Account type shared by the group and every account inside it.","enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","name","type","parentGroupId","createdAt"],"type":"object"}},"required":["group"],"type":"object"}}},"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Retrieve an account group","tags":["accountGroups"]}}}}
```

## Update an account group

> Renames the group and/or moves it under a different parent (null re-roots it at the top level). A group's account type is fixed once it exists; moves that would create a cycle or exceed the nesting depth are rejected.

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/account-groups/{groupId}":{"patch":{"description":"Renames the group and/or moves it under a different parent (null re-roots it at the top level). A group's account type is fixed once it exists; moves that would create a cycle or exceed the nesting depth are rejected.","operationId":"accountGroups.update","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"groupId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"maxLength":80,"minLength":1,"type":"string"},"parentGroupId":{"description":"New parent of the group. Pass null to move the group to the top level. The parent must share the group's type.","format":"uuid","nullable":true,"type":"string"}},"type":"object"}}},"description":"Body"},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"group":{"properties":{"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"type":"string"},"parentGroupId":{"description":"Direct parent of the group, null for a top-level group.","format":"uuid","nullable":true,"type":"string"},"type":{"description":"Account type shared by the group and every account inside it.","enum":["Cash","Accounts Receivable","Inventory","Other Current Assets","Investments","Fixed Assets","Intangible Assets","Other Assets","Accounts Payable","Credit Cards","Payroll Liabilities","Short-Term Loans","Other Current Liabilities","Long-Term Loans","Other Liabilities","Equity","Income","COGS","Operating Expenses","Other Income","Other Expenses"],"type":"string"}},"required":["id","name","type","parentGroupId","createdAt"],"type":"object"}},"required":["group"],"type":"object"}}},"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Update an account group","tags":["accountGroups"]}}}}
```

## Delete an account group

> Deletes the account group. Its accounts and child groups are not deleted: they are lifted to the deleted group's parent (or to the top level when the group had none).

```json
{"openapi":"3.0.2","info":{"title":"Kick Platform API","version":"v1"},"servers":[{"description":"Production","url":"https://use.kick.co/api"}],"security":[{"organizationAccessToken":[]}],"components":{"securitySchemes":{"organizationAccessToken":{"description":"Organization access token issued by Kick, sent as `Authorization: Bearer kick_org_...`.","scheme":"bearer","type":"http"}}},"paths":{"/platform/v1/entities/{entityId}/account-groups/{groupId}":{"delete":{"description":"Deletes the account group. Its accounts and child groups are not deleted: they are lifted to the deleted group's parent (or to the top level when the group had none).","operationId":"accountGroups.delete","parameters":[{"in":"path","name":"entityId","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"groupId","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"A unique key that makes the request idempotent. Retrying with the same key within 24 hours replays the original response (marked with `Idempotent-Replayed: true`) instead of executing again.","in":"header","name":"Idempotency-Key","required":false,"schema":{"maxLength":255,"minLength":1,"type":"string"}}],"responses":{"200":{"description":"200"},"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"400"},"401":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"401"},"404":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"404"},"429":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"},"traceId":{"nullable":true,"type":"string"}},"required":["message"],"type":"object"}}},"description":"429"}},"summary":"Delete an account group","tags":["accountGroups"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kick.co/api/api-reference/chart-of-accounts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
