---
name: plan-comptable-gl
description: Récupérer le plan comptable GL avec get_chart_of_accounts — types, filtres, patterns et pièges
tags: [get_chart_of_accounts, GL, accounting, expense, supplier, employee, tax]
when_to_use: Quand on veut exporter les codes GL pour une intégration ERP, identifier les comptes de charge, fournisseur, employé, ou TVA
---

# Plan comptable GL — get_chart_of_accounts

## Contexte

`get_chart_of_accounts` retourne les codes GL (general ledger) utilisés pour taguer les payables lors de l'export comptable. À ne pas confondre avec `get_expense_categories` (libellés côté employé).

## Types de comptes

| Type | Code pattern | Description |
|------|-------------|-------------|
| `expense` | 205000, 218100, etc. | Comptes de charge (plan comptable français) |
| `supplier` | 401000/NomFournisseur | Un compte par fournisseur Spendesk |
| `employee` | 425000/NomEmployé ou 425001... | Un compte par employé pour les NDF |
| `tax` | 10, 12, 17, 19, 20, etc. | Comptes de TVA avec taux |
| `bank` | (à définir par l'entreprise) | Comptes bancaires |
| `reverseCharge` | 31 | Autoliquidation TVA intracommunautaire |

## Appel de base

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

Retourne tous les types sans filtre. Toujours paginer (`hasNextPage`).

## Filtrer par type

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

→ Exclure `"supplier"` et `"employee"` quand on veut uniquement les comptes de charge et TVA — la table fournisseur/employé est potentiellement volumineuse (un enregistrement par personne/fournisseur).

## Piège : table très volumineuse sans filtre

Le type `"supplier"` génère **un compte par fournisseur Spendesk** (format `401000/NomFournisseur`), et `"employee"` un compte par employé (`425000/NomEmployé`). Sur un compte avec des centaines de fournisseurs et d'employés, `hasNextPage: true` dès la première page.

→ Pour un export GL complet, prévoir une pagination exhaustive ou filtrer par type.

## Champs retournés

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

Champs notables :
- `code` : code GL à utiliser dans l'export
- `creditCode` : compte de contrepartie (null si non configuré)
- `externalId` : ID dans le système comptable externe (null si pas d'intégration native)
- `defaultFor` : affectation par défaut (ex: `"cardSupplier"` = compte fournisseur par défaut pour les cartes)
- `isAvailable` : si false, le compte est désactivé (ne s'affiche plus dans l'UI)

## Comptes TVA — piège taxRate

Certains comptes de type `"tax"` ont `taxRate: 0` malgré un nom indiquant un taux non-nul :
- "Standard SFS (20%) Non deductible" → `taxRate: 0`
- "TVA INTRACOM 20%" → `taxRate: 0`

→ Ces comptes représentent des TVA non-récupérables ou en autoliquidation — le `taxRate` effectivement déductible est 0. Ne pas se fier au nom seul pour déduire le taux.

## Comptes fournisseur — pattern 401000

Tous les comptes fournisseurs partagent le code racine `401000`. Un compte générique "Miscellaneous" avec `defaultFor: "cardSupplier"` sert de fallback pour les cartes sans compte fournisseur dédié.

Pattern : `401000/NomFournisseur` (code) ou code séquentiel pour les employés (`425000`, `425001`, ...).

## Filtrer par disponibilité

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

→ `isAvailable: true` retourne uniquement les comptes activés dans l'interface Spendesk — les comptes désactivés (anciens codes GL plus utilisés) sont filtrés.

## Exemples de prompts utilisateur

- "Donne-moi tous les codes GL de charges configurés dans Spendesk"
- "Quels sont les comptes de TVA disponibles ?"
- "Quel est le code comptable fournisseur pour Aircall ?"
- "Exporte le plan comptable complet pour notre intégration ERP"
