Entwickler

REST-API, Version 1

JSON über HTTPS. Jede Anfrage nennt das Konto über den Schlüssel, nicht über die Subdomain. demo.ervazo.com und ervazo.com antworten gleich, solange der Schlüssel zu diesem Konto gehört.

Basisadresse

Produktion: https://ervazo.com. Der Pfad ist immer /api/v1, mit oder ohne Schrägstrich am Ende. Ein unbekannter Pfad ergibt 404 mit {"error":"Onbekend pad."}.

curl -s https://ervazo.com/api/v1 \
  -H "Authorization: Bearer nal_jouw_sleutel"

Die Antwort ist application/json und wird nicht gecacht. Es gibt keine andere Version als 1.

Einschalten

Nur der Inhaber der Stelle. Im Arbeitsplatz: Einstellungen, Öffentliche API, API einschalten. Ohne dieses Flag lehnt ein gültiger Schlüssel mit 403 ab, mit dem Text, dass die öffentliche API aus ist.

Ein pausiertes Konto erhält ebenfalls 403, mit dem Text, dass das Konto pausiert ist. Der Widerruf eines Schlüssels macht ihn sofort ungültig. Das Flag auszuschalten belässt die Schlüssel, aber jede Anfrage stoppt, bis Sie es wieder einschalten.

Schlüssel

Erstellen Sie ihn auf derselben Einstellungsseite. Geben Sie einen Namen mit mindestens zwei Zeichen an. Der vollständige Schlüssel erscheint einmal. Danach speichern wir nur einen Hash und ein Präfix, sodass Sie ihn in der Liste als nal_ gefolgt von zwölf Zeichen erkennen.

Senden Sie ihn als Bearer-Token. Kein Query-Parameter, kein Cookie.

Authorization: Bearer nal_…

Der Schlüssel muss mit nal_ beginnen und zwischen 20 und 200 Zeichen lang sein. Sonst 401. Ein falscher oder widerrufener Schlüssel ist dieselbe 401, damit jemand, der rät, nicht erkennen kann, welche von beiden es war.

Höchstens acht Schlüssel, die noch nicht widerrufen sind. Der neunte Versuch scheitert im Arbeitsplatz, bis Sie einen widerrufen. last_used_at wird bei jeder erfolgreichen Anfrage aktualisiert.

Grenzen

120 Anfragen pro Schlüssel pro Minute, gezählt in dem Prozess, der die Anfrage bearbeitet. Darüber 429: zu viele Anfragen, warten Sie eine Minute. Der Zähler steht nicht in der Datenbank, daher beginnt er nach einem Neustart von vorn.

Ein POST-body darf 20.000 Bytes haben. Größer ist 413. Der body muss JSON sein, wenn Sie ihn mitsenden. Leer ist erlaubt, aber eine Aufgabe oder Notiz braucht dann trotzdem ein Feld.

Eine Dossier-id im Pfad hat 1 bis 80 Zeichen: Buchstaben, Ziffern, Unterstrich oder Bindestrich. Ein Dossier eines anderen Kontos existiert für diesen Schlüssel nicht und ergibt 404.

Fehler

Fehler sind JSON mit einem Feld error. Kein Stacktrace.

  • 401 — Der Schlüssel fehlt oder ist ungültig.
  • 403 — Die API ist aus, oder das Konto ist pausiert.
  • 404 — Unbekannter Pfad, oder dieses Dossier gehört nicht zum Schlüssel.
  • 400 — Kein gültiges JSON, der Titel fehlt, oder die Notiz ist leer.
  • 409 — Das Dossier ist geschlossen. Lesen ist erlaubt, Schreiben nicht.
  • 413 — Der body ist größer als 20.000 Bytes.
  • 429 — Mehr als 120 Anfragen in einer Minute.

GET /api/v1

Wer Sie für diesen Schlüssel sind, und welche Pfade es gibt.

{
  "name": "Ervazo",
  "version": "1",
  "account": "kantoor-id",
  "mcp": "/api/mcp",
  "endpoints": [
    "GET /api/v1/dossiers",
    "GET /api/v1/dossiers/{id}",
    "POST /api/v1/dossiers/{id}/tasks",
    "POST /api/v1/dossiers/{id}/notes"
  ]
}

Die Liste in dieser Antwort nennt nicht jeden Lesepfad. Beteiligte, Besitz, Schulden und die Aufgabenliste stehen unten und funktionieren trotzdem.

GET /api/v1/dossiers

Alle Dossiers des Kontos, die nicht im Papierkorb stehen, neueste Änderung zuerst. Geschlossene Dossiers sind dabei.

{
  "dossiers": [
    {
      "id": "…",
      "reference": "2026-014",
      "line": "nalatenschap",
      "phase": "boedel",
      "status": "open",
      "name": "A. de Vries",
      "death": "2026-03-02"
    }
  ]
}

line ist nalatenschap oder leven. status ist open oder closed. death kann bei einem Lebensdossier leer sein. name ist Vorname und Nachname aneinandergereiht.

GET /api/v1/dossiers/{id}

Verwenden Sie die id aus der Liste, nicht die Referenznummer.

{
  "dossier": {
    "id": "…",
    "reference": "2026-014",
    "line": "nalatenschap",
    "phase": "boedel",
    "status": "open",
    "firstName": "A.",
    "lastName": "de Vries",
    "birth": "1948-11-04",
    "death": "2026-03-02",
    "residence": "Haarlem"
  }
}

GET /api/v1/dossiers/{id}/parties

Beteiligte. portal sagt, ob diese Person das Portal eingeschaltet hat. Eine private Notiz zur Person ist nicht enthalten.

{
  "parties": [
    {
      "id": "…",
      "type": "heir",
      "name": "M. de Vries",
      "email": "[email protected]",
      "relation": "kind",
      "portal": true
    }
  ]
}

GET /api/v1/dossiers/{id}/assets

Besitz. valueMinor ist der Betrag beim Tod in Cent. Eine leere currency wird EUR.

{
  "assets": [
    {
      "id": "…",
      "category": "bank",
      "description": "Betaalrekening",
      "valueMinor": 1250000,
      "currency": "EUR",
      "status": "known"
    }
  ]
}

GET /api/v1/dossiers/{id}/liabilities

Schulden. amountMinor ist Cent. creditor ist der Name, wie er im Dossier steht.

{
  "liabilities": [
    {
      "id": "…",
      "category": "lening",
      "description": "Doorlopend krediet",
      "amountMinor": 240000,
      "currency": "EUR",
      "creditor": "Bank",
      "status": "open"
    }
  ]
}

Aufgaben lesen und hinzufügen

GET /api/v1/dossiers/{id}/tasks — jede Aufgabe mit id, title, due und status.

POST /api/v1/dossiers/{id}/tasks

{ "title": "Bankafschriften opvragen", "due": "2026-11-01" }

title ist erforderlich, nach dem Kürzen höchstens 200 Zeichen. due ist optional und muss YYYY-MM-DD sein. Eine andere Form wird heute. Die Aufgabe kommt offen herein, zugewiesen dem Benutzer, der den Schlüssel erstellt hat, und zählt nicht als Playbook-Schritt.

{ "id": "…", "title": "Bankafschriften opvragen", "due": "2026-11-01", "status": "open" }

Bei einem geschlossenen Dossier ist dies 409. Die Schreibaktion kommt ins Auditprotokoll als actor API, action api.task.

POST /api/v1/dossiers/{id}/notes

Eine interne Notiz. Das Erbenportal zeigt sie nicht. Das Feld heißt body, nicht text.

{ "body": "Bank gebeld. Afschriften volgen per post." }

Nach dem Kürzen höchstens 4000 Zeichen. Ein leerer Text ergibt 400. Die Antwort ist nur die id. Im Dossier steht der Autor als API und die Sichtbarkeit als internal. Das Auditprotokoll erhält api.note mit den ersten 80 Zeichen.

{ "id": "…" }

Beträge

Alle Beträge aus der API sind Ganzzahlen in der kleinsten Währungseinheit. € 12.500,00 ist 1250000. Es gibt keine Kommazahl, damit die Rundung nicht je Client abweicht. Die Währung steht separat dabei.

Was nicht enthalten ist

Kein Dokument-Download, kein Upload, keine BSN, keine privaten Notizen von Mitarbeitern, kein Löschen, keine Änderung der Phase, keine Einladung eines Erben und kein Speichern einer Teilung. Das erledigen Sie im Arbeitsplatz. MCP verwendet dieselben Grenzen.

Weiter mit MCP