Modell-Kontext-Protokoll für Claude Desktop, Cursor und andere AI-Clients. Über 100 Tools für CRUD auf alle Kern-Ressourcen.
npx -y @dversum/mcp-serverEine kuratierte Referenz für die Endpunkte, die du täglich brauchst — Authentifizierung, Webhooks, und die Kern-Ressourcen für Kunden, Rechnungen, Aufgaben, Zeiterfassung und mehr. Alle Beispiele sind copy-paste-fertig.
https://api.dversum.com/api/v1Die dVersum-API spricht REST über HTTPS. Anfragen werden mit JSON gesendet, Antworten kommen als JSON zurück. Alle Zeitstempel sind ISO 8601 in UTC. Geldbeträge sind ganzzahlig in Cent. IDs sind UUIDv4.
Authentifiziere jede Anfrage mit einem persönlichen API-Token im Authorization-Header. Erstelle Tokens unter Einstellungen → API. Jeder Token gehört zu einem Nutzer + einer Organisation; Berechtigungen entsprechen denen des Nutzers.
curl https://api.dversum.com/api/v1/clients \
-H"Authorization: Bearer dvk_live_…"Fehler kommen als JSON mit `error` (kurze Maschinenkennung) und `message` (für Menschen). HTTP-Statuscodes folgen REST-Konventionen.
{"error":"validation_failed","message":"client_id is required","field":"client_id"
}| Status | Bedeutung |
|---|---|
400 | Ungültige Anfrage — JSON-Parse-Fehler oder fehlendes Feld |
401 | Kein oder ungültiger Token |
403 | Token ist gültig, hat aber keine Berechtigung für die Ressource |
404 | Ressource existiert nicht (oder gehört zu einer anderen Organisation) |
409 | Konflikt — z. B. doppelte Slug/E-Mail |
422 | Validierung fehlgeschlagen |
429 | Rate-Limit überschritten — siehe Rate-Limits |
5xx | Serverfehler — bitte erneut versuchen oder Support kontaktieren |
Listen-Endpunkte unterstützen `?page=` und `?per_page=` (max. 100). Die Antwort enthält `total`, sodass du die Gesamtzahl der Seiten selbst berechnen kannst.
curl"https://api.dversum.com/api/v1/invoices?page=2&per_page=50" \
-H"Authorization: Bearer $DVERSUM_TOKEN"Pro Token: 120 Anfragen / Minute. Bei Überschreitung antwortet der Server mit 429 und einem `Retry-After`-Header. Antworten enthalten `X-RateLimit-Limit`, `X-RateLimit-Remaining` und `X-RateLimit-Reset` zur Überwachung.
Webhooks pushen Ereignisse an deinen HTTPS-Endpunkt, sobald sie in dVersum passieren — bezahlte Rechnungen, neue Tasks, geänderte Projekte. Jede Auslieferung ist signiert und idempotent (`Idempotency-Key` im Header).
Lege einen Webhook-Endpunkt unter Einstellungen → Webhooks an oder per API:
/webhookscurl -X POST https://api.dversum.com/api/v1/webhooks \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"url":"https://example.com/dversum-webhook","events": ["invoice.paid","quote.signed"],"active": true
}'Der `secret`, mit dem zukünftige Payloads signiert werden, kommt im POST-Response zurück — bewahre ihn sicher auf.
Jede Auslieferung enthält den Header `X-Dversum-Signature: sha256=<hex>`. Berechne HMAC-SHA-256 über den rohen Request-Body mit deinem `secret` und vergleiche zeitkonstant.
import crypto from 'node:crypto'
const signature = req.headers['x-dversum-signature'].replace('sha256=', '')
const expected = crypto
.createHmac('sha256', process.env.DVERSUM_WEBHOOK_SECRET)
.update(req.rawBody)
.digest('hex')
if (!crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))) {
return res.status(401).end()
}50 Ereignisse über 11 Ressourcen.
invoice.createdinvoice.updatedinvoice.sentinvoice.paidinvoice.partially_paidinvoice.overdueinvoice.deletedquote.createdquote.updatedquote.sentquote.signedquote.rejectedquote.expiredquote.convertedquote.deletedcontract.createdcontract.signedcontract.cancelledreminder.sentclient.createdclient.updatedclient.deletedproject.createdproject.updatedproject.archivedproject.deletedtask.createdtask.updatedtask.completedtask.assignedtask.movedtask.deletedsubtask.createdsubtask.completedsubtask.deletedcomment.createdtime_entry.createdtime_entry.startedtime_entry.stoppedtime_entry.updatedtime_entry.deletedpage.createdpage.updatedpage.deletedabsence.createdabsence.updatedabsence.deletedbooking.createdbooking.cancelledbooking.rescheduledKunden sind die zentralen Geschäftspartner — Rechnungen, Angebote, Projekte und Verträge laufen alle gegen einen Kunden.
/clientsListet Kunden der Organisation.
curl https://api.dversum.com/api/v1/clients \
-H"Authorization: Bearer $DVERSUM_TOKEN"{"clients": [
{"id":"01H8Z…","name":"ATAS Vertriebs GmbH","email":"kontakt@atas.de","color":"#45e59f"
}
],"total": 47
}/clientsLegt einen neuen Kunden an.
curl -X POST https://api.dversum.com/api/v1/clients \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"name":"ATAS Vertriebs GmbH","email":"kontakt@atas.de","vat_id":"DE123456789","country":"DE"
}'/clients/{id}Liefert einen einzelnen Kunden samt verknüpfter Ressourcen.
curl https://api.dversum.com/api/v1/clients/CLIENT_ID \
-H"Authorization: Bearer $DVERSUM_TOKEN"/clients/{id}Aktualisiert einen Kunden.
curl -X PUT https://api.dversum.com/api/v1/clients/CLIENT_ID \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"email":"neu@atas.de" }'/clients/{id}Löscht einen Kunden (nur wenn keine Rechnungen verknüpft sind).
curl -X DELETE https://api.dversum.com/api/v1/clients/CLIENT_ID \
-H"Authorization: Bearer $DVERSUM_TOKEN"Projekte enthalten Aufgaben, Zeiteinträge, Seiten und Whiteboards. Ein Projekt kann optional einem Kunden zugeordnet sein.
/projectsListet alle Projekte. Filter mit ?archived=false oder ?client_id=…
curl"https://api.dversum.com/api/v1/projects?archived=false" \
-H"Authorization: Bearer $DVERSUM_TOKEN"/projectsErstellt ein neues Projekt mit Standard-Kanban-Spalten.
curl -X POST https://api.dversum.com/api/v1/projects \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"name":"Q2 Relaunch","client_id":"CLIENT_ID","color":"#45e59f"
}'/projects/{id}/tasksListet alle Aufgaben eines Projekts mit Spalten- und Assignee-Daten.
curl https://api.dversum.com/api/v1/projects/PROJECT_ID/tasks \
-H"Authorization: Bearer $DVERSUM_TOKEN"/projects/{id}/statusSetzt den Projektstatus (active / on_hold / archived).
curl -X PATCH https://api.dversum.com/api/v1/projects/PROJECT_ID/status \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"status":"archived" }'Aufgaben gehören zu einem Projekt und einer Kanban-Spalte. Sie unterstützen Tags, Anhänge, Unteraufgaben und Kommentare.
/tasksErstellt eine Aufgabe in der angegebenen Spalte.
curl -X POST https://api.dversum.com/api/v1/tasks \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"title":"Mockup für Landing Page","project_id":"PROJECT_ID","column_id":"COLUMN_ID","due_date":"2026-06-30","assignee_ids": ["USER_ID"]
}'/tasks/{id}/moveVerschiebt eine Aufgabe in eine andere Spalte (oder ein anderes Projekt).
curl -X PATCH https://api.dversum.com/api/v1/tasks/TASK_ID/move \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"column_id":"TARGET_COLUMN_ID","position": 0 }'/tasks/{id}/toggle-doneMarkiert eine Aufgabe als erledigt bzw. offen.
curl -X PATCH https://api.dversum.com/api/v1/tasks/TASK_ID/toggle-done \
-H"Authorization: Bearer $DVERSUM_TOKEN"/tasks/{taskId}/commentsPostet einen Kommentar. Mit `@vero` im Inhalt antwortet die KI im Thread.
curl -X POST https://api.dversum.com/api/v1/tasks/TASK_ID/comments \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"content":"<p>@vero summarise the thread</p>" }'§14-UStG-konforme Rechnungen mit ZUGFeRD-XML, Mahnungs-Workflow und DATEV-Export. Beträge in Cent (Integer).
/invoicesListet Rechnungen. Filter: ?status=, ?client_id=, ?from=YYYY-MM-DD&to=YYYY-MM-DD.
curl"https://api.dversum.com/api/v1/invoices?status=sent&from=2026-01-01" \
-H"Authorization: Bearer $DVERSUM_TOKEN"/invoicesErstellt eine Rechnung als Entwurf. Erst beim Senden (POST /send) wird die Rechnungsnummer vergeben und GoBD-gesperrt.
curl -X POST https://api.dversum.com/api/v1/invoices \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"client_id":"CLIENT_ID","issue_date":"2026-06-05","due_date":"2026-06-19","line_items": [
{"description":"Beratung","quantity": 8,"unit_price_cents": 12500,"tax_rate": 19 }
]
}'/invoices/{id}/sendSendet die Rechnung an den Kunden, sperrt sie (§14 UStG / GoBD), erzeugt die ZUGFeRD-PDF und löst invoice.sent aus.
curl -X POST https://api.dversum.com/api/v1/invoices/INVOICE_ID/send \
-H"Authorization: Bearer $DVERSUM_TOKEN"/invoices/{id}/pdfLädt die Rechnung als ZUGFeRD-PDF/A-3 herunter.
curl https://api.dversum.com/api/v1/invoices/INVOICE_ID/pdf \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-o invoice.pdf/invoices/{id}/paymentsBucht eine Zahlung (vollständig oder Teilzahlung) auf der Rechnung.
curl -X POST https://api.dversum.com/api/v1/invoices/INVOICE_ID/payments \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"amount_cents": 119000,"paid_at":"2026-06-12","method":"transfer" }'/invoices/{id}/credit-noteErstellt eine Gutschrift (GS-) zur Rechnung — gespiegelte Beträge, ZUGFeRD DocumentTypeCode 381.
curl -X POST https://api.dversum.com/api/v1/invoices/INVOICE_ID/credit-note \
-H"Authorization: Bearer $DVERSUM_TOKEN"Angebote mit digitaler Unterschrift und 1-Klick-Umwandlung in eine Rechnung.
/quotesErstellt ein neues Angebot.
curl -X POST https://api.dversum.com/api/v1/quotes \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"client_id":"CLIENT_ID","valid_until":"2026-07-05","line_items": [
{"description":"Webdesign","quantity": 1,"unit_price_cents": 350000,"tax_rate": 19 }
]
}'/quotes/{id}/sendSendet das Angebot per E-Mail inklusive Unterzeichnungslink.
curl -X POST https://api.dversum.com/api/v1/quotes/QUOTE_ID/send \
-H"Authorization: Bearer $DVERSUM_TOKEN"/quotes/{id}/convert-to-invoiceWandelt ein unterzeichnetes Angebot in eine Rechnung um.
curl -X POST https://api.dversum.com/api/v1/quotes/QUOTE_ID/convert-to-invoice \
-H"Authorization: Bearer $DVERSUM_TOKEN"Zeiterfassung pro Aufgabe oder Projekt. Timer oder Bulk-Einträge — beides erzeugt dieselbe Datenstruktur.
/time-entries/startStartet einen Timer für die aktuelle Aufgabe.
curl -X POST https://api.dversum.com/api/v1/time-entries/start \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"task_id":"TASK_ID","description":"Mockup feedback" }'/time-entries/{id}/stopStoppt den laufenden Timer.
curl -X POST https://api.dversum.com/api/v1/time-entries/TIME_ENTRY_ID/stop \
-H"Authorization: Bearer $DVERSUM_TOKEN"/time-entriesErstellt einen Zeiteintrag rückwirkend.
curl -X POST https://api.dversum.com/api/v1/time-entries \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"task_id":"TASK_ID","started_at":"2026-06-04T09:00:00Z","ended_at":"2026-06-04T11:30:00Z","billable": true
}'Kalenderereignisse mit optionaler Google-Meet-Verknüpfung. Erstellte Events können automatisch zu Google Calendar synchronisiert werden.
/calendar/eventsListet Ereignisse im Zeitraum (?from=…&to=… in ISO 8601).
curl"https://api.dversum.com/api/v1/calendar/events?from=2026-06-01T00:00:00Z&to=2026-06-30T23:59:59Z" \
-H"Authorization: Bearer $DVERSUM_TOKEN"/calendar/eventsErstellt ein Ereignis. Setze attach_meet=true für ein Google-Meet-Link.
curl -X POST https://api.dversum.com/api/v1/calendar/events \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"title":"Kickoff","start_time":"2026-06-12T10:00:00Z","end_time":"2026-06-12T11:00:00Z","attach_meet": true,"attendee_emails": ["client@example.com"]
}'Notion-ähnliche Tiptap-Seiten mit verschachtelter Hierarchie. Markdown-Inhalte werden serverseitig in ProseMirror konvertiert — inkl. Tabellen.
/pagesErstellt eine neue Seite mit optionalem Markdown-Inhalt.
curl -X POST https://api.dversum.com/api/v1/pages \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"title":"Q2 Analyse","icon":"📊","content":"# Q2 Analyse\n\n| Metrik | Wert |\n|---|---|\n| Revenue | 41.804 € |"
}'/pages/{id}/contentErsetzt den Inhalt der Seite mit Markdown (oder ProseMirror-JSON).
curl -X PUT https://api.dversum.com/api/v1/pages/PAGE_ID/content \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"content":"## Updated section\n\nNeuer Text" }'/pages/treeLiefert die vollständige Seitenhierarchie als geschachtelte Liste.
curl https://api.dversum.com/api/v1/pages/tree \
-H"Authorization: Bearer $DVERSUM_TOKEN"S3-gespeicherte Dateien mit Ordnerhierarchie und WeTransfer-ähnlichen Share-Links.
/storage/filesLädt eine Datei hoch (multipart/form-data, max. 100 MB).
curl -X POST https://api.dversum.com/api/v1/storage/files \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-F"file=@./report.pdf" \
-F"folder_id=FOLDER_ID"/storage/files/{id}/downloadErzeugt eine signierte S3-URL (gültig 5 Min) für den Download.
curl https://api.dversum.com/api/v1/storage/files/FILE_ID/download \
-H"Authorization: Bearer $DVERSUM_TOKEN"/storage/shares/{fileId}Erstellt einen öffentlichen Share-Link mit optionalem Passwort und Ablaufdatum.
curl -X POST https://api.dversum.com/api/v1/storage/shares/FILE_ID \
-H"Authorization: Bearer $DVERSUM_TOKEN" \
-H"Content-Type: application/json" \
-d '{"password":"geheim","expires_at":"2026-07-01T00:00:00Z","max_downloads": 10 }'Cal.com-ähnliche öffentliche Buchungsseite pro Nutzer. Die Buchungs-Endpunkte sind unauthentifiziert und geben den verfügbaren Slot-Pool zurück.
/public/booking/{user_slug}/{type_slug}Liefert Metadaten zur Buchungsart (Name, Dauer, Beschreibung).
curl https://api.dversum.com/api/v1/public/booking/admin/termin-mit-naumche/public/booking/{user_slug}/{type_slug}/slotsBerechnet verfügbare Slots im Zeitraum (?from=…&to=… RFC 3339, max. 90 Tage).
curl"https://api.dversum.com/api/v1/public/booking/admin/termin-mit-naumche/slots?from=2026-06-04T00:00:00Z&to=2026-06-11T00:00:00Z"/public/booking/{user_slug}/{type_slug}/bookBucht einen Slot — sendet Bestätigungsmail an Gast + Host und legt das Kalenderereignis an.
curl -X POST https://api.dversum.com/api/v1/public/booking/admin/termin-mit-naumche/book \
-H"Content-Type: application/json" \
-d '{"start":"2026-06-05T09:00:00Z","name":"Max Mustermann","email":"max@example.com","agenda":"Kurzes Intro-Gespräch","timezone":"Europe/Berlin"
}'Modell-Kontext-Protokoll für Claude Desktop, Cursor und andere AI-Clients. Über 100 Tools für CRUD auf alle Kern-Ressourcen.
npx -y @dversum/mcp-serverdVersum Companion — Universal-Element-Picker für Chrome/Edge. Speichert Webinhalte als Aufgaben.
Chrome Web Store →Komplette Sammlung aller Endpunkte mit vordefinierten Variablen. Bald verfügbar.
Bald verfügbarMaschinenlesbare Spezifikation — generiere Clients für TypeScript, Python, Go. Bald verfügbar.
Bald verfügbarEingehende Webhooks aus n8n (oder jeder Automations-Plattform). Berechtigungen pro Webhook fein granular einstellbar.
Anleitung →Über die Webhook-Trigger sofort einsatzbar. Eigener App-Connector folgt.
Bald verfügbarFehlt dir ein Endpunkt? Stimmt eine Antwort nicht? Schreib uns — wir antworten in Tagen, nicht Wochen.