Zum Inhalt springen
Dokumentation
Deutsch
App öffnen

Ein Mandat anlegen

Anwendungsfall Schritt für Schritt, um ein Buchhaltungsmandat über die API anzulegen, mit Kontenplan, Journalen, Geschäftsjahr und Bankkonten.

Dieser Leitfaden legt ein belgisches Mandat an, das bereit ist, Buchungen aufzunehmen. Mit einem einzigen Aufruf richtet NovaFisko den Kontenplan des Landes, die Journale, die MwSt.-Codes, das Geschäftsjahr und dessen Perioden ein.

Voraussetzungen: ein Sitzungstoken oder ein Integrationstoken mit den Berechtigungen read und write, das einem Administrator oder einem Manager der Kanzlei gehört.

Schritt 1: die Kanzlei ermitteln

Das public_token der Kanzlei steht in der Antwort von auth/me.

curl https://api.novafisko.com/v1/auth/me \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"
{
  "id": 12,
  "name": "Claire Dumont",
  "email": "claire.dumont@fiduciaire-exemple.be",
  "locale": "fr",
  "is_platform_admin": false,
  "is_demo": false,
  "firms": [{"public_token": "Fd7hQ2mN8sXa", "name": "Fiduciaire Exemple", "role": "admin"}],
  "managed_firms": [{"public_token": "Fd7hQ2mN8sXa", "name": "Fiduciaire Exemple"}]
}

Sie können ein Mandat nur in einer Kanzlei anlegen, die in managed_firms aufgeführt ist. Verwaltet der Benutzer nur eine einzige, wird das Feld firm in Schritt 3 optional.

Schritt 2 (optional): anhand der Unternehmensnummer vorausfüllen

Die Unternehmenserkennung fragt CompanySearch für Belgien und Frankreich ab. Sie erspart Ihnen die Eingabe der Adresse und der Rechtsform.

curl "https://api.novafisko.com/v1/lookup/search?q=0999.900.134&country=BE" \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"

Übernehmen Sie die Identitätsfelder des zurückgegebenen Datenblatts in den Body von Schritt 3. Die verfügbaren Länderpakete listet GET /v1/country-packs auf, die Rechtsformen GET /v1/reference/legal-forms.

Schritt 3: das Mandat anlegen

curl -X POST https://api.novafisko.com/v1/companies \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "firm": "Fd7hQ2mN8sXa",
    "country_pack": "BE",
    "code": "ATELIER",
    "name": "Atelier du Vélo SRL",
    "enterprise_number": "0999.900.134",
    "vat_number": "BE0999900134",
    "legal_form": "SRL",
    "street": "Rue des Carmes",
    "house_number": "18",
    "postal_code": "5000",
    "city": "Namur",
    "country": "BE",
    "vat_regime": "quarterly",
    "locale": "fr",
    "fiscal_year": {"code": "2026", "starts_on": "2026-01-01", "ends_on": "2026-12-31"},
    "banks": [
      {"code": "BNK1", "label": "Compte à vue Belfius", "iban": "BE68539007547034"}
    ]
  }'

Wichtigste Felder

Feld Pflicht Beschreibung
name ja Firmenbezeichnung, max. 200 Zeichen
firm nein public_token der verwaltenden Kanzlei (12 Zeichen)
country_pack nein Standardmäßig BE. Bestimmt den Kontenplan, die MwSt. und die Kontrollen
code nein Kurzcode des Mandats, max. 20 Zeichen, Buchstaben, Ziffern, Bindestriche. Wird in Großbuchstaben umgewandelt
enterprise_number nein Wird je nach Land geprüft (Modulo 97 für Belgien)
vat_number nein Format und Prüfziffer werden je nach Land geprüft
legal_form, legal_form_code nein Freie Bezeichnung oder Code aus den Stammdaten
street, house_number, box, postal_code, city, country nein Strukturierte Adresse
vat_regime nein monthly, quarterly, franchise, exempt oder unit, je nach Paket
locale nein fr, nl, en oder de. Standardmäßig die Sprache des Benutzers
fiscal_year nein Falls vorhanden, sind starts_on und ends_on Pflicht. Andernfalls wird das laufende Kalenderjahr als Geschäftsjahr angelegt
banks nein Ein Finanzjournal pro Konto: code (max. 6 Zeichen), label, iban

Antwort 201

{
  "id": 318,
  "public_token": "Av4eLo7Nm2Sr",
  "firm_id": 4,
  "code": "ATELIER",
  "name": "Atelier du Vélo SRL",
  "legal_form": "SRL",
  "enterprise_number": "0999.900.134",
  "vat_number": "BE0999900134",
  "address": "Rue des Carmes 18, 5000 Namur",
  "street": "Rue des Carmes",
  "house_number": "18",
  "postal_code": "5000",
  "city": "Namur",
  "country": "BE",
  "country_pack": "BE",
  "vat_regime": "quarterly",
  "currency": "EUR",
  "locale": "fr",
  "is_active": true,
  "version": 1,
  "firm": {"id": 4, "public_token": "Fd7hQ2mN8sXa", "name": "Fiduciaire Exemple"},
  "fiscal_years": [
    {
      "id": 702,
      "code": "2026",
      "starts_on": "2026-01-01T00:00:00.000000Z",
      "ends_on": "2026-12-31T00:00:00.000000Z",
      "is_closed": false,
      "periods": [
        {"id": 9001, "number": 1, "label": "01/2026", "starts_on": "2026-01-01T00:00:00.000000Z", "ends_on": "2026-01-31T00:00:00.000000Z", "is_locked": false}
      ]
    }
  ],
  "journals": [
    {"id": 2101, "code": "ACH", "label": "Achats", "type": "purchase", "control_account": {"id": 55090, "number": "440000", "label": "Fournisseurs"}},
    {"id": 2102, "code": "VEN", "label": "Ventes", "type": "sale", "control_account": {"id": 55041, "number": "400000", "label": "Clients"}},
    {"id": 2105, "code": "BNK1", "label": "Compte à vue Belfius", "type": "financial", "iban": "BE68539007547034"}
  ]
}

Bewahren Sie public_token auf: Es ist die Kennung des Mandats in allen folgenden Routen. Die Listen periods und journals sind hier gekürzt.

Schritt 4: die Einrichtung prüfen

curl https://api.novafisko.com/v1/companies/Av4eLo7Nm2Sr/accounts?postable=1 \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"

curl https://api.novafisko.com/v1/companies/Av4eLo7Nm2Sr/vat-codes \
  -H "Authorization: Bearer $NOVAFISKO_TOKEN"

Diese beiden Aufrufe liefern den Kontenplan und die MwSt.-Codes des Mandats mit den id, die Sie zum Erfassen von Buchungen benötigen.

Häufige Fehler

Status Ursache Korrektur
422, Feld enterprise_number Unternehmensnummer für das Land ungültig Prüfziffer kontrollieren
422, Feld vat_number MwSt.-Nummer falsch aufgebaut Länderpräfix angeben, zum Beispiel BE0999900134
422, Feld firm Die Kanzlei wird nicht vom Benutzer verwaltet Ein public_token aus managed_firms verwenden
422, Code company_limit_reached Mandatsobergrenze der Lizenz erreicht Siehe Die Lizenz abfragen
403, Code token_ability_missing Token ohne die Berechtigung write Ein passendes Token erstellen
Hinweis

Ohne Kanzlei (firm fehlt und es gibt keine verwaltete Kanzlei) wird das Mandat als eigenständiges Mandat angelegt, und der Benutzer wird dessen Verantwortlicher. Dieser Fall betrifft Selbstständige, die ihre Buchhaltung selbst führen.

Tipp

Eine X-Client-Mutation-Id zu senden, bringt hier nichts: Die Route POST /v1/companies ist keinem bestehenden Mandat zugeordnet. Um nach einer Netzwerkunterbrechung ein Duplikat zu vermeiden, lesen Sie GET /v1/companies erneut und suchen Sie nach Ihrem code, bevor Sie es noch einmal versuchen.

Siehe auch