OctobooksENDE Kostenlos testen

Octobooks für Entwickler

Ihr Unternehmen läuft auf eigenem Code? Octobooks ist die Buchhaltung darunter: Ihr Cronjob bucht, stellt Rechnungen aus, gleicht ab und liest die Summen- und Saldenliste, ohne dass jemand im Chat sitzt. In jedem Tarif, auch im Test. Los geht's.

1. Schnellstart

Drei Zeilen, keine Anmeldung. Der öffentliche Schlüssel öffnet eine Sandbox: eine gemeinsame Kopie einer Demofirma, jede Nacht neu.

curl https://mcp.octobooks.ai/octobooks/api/v1/company -H "Authorization: Bearer obk_sandbox_demo_foods_public_key_resets_every_night"

curl "https://mcp.octobooks.ai/octobooks/api/v1/statements/trial-balance?date_from=2026-04-01&date_to=2026-10-31" -H "Authorization: Bearer obk_sandbox_demo_foods_public_key_resets_every_night"

curl -X POST https://mcp.octobooks.ai/octobooks/api/v1/tools/manual_journal -H "Authorization: Bearer obk_sandbox_demo_foods_public_key_resets_every_night" -H "Idempotency-Key: first-entry" -H "Content-Type: application/json" \
  -d '{"action": "post", "reason": "my first entry", "journal": {"date": "2026-10-01", "narration": "First entry", "lines": [{"account": "7000", "debit": "10.00"}, {"account": "1200", "credit": "10.00"}]}}'

Sie versendet nichts, meldet nichts und erreicht keine Bank. 30 Anfragen pro Minute von einer Adresse, 2.000 neue Buchungen am Tag für alle Besucher zusammen.

2. Ihr eigener Schlüssel

3. Was ein Schlüssel darf

Ein Buchungsschlüssel hat dieselben Schalter, denselben Freigabeablauf und dasselbe Prüfprotokoll wie Ihre KI, mit dem App-Namen des Schlüssels als Handelndem. Wo Sie entscheiden, wartet er auf Sie. Zahlungen und Meldungen stehen hinter zwei eigenen Schaltern, aus, bis Sie sie einschalten.

4. Jedes Werkzeug ist ein Endpunkt

POST /tools/<tool> nimmt die Argumente jedes Werkzeugs des MCP-Connectors als JSON. GET /tools listet sie mit Berechtigung und Argumenten. Daneben stehen die festen Ressourcen: Auswertungen, Rechnungen, Bankzeilen, offene Posten, Ereignisse. Die ganze Beschreibung: openapi.json.

Ein Werkzeug, das eine Person im Chat braucht, antwortet 409 mit einer Zeile, die das sagt.

5. Idempotenz

Jeder POST, der schreibt, nimmt den Header Idempotency-Key: einen neuen je Vorgang. Derselbe Schlüssel mit demselben Inhalt liefert die erste Antwort, mit Idempotent-Replay: true. Derselbe Schlüssel mit anderem Inhalt ist 409. So lässt sich ein abgelaufener Aufruf neu senden.

curl -X POST https://mcp.octobooks.ai/octobooks/api/v1/tools/contact_set -H "Authorization: Bearer obk_..." -H "Idempotency-Key: customer-4711" -H "Content-Type: application/json" \
  -d '{"what": "save", "side": "customer", "name": "Hill Foods Ltd"}'

6. Grenzen und Fehler

600 Anfragen pro Minute je Schlüssel, 240 Werkzeugaufrufe, davon 60 schreibend. Darüber: 429 mit Retry-After. Ein Inhalt hat höchstens 8 MB.

Fehler sind {"error": {"code", "message"}}. 401 kein Schlüssel, 403 eine Berechtigung oder ein Schalter, 404 nicht in dieser Firma, 409 ein Konflikt oder eine Person nötig, 422 nicht annehmbar, die Meldung sagt warum.

7. Ereignisse und Webhooks

Tragen Sie Ihre https-Adresse unter Einstellungen, Entwickler ein und erhalten Sie ein Signaturgeheimnis, einmal gezeigt. Oder lesen Sie GET /events. Ereignisse: journal.posted, invoice.issued, open_item.opened, open_item.resolved, filing.filed. Ein Ereignis enthält IDs, Arten, Daten und Beträge, keinen Text von Außenstehenden.

Octobooks-Event: journal.posted
Octobooks-Delivery: 1234
Octobooks-Signature: t=1791234567,v1=5f2b...

{"id": "evt_88", "type": "journal.posted", "company": "ltd", "subject": {"type": "journal", "id": 4711}, "data": {"total": "120.00", "currency": "GBP"}}

Prüfen Sie zuerst die Signatur: v1 ist das HMAC-SHA256, in Hex, von t, einem Punkt und dem Inhalt, wie er ankam. Lehnen Sie ein t ab, das älter als fünf Minuten ist.

def genuine(secret: str, header: str, body: bytes) -> bool:
    parts = dict(p.split("=", 1) for p in header.split(","))
    signed = parts["t"].encode() + b"." + body
    mine = hmac.new(secret.encode(), signed, hashlib.sha256).hexdigest()
    return hmac.compare_digest(mine, parts["v1"]) and abs(time.time() - int(parts["t"])) < 300

Antworten Sie binnen zehn Sekunden mit 2xx. Alles andere wird acht Mal über etwa zwei Tage wiederholt.

8. KI-Clients

Sie nutzen Claude oder einen anderen MCP-Client, mit einer Person im Chat? Verbinden Sie ihn mit dem MCP-Connector unter https://mcp.octobooks.ai: dieselben Werkzeuge, dieselben Schalter.

Feedback, Fragen, Funktionswunsch? hello@octobooks.ai

Zurück zum Start

Octobooks Ltd, 17549566, London