Aller au contenu
Documentation
Français
Ouvrir l'application

Lire le grand livre

Cas d'usage pas à pas pour lire la balance générale puis le grand livre d'un compte par l'API NovaFisko, avec le solde progressif.

Ce guide récupère la balance d'un exercice, puis le détail des mouvements d'un compte avec son solde progressif. Il s'adresse aux outils de reporting, de consolidation et de tableaux de bord.

Prérequis : un jeton avec la capacité read et le public_token du dossier.

Étape 1 : trouver l'exercice

Les états sont toujours calculés pour un exercice, désigné par son id.

curl https://api.novafisko.com/v1/companies/k3Jd9fPq2LmX/fiscal-years \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"
[
  {
    "id": 6,
    "code": "2025",
    "starts_on": "2025-01-01T00:00:00.000000Z",
    "ends_on": "2025-12-31T00:00:00.000000Z",
    "is_closed": true,
    "closed_at": "2026-03-14T10:22:05.000000Z",
    "periods": []
  },
  {
    "id": 7,
    "code": "2026",
    "starts_on": "2026-01-01T00:00:00.000000Z",
    "ends_on": "2026-12-31T00:00:00.000000Z",
    "is_closed": false,
    "closed_at": null,
    "periods": [
      {"id": 85, "number": 1, "label": "01/2026", "starts_on": "2026-01-01T00:00:00.000000Z", "ends_on": "2026-01-31T00:00:00.000000Z", "is_locked": true}
    ]
  }
]

Étape 2 : lire la balance générale

La balance donne, pour chaque compte mouvementé, les totaux débit et crédit et le solde. C'est le point d'entrée naturel : elle indique quels comptes méritent d'être détaillés.

curl "https://api.novafisko.com/v1/companies/k3Jd9fPq2LmX/fiscal-years/7/trial-balance?from=2026-01-01&to=2026-09-30" \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"
Paramètre Défaut Description
from début de l'exercice Date de début incluse
to fin de l'exercice Date de fin incluse
include_empty false true pour inclure les comptes dont les totaux sont nuls
{
  "fiscal_year": "2026",
  "from": "2026-01-01",
  "to": "2026-09-30",
  "lines": [
    {
      "account_id": 90,
      "number": "440000",
      "label": "Fournisseurs",
      "type": "liability",
      "debit": "48210.35",
      "credit": "55120.80",
      "debit_balance": "0.00",
      "credit_balance": "6910.45",
      "balance": "-6910.45"
    },
    {
      "account_id": 118,
      "number": "604000",
      "label": "Achats de marchandises",
      "type": "expense",
      "debit": "31874.20",
      "credit": "412.00",
      "debit_balance": "31462.20",
      "credit_balance": "0.00",
      "balance": "31462.20"
    }
  ],
  "totals": {
    "debit": "412587.14",
    "credit": "412587.14",
    "is_balanced": true,
    "result": "18240.66"
  }
}

Le champ balance est signé : positif pour un solde débiteur, négatif pour un solde créditeur. totals.result est le résultat de la période, positif pour un bénéfice et négatif pour une perte. totals.is_balanced doit toujours valoir true.

Étape 3 : lire le grand livre d'un compte

Le grand livre se lit compte par compte, avec l'account_id obtenu dans la balance ou dans GET accounts.

curl "https://api.novafisko.com/v1/companies/k3Jd9fPq2LmX/fiscal-years/7/general-ledger/118?from=2026-07-01&to=2026-09-30" \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"
{
  "account_id": 118,
  "from": "2026-07-01",
  "to": "2026-09-30",
  "opening_balance": "20918.75",
  "movements": [
    {
      "line_id": 5388,
      "entry_id": 1790,
      "entry_date": "2026-07-03",
      "journal": "ACH",
      "document": "2026/000171",
      "label": "Fûts 20 L blonde",
      "reference": "F-2026-0611",
      "third_party": "Brasserie des Collines SA",
      "debit": "980.00",
      "credit": "0.00",
      "balance": "21898.75",
      "reconciliation_code": null
    },
    {
      "line_id": 5521,
      "entry_id": 1842,
      "entry_date": "2026-09-30",
      "journal": "ACH",
      "document": "2026/000212",
      "label": "Fûts 20 L blonde",
      "reference": "F-2026-0918",
      "third_party": "Brasserie des Collines SA",
      "debit": "1250.00",
      "credit": "0.00",
      "balance": "31462.20",
      "reconciliation_code": null
    }
  ],
  "totals": {
    "debit": "10955.45",
    "credit": "412.00",
    "balance": "31462.20"
  }
}
Champ Description
opening_balance Solde à nouveau : mouvements de l'exercice antérieurs à from
movements[].balance Solde progressif après le mouvement
movements[].document Numéro de pièce au format exercice/numéro sur six chiffres
movements[].reconciliation_code Code de lettrage, null si la ligne n'est pas lettrée
totals.balance Solde final : opening_balance plus les débits moins les crédits

Les mouvements sont triés par date, puis par écriture, puis par position de ligne. Cette route n'est pas paginée : limitez la période avec from et to pour les comptes très mouvementés.

Étape 4 : remonter à l'écriture

Chaque mouvement porte un entry_id. L'écriture complète, avec toutes ses lignes, se lit ainsi :

curl https://api.novafisko.com/v1/companies/k3Jd9fPq2LmX/entries/1842 \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"

Exemple complet : tout le grand livre en Python

import os
import requests

BASE = "https://api.novafisko.com/v1"
COMPANY = "k3Jd9fPq2LmX"
FISCAL_YEAR = 7

session = requests.Session()
session.headers.update({
    "Authorization": f"Bearer {os.environ['NOVAFISKO_TOKEN']}",
    "Accept": "application/json",
})

balance = session.get(
    f"{BASE}/companies/{COMPANY}/fiscal-years/{FISCAL_YEAR}/trial-balance", timeout=60
).json()
assert balance["totals"]["is_balanced"]

ledger = {}
for line in balance["lines"]:
    # One call per account that actually moved during the year
    ledger[line["number"]] = session.get(
        f"{BASE}/companies/{COMPANY}/fiscal-years/{FISCAL_YEAR}/general-ledger/{line['account_id']}",
        timeout=60,
    ).json()

for number, account in sorted(ledger.items()):
    print(number, account["totals"]["balance"], len(account["movements"]), "movements")
Astuce

Si vous avez besoin du grand livre complet en un seul fichier, utilisez l'export : GET exports/general-ledger?format=csv&fiscal_year_id=7. Il accepte account_from et account_to pour borner une plage de comptes. Voir Exporter le dossier complet.

Autres états disponibles

Route Contenu
fiscal-years/{id}/balance-by-period Balance ventilée par période
fiscal-years/{id}/financial-statements Bilan et compte de résultats
journals/{id}/entries Livre d'un journal, avec from et to
third-party-balance/{type} Balance des clients (customer) ou des fournisseurs (supplier)
aged-balance/{type} Balance âgée
fiscal-years/{id}/consistency Contrôles de cohérence de l'exercice
integrity Contrôle d'intégrité du dossier
Note

Un exercice inconnu ou appartenant à un autre dossier répond 404. Il en va de même pour un compte d'un autre dossier.

Voir aussi