GL chart of accounts (get_chart_of_accounts)

Retrieves the company's GL chart of accounts configured in Spendesk. Necessary to understand the accounting codes used in ERP exports.

โ†“ Download skill (.md)
87/100ยท๐Ÿ” Ad hocยทIntermediateController
SettingsERP exportget_chart_of_accounts

๐ŸŽฏ Skill purpose

Retrieves the company's GL chart of accounts configured in Spendesk. Necessary to understand the accounting codes used in ERP exports.

๐Ÿ“Š What it produces

Complete chart of accounts with account numbers, labels, types, and account mappings.

โšก Benefit

Before

Referencing the chart of accounts required ERP or Spendesk admin access.

After

Complete GL chart of accounts accessible directly from Claude, without ERP access.



# GL chart of accounts โ€” get_chart_of_accounts

## Context

`get_chart_of_accounts` returns the GL (general ledger) codes used to tag payables during the accounting export. Not to be confused with `get_expense_categories` (employee-facing labels).

## Account types

| Type | Code pattern | Description |
|------|-------------|-------------|
| `expense` | 205000, 218100, etc. | Expense accounts (French chart of accounts) |
| `supplier` | 401000/SupplierName | One account per Spendesk supplier |
| `employee` | 425000/EmployeeName or 425001... | One account per employee for expense claims |
| `tax` | 10, 12, 17, 19, 20, etc. | Tax (VAT) accounts with rates |
| `bank` | (to be defined by the company) | Bank accounts |
| `reverseCharge` | 31 | Intra-community VAT reverse charge |

## Basic call

```json
{
  "tool": "get_chart_of_accounts",
  "params": {
    "companyId": "<companyId>",
    "pageSize": 50
  }
}
```

Returns all types with no filter. Always paginate (`hasNextPage`).

## Filter by type

```json
{
  "tool": "get_chart_of_accounts",
  "params": {
    "companyId": "<companyId>",
    "accounts": ["expense", "tax", "reverseCharge", "bank"],
    "pageSize": 100
  }
}
```

โ†’ Exclude `"supplier"` and `"employee"` when you only want expense and tax accounts โ€” the supplier/employee table can be sizeable (one record per person/supplier).

## Pitfall: very large table with no filter

The `"supplier"` type generates **one account per Spendesk supplier** (format `401000/SupplierName`), and `"employee"` one account per employee (`425000/EmployeeName`). On an account with hundreds of suppliers and employees, `hasNextPage: true` from the very first page.

โ†’ For a full GL export, plan for exhaustive pagination or filter by type.

## Returned fields

```json
{
  "id": "uuid",
  "name": "205000 - Software",
  "description": null,
  "type": "expense",
  "code": "205000",
  "creditCode": null,
  "auxiliaryCode": null,
  "externalId": null,
  "purpose": null,
  "taxRate": null,
  "isAvailable": true,
  "isArchived": false,
  "defaultFor": null
}
```

Notable fields:
- `code`: GL code to use in the export
- `creditCode`: offsetting account (null if not configured)
- `externalId`: ID in the external accounting system (null if no native integration)
- `defaultFor`: default assignment (e.g. `"cardSupplier"` = default supplier account for cards)
- `isAvailable`: if false, the account is disabled (no longer shown in the UI)

## Tax accounts โ€” taxRate pitfall

Some accounts of type `"tax"` have `taxRate: 0` despite a name that suggests a non-zero rate:
- "Standard SFS (20%) Non deductible" โ†’ `taxRate: 0`
- "TVA INTRACOM 20%" โ†’ `taxRate: 0`

โ†’ These accounts represent non-recoverable VAT or reverse-charge VAT โ€” the effectively deductible `taxRate` is 0. Don't rely on the name alone to infer the rate.

## Supplier accounts โ€” the 401000 pattern

All supplier accounts share the root code `401000`. A generic "Miscellaneous" account with `defaultFor: "cardSupplier"` acts as a fallback for cards without a dedicated supplier account.

Pattern: `401000/SupplierName` (code) or a sequential code for employees (`425000`, `425001`, ...).

## Filter by availability

```json
{
  "accounts": ["expense"],
  "isAvailable": true
}
```

โ†’ `isAvailable: true` returns only the accounts enabled in the Spendesk interface โ€” disabled accounts (old GL codes no longer used) are filtered out.

## Example user prompts

- "Give me all the expense GL codes configured in Spendesk"
- "What VAT accounts are available?"
- "What's the supplier accounting code for Aircall?"
- "Export the full chart of accounts for our ERP integration"

How to install this skill

/
  1. 1
    Download the file s38-plan-comptable-gl.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s38-plan-comptable-gl.md .claude/s38-plan-comptable-gl.md
  3. 3
    Use in Claude Code โ€” the skill is automatically discovered. Describe your need in natural language and Claude will apply the skill instructions.
๐Ÿ’ก Make sure the Spendesk MCP is configured in your .claude/settings.json with the tools get_chart_of_accounts.

Similar skills

โ˜… Top
95/100ยท๐Ÿ” Ad hocยทExpert

MCP coverage audit & gap analysis

Probes all available MCP tools, re-evaluates coverage of 50 persona use cases, detects new fields or tools, and regenerates the gap analysis report.

CFOControllerAP Manager
90/100ยท๐Ÿ“… WeeklyยทBeginner

Card requests via get_requests

Explains how to use get_requests for card requests and why expense reimbursements don't appear there. Avoids a frequent source of confusion between two distinct workflows.

ControllerFinance Analyst
90/100ยท๐Ÿ” Ad hocยทIntermediate

Active vs archived cost centers

Distinguishes active cost centers from archived ones with correct use of get_cost_centers. Avoids the counter-intuitive isArchived vs isActive naming convention pitfall.

ControllerFinance Analyst