Werbeaktionen

  • Advanced HRM : Advanced human resources management

    This module brings a layer of ergonomics and features missing in the standard Dolibarr human resources management module, such as the facility to create absence requests from the employee schedule, the addition of automatic VAT rates, the integration of the km scale on the tranche 1 and of google maps.

    145,00 €  (348€)

Neue Produkte

EasyAPI - Professionelle REST-API für Dolibarr (32 Core-Domänen) + MCP

mp23914d20260607102352

Professionelle REST-API für Dolibarr: 32 Core-Domänen mit nativen Rechten, Idempotenz, Resilienz, Scalar-Doku und MCP-Server für KI-Agenten.

290,00 €
Netto

  • Autor EasySoft Tech SL
  • Modulversion 2.28.0
  • Veröffentlichungsdatum 07.06.2026
  • Zugriff auf Updates und Downloads 1 Jahr
  • So kontaktieren Sie den Support info@easysoft.es
  • Kompatibilität Dolibarr V15 - V24   -   PHP7.0 - 8.3
  • Letztes Update 29.10.2026 22:30

Mehr Infos...

EasySoft Tech - Lösungen, die Ihr Unternehmen voranbringen

Die REST-API, die Dolibarr ab Werk mitbringen sollte

EasyAPI implementiert die 32 Domänen des Dolibarr-Core neu (Verkauf, Einkauf, Lager, Buchhaltung, Projekte, Personal, Mitglieder…) auf einem einzigen Vertrag: dieselbe Antwort-Envelope, dieselbe Fehlertaxonomie, Idempotenz bei jeder Schreiboperation und ein MCP-Server für KI-Agenten. Ihre Rechte und Ihre ACL in Dolibarr gelten weiterhin.

32
neu implementierte Core-Domänen
98
automatisch erkannte EAPI-Ressourcen
MCP
nativer Server für KI-Agenten
V15–V24
Dolibarr-kompatibel · PHP 7.4–8.3

Das Problem, das es löst

Die mitgelieferte API von Dolibarr deckt den einfachen Fall ab. Die Probleme beginnen, wenn die Integration im Produktivbetrieb bestehen muss: Wiederholungen nach Netzwerkabbrüchen, Rechte, die tatsächlich geprüft werden, mehrere Gesellschaften in derselben Installation und Belege, die korrekt summieren müssen. Es sind fünf konkrete Fehler, und keiner meldet sich, wenn er auftritt.

Was Ihnen begegnet Was es Sie kostet
Ein POST gibt die id im Rohformat zurück und ein GET das Objekt: jede Domäne antwortet auf ihre eigene Weise Eine Normalisierungsschicht in Ihrem Code, für jede Ressource anders, die Sie dauerhaft pflegen müssen
Eine Wiederholung nach einem Timeout legt den Beleg erneut an: den Header Idempotency-Key gibt es nicht Doppelte Rechnungen und Zahlungen, die jemand manuell stornieren und abstimmen muss
Das Löschen einer Zahlung per API antwortet 500 in Dolibarr 20 oder höher: die Signatur von Paiement::delete() hat sich in der 20 geändert Der einzige dokumentierte Weg, eine Zahlung rückgängig zu machen, funktioniert ausgerechnet dann nicht, wenn Sie ihn brauchen
Im Mehrgesellschaftsbetrieb antwortet eine gültige DOLAPIKEY einer anderen Entität mit 503 „Modul nicht aktiv“ Die API spricht nur mit Entität 1: jede Gesellschaft braucht am Ende ihre eigene Installation
Eine Rechnungsposition mit Recargo de equivalencia oder IRPF wird mit einer Steuer von 0 gespeichert Der Beleg summiert falsch: Sie berechnen zu wenig oder behalten zu wenig ein, und es erscheint kein Fehler
Der Fehler sagt nur „socid field missing“, ohne das genaue Feld und ohne einen request_id Support im Blindflug: Sie müssen manuell nachstellen, was in der Produktion bereits fehlgeschlagen ist

Dieselbe Envelope, dieselben Codes und dieselben Filter in allen 32 Domänen. Einmal gelernt, gilt es für alle: es gibt keine andere Art zu paginieren, zu filtern oder den Fehler zu lesen, je nachdem, welche Ressource Sie anfassen.

NEU IN 2.28

Was der KI-Agent anfordert, wartet auf Ihre Bestätigung

Mit aktivierter menschlicher Bestätigung wird ein Schreibvorgang, den ein Agent über MCP anfordert, nicht ausgeführt. Er wartet unter Werkzeuge › Ausstehende Aktionen (KI) mit seinen Daten und einer Vorschau und läuft erst, wenn die Person, die den Agenten verbunden hat, auf Bestätigen klickt.

  • Sie entscheiden, was wartet. Alle Schreibvorgänge oder nur E-Mail-Versand und Löschungen. Die Option ist ausgeschaltet, ein Update ändert also nichts.
  • Der Agent kann sich nicht selbst bestätigen. Für MCP gibt es keine Bestätigung: Sie erfolgt in Dolibarr oder über die REST-API (POST /mcp/pending/{token}/confirm), und nur die Person, die die Aktion angefordert hat, kann sie geben.
  • Einmal und mit Ablauf. Jede Aktion wird einmal bestätigt und läuft nach 10 Minuten ab; die Frist lässt sich auf bis zu 24 Stunden verlängern.
  • Markierte E-Mails. Eine nach der Bestätigung gesendete E-Mail trägt X-AI-Generated und X-AI-Reviewed.
IN 2.25

Wer Ihnen wie viel schuldet und seit wann, und der Preis, den das ERP jedem Kunden berechnen würde

Version 2.25 brachte Geschäftskennzahlen, die man bisher von Hand aus den Rechnungen zusammenrechnen musste. Dazu sagt der MCP dem Agenten, was jede Operation bewirkt, bevor er sie aufruft.

  • Altersstruktur der offenen Posten. GET /invoices/kpis/aging und GET /supplier-invoices/kpis/aging teilen das Offene auf in nicht fällig, 1-30, 31-60, 61-90 und über 90 Tage. Die Stufen lassen sich mit ?buckets=0,15,45 ändern, und ?group=thirdparty liefert die Aufschlüsselung pro Geschäftspartner. Es gilt dieselbe ACL wie in den Listen: Ein Vertriebsmitarbeiter, der nur seine Kunden sieht, sieht auch nur deren Schulden.
  • Zahlungsdauer und echter offener Betrag. /invoices/kpis ergänzt dso und /supplier-invoices/kpis ergänzt dpo, die durchschnittlichen Tage bis zum Zahlungseingang und bis zur Zahlung über die letzten 90 Tage. Die KPI outstanding und overdue summieren, was wirklich noch offen ist: Sie ziehen Teilzahlungen, Gutschriften und Anzahlungen mit derselben Berechnung ab wie getRemainToPay() im Core.
  • Effektiver Preis pro Kunde. GET /products/{id}/price?socid=&qty= liefert den Preis, den das ERP für diesen Kunden und diese Menge in die Zeile setzen würde, mit MwSt., Zuschlag und Quellensteuer, den Summen und der Herkunft des Preises: base, price_level, customer_price oder quantity.
  • Fehler ohne SQL. Die Meldung der Datenbank bleibt im Syslog, zusammen mit der request_id, und die Antwort enthält einen Code, mit dem man etwas anfangen kann: Ein Duplikat ist ein 409 mit reason: duplicate_record, eine Sperre ein 503 mit Retry-After: 2 für den nächsten Versuch.
  • Jede Operation deklariert ihre Wirkung. x-effect gibt an, ob sie liest (read), im ERP schreibt (internal), nach außen geht (external) oder sich nicht rückgängig machen lässt (irreversible), und der MCP übersetzt das in readOnlyHint und destructiveHint. Löschen per MCP lässt sich im Setup (EASYAPI_MCP_ALLOW_DELETE) oder pro Benutzer verbieten, und es gilt die strengere Einstellung.
  • Maskierte IBAN. Per MCP zeigen IBAN, Kontonummer und Mandatsreferenz der Bankkonten von Geschäftspartnern nur noch die letzten 4 Zeichen. Über REST ändert sich nichts.

Ein Blick auf das Ergebnis

Die OpenAPI-Spezifikation wird automatisch aus den Ressourcen erzeugt und im Modul ausgeliefert, gefiltert nach den Rechten des abfragenden Benutzers.

EasyAPI-Dokumentation mit Scalar: Navigation nach Domänen, Serverauswahl und Authentifizierung mit DOLAPIKEY
Alle 32 Domänen navigierbar, mit Serverauswahl und Authentifizierung per DOLAPIKEY. Jede Operation bringt ihr Schema und ein fertiges Beispiel zum Ausführen mit.

Vergleich mit der nativen API

Dimension Native API von Dolibarr EasyAPI
Abdeckung Mehr als 50 API-Klassen über die Core-Module verteilt, mit ungleicher Abdeckung: in der Buchhaltung zum Beispiel ist der einzige Endpoint der Datenexport 32 vollständige Core-Domänen mit ihren Unterressourcen: Positionen, Kontakte, Zahlungen, Rabatte…
Antwortform Heterogen: ein POST gibt eine rohe Ganzzahl zurück, ein anderer das Objekt Einheitliche Envelope {success, data, meta}: der POST antwortet mit 201 und dem angelegten Datensatz
Fehler Uneinheitliche Codes und Meldungen, ohne Taxonomie und ohne etwas, das Sie in einem Ticket zitieren können Taxonomie mit 16 Typen, das genaue Feld in error.fields und request_id + doc_url bei allen
Idempotenz Gibt es nicht Atomare Reservierung per Idempotency-Key bei jeder Schreiboperation, auch bei Statusübergängen
Massenoperationen Gibt es nicht 207 Multi-Status beim Anlegen, Ändern und Löschen, bis zu 100 Elemente pro Stapel und mit dem Ergebnis für jedes einzelne
Abfragen Rohe SQL-Filter zum Selbstschreiben, ohne Sortierung und ohne Feldauswahl Filter und Sortierung in JSON, Suche, Feldauswahl, eingebettete Ressourcen, Paginierung nach Seite und nach Cursor
Resilienz Gibt es nicht Rate-Limits, erneuter Versuch bei Datenbanksperren, optimistische Nebenläufigkeit und Wartungsmodus
Sicherheit Native Rechte, mit echten Fehlern: die Abfrage der Vertriebsmitarbeiter liefert 401, wo 403 richtig wäre Dieselben nativen Rechte, mit korrigierter und einheitlicher ACL pro Datensatz: korrektes 403 und keine Lecks zwischen Dritten oder Entitäten
Dokumentation Einfacher Swagger-Explorer Aus dem Code generiertes OpenAPI, mit eingebettetem Scalar, Swagger UI und Redoc und nach Rechten gefiltert
Erweiterbarkeit Für eigene Endpoints muss man den Core anfassen Automatische Erkennung: Sie legen einen Ordner in Ihrem eigenen Modul an, und Ihre Endpoints erscheinen dokumentiert

So wird es verwendet

Authentifizierung mit der DOLAPIKEY Ihres Benutzers im Header. Derselbe Schlüssel gilt als Authorization: Bearer, wenn Ihr Server eigene Header verschluckt. Eine Rechnung mit ihrer Position in einem einzigen Aufruf:

RECHNUNG MIT POSITION, IN EINEM AUFRUF
curl -X POST "https://tu-dolibarr.com/custom/easyapi/api/invoices" \
  -H "DOLAPIKEY: tu_clave" \
  -H "Idempotency-Key: pedido-4417" \
  -H "Content-Type: application/json" \
  -d '{"socid": 128, "lines": [{"fk_product": 55, "qty": 2, "subprice": 49.90}]}'
201 · DIE RECHNUNG ENTSTEHT ALS ENTWURF MIT VORLÄUFIGER REF
{
  "success": true,
  "data": {
    "id": 902,
    "ref": "(PROV902)",
    "socid": 128,
    "statut": 0,
    "total_ttc": 119.76,
    "lines": [ { "id": 3311, "qty": 2, "subprice": 49.90 } ]
  }
}
422 · DER FEHLER NENNT IHNEN DAS FELD, NICHT NUR DASS ETWAS FEHLGESCHLAGEN IST
{
  "success": false,
  "error": {
    "type": "validation_error",
    "code": 422,
    "message": "Validation failed",
    "fields": { "socid": "does not exist" },
    "request_id": "req_7f3a91c2",
    "doc_url": "https://easysoft.es/docs/api#validation_error"
  }
}

Die endgültige ref vergibt die Validierung, und so funktioniert Dolibarr: POST /invoices/902/validate ersetzt (PROV902) durch die Nummer der Serie und berechnet die Summen neu. Senden Sie dieselbe Anfrage mit derselben Idempotency-Key erneut, erhalten Sie die Rechnung von vorher, keine zweite, und der Header Idempotent-Replayed: true meldet, dass sie nicht erneut ausgeführt wurde.

Was enthalten ist

Schreibvorgänge, die sich nicht duplizieren
Idempotency-Key mit atomarer Reservierung und angekündigtem Replay bei jeder Schreiboperation, auch bei Statusübergängen (validieren, bezahlen, abschließen).
Fehler, die sich selbst erklären
Eine einzige Taxonomie mit 16 Typen, das Detail pro Feld und zwei Angaben für das Ticket: die Kennung der Anfrage und den Link zum Dokument des Fehlers.
Abfragen ohne handgeschriebenes SQL
Filter, Sortierung, Suche und Feldauswahl in JSON; Paginierung nach Seite und nach Cursor, um große Tabellen ohne Zeilenverlust zu durchlaufen.
Ihre Rechte, unverändert
Die nativen Rechte von Dolibarr plus die korrigierte ACL pro Datensatz: ein Vertriebsmitarbeiter sieht nicht, was ihm nicht gehört, und das 403 erscheint dort, wo es hingehört.
MCP-Server für Agenten
Endpoint POST /mcp für Claude, Cursor oder jeden anderen MCP-Client, authentifiziert mit Ihrem Schlüssel und auf die Domänen begrenzbar, die Sie möchten.
Konfigurierbare Resilienz
Rate-Limits, erneuter Versuch bei Datenbanksperren, optimistische Nebenläufigkeit mit ETag, Wartungsmodus und ein Limit für die Body-Größe. Alles über Konstanten.

Wofür es eingesetzt wird

  • Synchronisierung eines Onlineshops oder eines Marktplatzes: Bestellungen, Lager und Preise gegen Ihre Datenbank, ohne SQL zu schreiben
  • Eine mobile App für Vertriebsmitarbeiter mit Sitzung per Cookie HttpOnly, bei der der Schlüssel des ERP nie in den Browser gelangt
  • Dashboards und BI, die die 32 Domänen mit Filtern und Cursor-Paginierung lesen
  • Automatisierungen und KI-Agenten, per MCP mit Ihrem eigenen ERP verbunden, mit den Schreibregeln, die Sie festlegen
  • Mehrere Gesellschaften über eine einzige API bedient, jeder Benutzer in seiner Entität
  • Ein externes ERP, das Rechnungen und Zahlungen anlegen muss und dabei weiß, dass eine Wiederholung nichts dupliziert

Inbetriebnahme

1
Entpacken Sie das ZIP in custom/easyapi und führen Sie composer install --no-dev --optimize-autoloader aus.
2
Aktivieren Sie EasyAPI unter Konfiguration → Module und öffnen Sie dessen Konfigurationsseite: CORS, Sitzung, Limits und MCP werden von dort aus eingestellt.
3
Kopieren Sie den Schlüssel Ihres Benutzers (Benutzer → Reiter API) und prüfen Sie, dass er antwortet: GET /me sagt Ihnen, wer Sie sind.
4
Öffnen Sie /docs und navigieren Sie durch die 32 Domänen. Wenn Ihr Server nginx ist, wenden Sie den Block aus der mitgelieferten Anleitung an, bevor Sie etwas als gut ansehen.

Voraussetzungen

Dolibarr V15 bis V24 (getestet mit der 18 und der 24; die Core-Signaturen werden von der 10 bis zur 24 geprüft)
PHP 7.4 bis 8.3, mit curl, json und mbstring
Datenbank MySQL 5.7+ · MariaDB 10.2+ · PostgreSQL 10+
Aktualisierungen 365 Tage Zugang zu Aktualisierungen

Vor dem Kauf

Kann ich es an meinen Fall anpassen?
Ja. Sie erhalten den vollständigen Quellcode und können ihn lesen, ändern und anpassen, ohne um Erlaubnis zu fragen. Außerdem werden Ressourcen automatisch erkannt, sodass Sie Ihre eigenen Endpoints normalerweise aus Ihrem Modul heraus ergänzen, statt unseres anzufassen.
Wie teste ich es, ohne meine Daten zu riskieren?
Installieren Sie es in einer Kopie Ihres Dolibarr und rufen Sie GET /status auf: die Antwort kommt, ohne einen einzigen Datensatz anzufassen. Alle Lesezugriffe sind harmlos. Schreibzugriffe legen dagegen echte Daten an, testen Sie sie also in dieser Kopie: Idempotency-Key garantiert, dass eine Wiederholung nach einem Netzwerkabbruch den Datensatz nicht dupliziert, nicht dass die Operation umkehrbar ist.
Und wenn etwas nicht zu meiner Installation passt?
Schreiben Sie uns vor dem Kauf an info@easysoft.es, und wir sehen es gemeinsam mit Ihnen an: Dolibarr-Version, PHP, Hosting und was Sie integrieren möchten. Lieber sagen wir Ihnen, dass es nicht passt, als Ihnen etwas zu verkaufen, das Ihnen nicht hilft.
Bricht meine Integration beim Aktualisieren?
Der Vertrag ist eine stabile API v1, und jede Antwort erklärt das im Header X-EasyAPI-Version. Innerhalb von v1 kommen nur kompatible Änderungen hinzu: neue optionale Felder, neue Endpoints, neue Header. Eine vertragsbrechende Änderung käme als v2, und Ihre Integration bliebe auf v1, während Sie migrieren, wann es Ihnen passt.
Was passiert, wenn die 365 Tage ablaufen?
Das Modul, das Sie bereits haben, funktioniert weiter: es wird nichts deaktiviert oder gesperrt. Was endet, ist der Zugang zu Aktualisierungen und neuen Downloads sowie der Support per E-Mail. Wenn Sie es später wieder aufnehmen möchten, lässt es sich verlängern.

Aktive Pflege

EasyAPI ist kein veröffentlichtes und vergessenes Modul: die aktuelle Version ist die 2.28.0, und jede Lieferung ergänzt Tests, die absichern, was sie repariert. Die 2.28 bringt einen Test für jede Regel der menschlichen Bestätigung, geprüft durch absichtliches Brechen der Regel, einen Browsertest der Seite mit den ausstehenden Aktionen und eine HTTP-Prüfung auf Dolibarr 15, 18 und 24. Neben den Tests durchläuft jedes Release vor der Veröffentlichung QA gegen echte Dolibarr-Instanzen.

31
in Dolistore veröffentlichte Module
100 %
vollständiger Quellcode
8
Sprachen in der Oberfläche
365
Tage Aktualisierungen

Passt es zu dem, was Sie integrieren möchten?

Schildern Sie uns Ihren Fall, und wir sagen Ihnen, ob EasyAPI für Sie passt — und wenn nicht, sagen wir Ihnen das genauso.

info@easysoft.es www.easysoft.es



If you think this module is a fork of another one (published after the first one) or violates some terms or conditions of use (for users or vendors), you can make a report at dolistore@dolibarr.org