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 |
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.
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.