Naar de inhoud
Documentatie
Nederlands
De applicatie openen

Het volledige dossier exporteren

Use case stap voor stap om een boek in PDF, XLSX of CSV en het volledige ZIP-archief van een boekjaar te downloaden, met controle van de vingerafdrukken.

NovaFisko produceert elk boek en elke staat in PDF, XLSX of CSV, en ook een ZIP-archief dat een volledig boekjaar bundelt. Deze gids behandelt beide, en daarna de controle van de SHA-256-vingerafdrukken.

Vereisten: een token met de bevoegdheid read, de public_token van het dossier en de id van het boekjaar (zie Het grootboek lezen).

Stap 1: de catalogus raadplegen

curl "https://api.novafisko.com/v1/companies/k3Jd9fPq2LmX/exports?lang=fr" \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"
{
  "types": ["journals", "purchases", "sales", "financial", "miscellaneous", "general-ledger", "trial-balance"],
  "formats": ["pdf", "xlsx", "csv"],
  "default_format": "csv",
  "full_dossier": "zip",
  "groups": [
    {"code": "books", "label": "Livres"},
    {"code": "statements", "label": "États financiers"},
    {"code": "vat", "label": "TVA"},
    {"code": "third_parties", "label": "Tiers"},
    {"code": "assets", "label": "Immobilisations"},
    {"code": "data", "label": "Données"}
  ],
  "common_params": ["format", "fiscal_year_id", "from", "to", "lang"],
  "catalog": [
    {
      "code": "general-ledger",
      "label": "Grand livre",
      "description": "Mouvements de chaque compte avec solde progressif.",
      "group": "books",
      "group_label": "Livres",
      "formats": ["pdf", "xlsx", "csv"],
      "dated": true,
      "requires_fiscal_year": true,
      "params": [
        {"name": "account_from", "label": "Du compte"},
        {"name": "account_to", "label": "Au compte"}
      ]
    }
  ]
}

De lijsten zijn ingekort. catalog beschrijft elke export: zijn groep, zijn formaten en zijn eigen parameters.

Beschikbare types

Groep Codes
Boeken journals, purchases, sales, financial, miscellaneous, general-ledger
Financiële staten trial-balance, balance-by-period, financial-statements, annual-accounts
Btw vat-summary, vat-declaration, customer-listing, intracom-listing
Derden third-parties, customer-balance, supplier-balance, aged-customers, aged-suppliers, third-party-ledger
Vaste activa fixed-assets
Gegevens en controle accounts, documents, audit-trail

Stap 2: een export downloaden

curl -G "https://api.novafisko.com/v1/companies/k3Jd9fPq2LmX/exports/general-ledger" \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN" \
  -d format=xlsx \
  -d fiscal_year_id=7 \
  -d from=2026-01-01 \
  -d to=2026-09-30 \
  -d lang=fr \
  -D headers.txt \
  -o grand-livre-2026.xlsx

Parameters

Parameter Beschrijving
format pdf, xlsx of csv. Standaard csv
fiscal_year_id Boekjaar. Wanneer het vereist is en ontbreekt, wordt het lopende boekjaar gebruikt
from, to Periode, voor de gedateerde exports
lang fr, nl, en of de. Standaard de taal van het dossier
account_from, account_to Rekeningbereik (general-ledger)
scheme, general_meeting_date Model abbreviated of micro en datum van de algemene vergadering (annual-accounts)
declaration_id Betrokken aangifte (vat-declaration)
year, period Jaar en periode (intracom-listing)
third_party_id, party_type Derde en type customer of supplier (third-party-ledger)

Headers van het antwoord

HTTP/1.1 200 OK
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Length: 48211
Content-Disposition: attachment; filename="COMPTOIR_general-ledger_2026.xlsx"
X-Export-Fingerprint: 6b1f0c8a9e3d5a7c41f29d0e8b7a6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b

X-Export-Fingerprint is de SHA-256-vingerafdruk van de geëxporteerde dataset. Ze is identiek ongeacht het formaat: een pdf en een CSV van dezelfde staat op dezelfde datum dragen dezelfde vingerafdruk. Ze staat ook in de voettekst van de pdf's.

Opmerking

De generatie is synchroon. Een omvangrijk grootboek in PDF kan enkele tientallen seconden duren: stel de time-out van uw client in op 180 seconden. De limiet bedraagt 30 exports per minuut.

Pdf-voorbeeld in een browser

Om een export in een pagina of een iframe te tonen zonder uw token bloot te stellen, vraagt u een ondertekende URL aan die 15 minuten geldig is:

curl "https://api.novafisko.com/v1/companies/k3Jd9fPq2LmX/exports/trial-balance/preview-url?fiscal_year_id=7" \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"
{
  "url": "https://api.novafisko.com/v1/companies/k3Jd9fPq2LmX/exports/trial-balance/view?fiscal_year_id=7&format=pdf&by=12&expires=1791190900&signature=4c1d...",
  "expires_in": 900,
  "format": "pdf"
}

Stap 3: het volledige dossier downloaden

Eén enkele request produceert het ZIP-archief van het volledige boekjaar.

curl "https://api.novafisko.com/v1/companies/k3Jd9fPq2LmX/exports/full-dossier/7?lang=fr" \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN" \
  --max-time 320 \
  -o COMPTOIR_dossier-complet_2026.zip

Het antwoord is van het type application/zip. Voorzie een time-out van 5 minuten. De limiet bedraagt 10 archieven per minuut.

Inhoud van het archief

Map Inhoud
00-Dossier-comptable.pdf Voorblad: identiteit, inhoudsopgave met vingerafdrukken, integriteitsattest
01-Livres Dagboeken, grootboek, rekeningenstelsel, audittrail in PDF
02-Etats-financiers Proef- en saldibalans, balans per periode, balans en resultatenrekening, jaarrekening
03-TVA Btw-overzicht, listings en één pdf-aangifte per periode
04-Tiers Lijst, balansen, ouderdomsbalansen, historiek van de derden
05-Immobilisations Staat van de vaste activa en afschrijvingen
06-Donnees-CSV Dezelfde staten in CSV-formaat, bruikbaar in andere software
07-Banque-CODA Oorspronkelijke CODA-bestanden
08-Pieces Stukken die in de importmodule zijn geüpload en index.csv van alle stukken van het boekjaar
manifest.json Inventaris van het archief met de SHA-256-vingerafdruk van elk bestand

Een staat die niet kan worden geproduceerd, bijvoorbeeld een jaarrekening voor een boekjaar zonder boekingen, wordt overgeslagen en in het manifest vermeld in plaats van het archief te doen mislukken.

Stap 4: de vingerafdrukken controleren

Het bestand manifest.json somt elk bestand van het archief op met zijn pad, zijn grootte en zijn vingerafdruk.

{
  "application": "NovaFisko",
  "manifest_version": 2,
  "company": {"code": "COMPTOIR", "name": "Le Comptoir Montois SRL", "legal_form": "SRL", "enterprise_number": "0999.900.134", "vat_number": "BE0999900134", "country_pack": "BE"},
  "fiscal_year": {"code": "2026", "starts_on": "2026-01-01", "ends_on": "2026-12-31", "is_closed": false, "closed_at": null, "periods_locked": 9, "periods_total": 12},
  "status": "provisional",
  "generated_at": "2026-10-05T09:14:22+00:00",
  "generated_by": "Claire Dumont",
  "locale": "fr",
  "hash_algorithm": "sha256",
  "files": [
    {"path": "00-Dossier-comptable.pdf", "bytes": 61220, "sha256": "5e2b..."},
    {"path": "01-Livres/COMPTOIR_general-ledger_2026.pdf", "bytes": 512340, "sha256": "a3f1..."},
    {"path": "06-Donnees-CSV/COMPTOIR_general-ledger_2026.csv", "bytes": 188412, "sha256": "9c0e..."}
  ],
  "integrity": {"periods_locked": 9, "periods_total": 12},
  "skipped": [],
  "csv_format": "CSV UTF-8 BOM ; separator \";\" ; decimal \",\""
}

status heeft de waarde final wanneer het boekjaar is afgesloten, anders provisional. skipped somt de staten op die niet konden worden geproduceerd, met de reden. De CSV-bestanden zijn in UTF-8 met BOM, met puntkomma als scheidingsteken en decimale komma.

import hashlib
import json
import zipfile

with zipfile.ZipFile("COMPTOIR_dossier-complet_2026.zip") as archive:
    manifest = json.loads(archive.read("manifest.json"))
    for item in manifest["files"]:
        digest = hashlib.sha256(archive.read(item["path"])).hexdigest()
        # Any mismatch means the file changed after the archive was built
        assert digest == item["sha256"], f"Fingerprint mismatch: {item['path']}"

print(len(manifest["files"]), "files verified")
$zip = new ZipArchive();
$zip->open('COMPTOIR_dossier-complet_2026.zip');
$manifest = json_decode($zip->getFromName('manifest.json'), true);

foreach ($manifest['files'] as $item) {
    if (! hash_equals($item['sha256'], hash('sha256', $zip->getFromName($item['path'])))) {
        throw new RuntimeException('Fingerprint mismatch: '.$item['path']);
    }
}
Tip

Elke export wordt getraceerd in het activiteitenlogboek van het dossier met zijn type, zijn formaat en zijn vingerafdruk. U kunt dus later bewijzen dat een bepaald bestand wel degelijk overeenkomt met wat NovaFisko heeft gegenereerd.

Veelvoorkomende fouten

Status Oorzaak Oplossing
404 Onbekend exporttype, of boekjaar van een ander dossier De code in de catalogus nakijken
422, veld format Formaat buiten pdf, xlsx, csv De parameter corrigeren
422, veld fiscal_year_id Boekjaar dat niet bij het dossier hoort GET fiscal-years opnieuw lezen
429 Te veel exports in één minuut Retry-After seconden wachten
Let op

Een export die over een niet-vergrendelde periode wordt geproduceerd, draagt de vermelding voorlopig document. Voor een definitief document vergrendelt u de periodes of sluit u het boekjaar af voordat u exporteert. Zie Conformiteit van de exports.

Zie ook