maesn
Für Entwickler

Microsoft Business Central anbinden: Drei-Tage-Abonnements, ein maesn-Payload

Abonnements in Business Central sind kein Einrichtungsschritt. Jedes läuft nach 72 Stunden ab, die Erneuerung verlangt denselben Validierungs-Handshake wie das Anlegen, und eine fehlgeschlagene Erneuerung erzeugt auf Ihrer Seite keinen Fehler, nur Stille. Über maesn gehört diese Uhr uns: Business Central validiert unseren Endpunkt, und Ihr Endpunkt empfängt die Ereignisse.

Lennart Svensson, CTO und Mitgründer bei Maesn
Lennart Svensson
CTO und Mitgründer · · Aktualisiert
Illustration zu Business Central anbinden: Vier Ereignisse, ein Payload
Der Kontext

Eine Anfrage nennt eine Umgebung und eine Firma

Business Central ist Microsofts ERP für kleine und mittlere Unternehmen, und für einen Integrator ist die Adresse die bestimmende Eigenschaft. Ein Datensatz liegt in einer Firma innerhalb einer Umgebung, und eine Anfrage, die keine von beiden nennt, hat keine Adresse, an der sie ankommen kann.

Das zeigt sich in der URL. Jeder Ressourcenpfad führt die Umgebung und die Firma mit, vor Ihrem ersten nützlichen Aufruf brauchen Sie also zwei Ermittlungsaufrufe, um herauszufinden, welche ein bestimmter Kunde hat. Das Entra-Verzeichnis steht hinter beiden, es ist aber kein Wert, den Sie senden.

Zwei Werte an der Anfrage, und das Verzeichnis dahinter
Was es istWoher es kommt
Entra-VerzeichnisDer Microsoft-Entra-Mandant Ihres Kunden, in dem Ihre App zugelassen ist. Er entscheidet, ob eine Anfrage überhaupt erlaubt ist, und er steckt im Token und nicht in der URL
UmgebungWird je Verzeichnis ermittelt und als environmentName gesendet. Produktion und Sandbox sind beide Umgebungen, weshalb eine Testverbindung eine echte Verbindung zu einer anderen Umgebung ist und kein Sondermodus
FirmaWird je Umgebung ermittelt, als companyId gesendet, und es können bis zu 300 in einer sein. Größere Kunden sind hier der Normalfall

Die Obergrenze von 300 Firmen aus Microsofts Betriebsgrenzen, geprüft am 7. August 2026. Die Ermittlungsendpunkte und die zwei Query-Parameter aus der maesn-Dokumentation zu Business Central, die festhält, dass environmentName und companyId die Werte sind, die ein Business-Central-Aufruf tragen muss.

Über maesn geschieht die Ermittlung beim Verbinden. Ihr Code tut dafür nichts. Business Central gehört zu den Systemen auf dem interaktiven Fluss, Ihr Kunde wählt also Umgebung und Firma auf einer Auswahlseite, und beide werden mit der Verbindung gespeichert.

Wo der Fluss nicht verwendet wird, werden sie als Query-Parameter environmentName und companyId übertragen. Wie sich das über Systeme hinweg verallgemeinern lässt, ist Unified Authentication.

Business Central ist eines der Zielsysteme, die für den interaktiven Fluss in der maesn-Authentifizierung gelistet sind, geprüft am 7. August 2026.

Wenn Sie die Objektabdeckung, die Entra-App-Registrierung und den AppSource-Eintrag an einer Stelle brauchen, ist das die Microsoft Dynamics 365 Business Central Schnittstelle. Was folgt, ist das, was die Plattform tut, nachdem Sie verbunden sind.

Das Problem

Welche Business-Central-Objekte Ereignisse senden

Das ist der Teil, den Business Central wirklich gut kann. Es sendet native Ereignisse, und das ist ungewöhnlich: Bei den meisten Buchhaltungsplattformen lesen Sie nach Zeitplan und vergleichen das Ergebnis mit dem, was Sie schon hatten.

Ein Abonnement gilt der Ressource, der Ereignistyp gehört nicht dazu. Eine Registrierung liefert also alle vier Arten dafür. Diese Objekte sind heute über maesn für Ereignisse freigeschaltet, und weitere lassen sich für einen Anwendungsfall zuschalten, der sie braucht.

Vier Ereignistypen, je ein Abonnement
Heute für Ereignisse freigeschaltete ObjekteEreignistypen
Konten, Gutschriften, Kunden, Dimensionen, Ausgaben, Rechnungen, Artikel, Buchungszeilen, Angebote, Kundenaufträge und LieferantenCREATED, UPDATED, DELETED und COLLECTION

Ressourcen und Ereignistypen aus der maesn-Dokumentation zu Business Central, geprüft am 7. August 2026.

Ein Objekt sendet Ereignisse, bevor sein Lesezugriff freigeschaltet ist

Bei Ausgaben ist das Senden von Ereignissen freigeschaltet, der Lesezugriff steht auf Anfrage. Ein Ereignis kommt an, und der Folgeaufruf ist noch nicht freigeschaltet. Das klären Sie besser im Onboarding, denn die Alternative ist, es während eines Vorfalls zu tun. Exact Online hat dieselbe Form bei Bankkonten.

Das Problem

Jedes Abonnement läuft nach drei Tagen ab

Hier steht der Satz, der ändert, wie Sie bauen. Microsoft wörtlich: Abonnements laufen nach drei Tagen ab, wenn sie nicht vorher erneuert werden. Abonnements werden erneuert, indem eine PATCH-Anfrage an das Abonnement gesendet wird. Die Frist ist am Abonnement selbst ablesbar, als expirationDateTime.

Ein Abonnement ist damit ein wiederkehrender Auftrag mit einer 72-Stunden-Frist, und er muss für jede Ressource laufen, für jede Firma, für jeden Kunden, dauerhaft.

Ein Abonnement, eine Ressource, eine Firma72 Stunden
  1. 1POST /subscriptions

    Sie registrieren die Ressource, für die Sie Ereignisse wollen.

  2. 2GET ?validationToken=…eingehend

    Business Central ruft Ihren Endpunkt auf und erwartet das Token mit einem 200 zurück.

  3. 3POST Ihr Endpunkteingehend

    Ereignisse kommen als Array an: angelegt, geändert, gelöscht oder gesammelt.

  4. 4PATCH /subscriptions/{id}

    Vor Stunde 72, und sie löst denselben Handshake erneut aus.

Verpassen Sie Schritt 4, und das Abonnement ist schlicht weg. Es kommt kein Fehler, weil nichts fehlgeschlagen ist. Die Ereignisse hören auf.

Registrierung und Erneuerung haben dieselbe Form, und die Schleife hat alle 72 Stunden eine Frist.

Die Erneuerung ist außerdem kein stiller PATCH. Microsoft verlangt den Validierungs-Handshake beim Anlegen und bei der Erneuerung: Business Central ruft Ihre Benachrichtigungs-URL mit einem validationToken im Query-String auf, und Sie müssen dieses Token im Body mit einem 200 zurückgeben.

Ein Endpunkt, der während eines Deployment-Fensters nicht erreichbar ist, kostet Sie deshalb die Erneuerung. Und eine fehlgeschlagene Erneuerung erzeugt nirgends einen Fehler, weil nichts fehlgeschlagen ist. Die Ereignisse kommen einfach nicht mehr an.

Über maesn ist dieser Auftrag nicht Ihrer. Die bei Business Central registrierte URL ist unsere, Ihr Endpunkt ist bei uns registriert, und die Erneuerung samt dem Handshake, der dazugehört, läuft auf unserer Seite. Bei Ihrem Endpunkt kommt das Ereignis an.

Die Erneuerung und der Handshake, den sie auslöstHTTP
PATCH /api/v2.0/subscriptions('{id}')
→ 200 { "expirationDateTime": "2026-01-29T08:48:40Z" }
 
# bevor diese Antwort ankommt, ruft Business Central Sie auf:
POST https://ihr-endpunkt?validationToken=abc123
← 200 abc123 # das Token, im Body. Kein Token, keine Erneuerung.

Die Form der Anfrage, der Token-Austausch und der Ablauf nach drei Tagen aus Microsofts Webhook-Dokumentation, geprüft am 7. August 2026. Pfade zur Lesbarkeit gekürzt.

Die Obergrenze, die die meisten Teams spät treffen

Eine Umgebung darf 200 Webhook-Abonnements halten, gezählt über jede App, die sie abonniert, und Business Central erlaubt bis zu dreihundert Firmen in einer Umgebung. Abonnements werden je Ressource und je Firma gezählt, die zwei Grenzen treffen sich also früher, als jede für sich vermuten lässt.

Die praktische Folge ist, dass Sie bei einem großen Kunden nur die Ressourcen abonnieren, die Sie tatsächlich nutzen, und das entscheiden Sie im Onboarding.

Die Grenze von 200 Abonnements aus den Betriebsgrenzen für Business Central online, Abschnitt OData request limits per environment, geprüft am 7. August 2026.

Wie maesn es löst

Ein Sammelereignis trägt einen Zeitraum und keine Datensatz-ID

Business Central hat einen vierten Ereignistyp, den die anderen Systeme nicht haben, und auf ihn sollten Sie Ihren Entwurf auslegen. Ändern sich mehrere Datensätze einer Ressource kurz hintereinander, hält es sie zurück und sendet ein einzelnes COLLECTION-Ereignis, das einen Zeitraum trägt.

Das Ereignis sagt Ihnen also, wann sich etwas geändert hat, und nicht was. Das ist die eine Stelle im einheitlichen Payload, an der filterDate gefüllt ist, und die Dokumentation sagt es in einem Kommentar am Feld: nur für Sammelereignistypen unterstützt.

Jedes System füllt resource und resourceId. Diese zwei optionalen Felder sind es, die sich unterscheiden
SystemfilterDateuserId
Business Centralbei Sammelereignissen gefülltnull
Xeronullgefüllt
Exact Onlinenullnull
Lexware Officenullnull

Jede Zeile aus der eigenen Seite des jeweiligen Systems in der maesn-Dokumentation, geprüft am 7. August 2026. Jeder der vier Beispiel-Bodies trägt resource und resourceId; die zwei Spalten oben sind die Felder, die ein System zusätzlich ergänzen kann, und jede Doku kennzeichnet ihr eigenes null mit dem Grund. Ein null ist hier eine Tatsache über das Quellsystem und keine Lücke im Modell, und genau dafür gibt es ein Common Data Model.

Was ankommt, und der eine Aufruf, der es auflöstJS
[{
"eventType": "COLLECTION",
"filterDate": "2026-01-26T08:48:40Z", // nur bei Sammelereignissen
"resource": "CUSTOMER",
"resourceId": null,
"userId": null // hier nicht unterstützt
}]
 
// mit einem gefilterten Lesevorgang gegen die einheitliche Schnittstelle auflösen
GET /customers?lastModifiedAt=2026-01-26T08:48:40Z

Feldnamen aus der maesn-Dokumentation zu Business Central, deren Beispiel-Body ein UPDATED-Ereignis ist. Die Form des Sammelereignisses hier ist aus dem eigenen Satz jener Seite abgeleitet, statt einzelne IDs zu senden, liefert ein Collection-Event einen Datumsbereich. Die Doku zeigt kein Beispiel für ein Sammelereignis. Ereignisse kommen als Array an, weil Microsoft Benachrichtigungen aus mehreren Abonnements in eine Zustellung packen kann.

Dieser Lesevorgang ist Ihrer. maesn registriert das Abonnement, normalisiert den Payload und übergibt Ihnen den Zeitraum. Die Dokumentation ist eindeutig, dass der Listen-Endpunkt mit dem gelieferten filterDate aufgerufen werden muss, und es ist ein gefilterter Aufruf gegen dieselbe Schnittstelle, die Sie ohnehin nutzen, und nicht gegen Business Centrals eigene Filtersyntax.

Zwei kleinere Dinge im selben Payload. Ereignisse kommen als Array an, auch wenn es nur eines ist, ein Handler für ein einzelnes Objekt bricht also in der ersten Minute unter Last. Und resourceId ist bei einem Sammelereignis per Definition leer, was sich im Code zu prüfen lohnt. Die Abonnement-Mechanik selbst ist auf jedem System derselbe Aufruf, und das sind Unified Webhooks.

Wie maesn es löst

Fünf Anfragen gleichzeitig, und vier Arten, ein Nein zu bekommen

Was Business Central veröffentlicht, ist ein Warteschlangenmodell, und der Unterschied zählt, weil dieselbe Ursache verschiedene Statuscodes erzeugt, je nachdem, wo Ihre Anfrage stand, als sie abgebrochen wurde.

Eine Umgebung, in einem beliebigen Moment100 Verbindungen
5
in Verarbeitung. Das Maximum, das gleichzeitig läuft.
95
wartend. In der Warteschlange. Eine Anfrage, die 8 Minuten wartet, wird mit 503 verworfen.
101
abgewiesen. Jenseits von 100 Verbindungen ist die Antwort sofort ein 429.

Ein vierter Code bedeutet etwas ganz anderes. 408 ist eine einzelne Anfrage, die über 8 Minuten lief, und sie sagt nichts über die Last.

Fünf in Bearbeitung, fünfundneunzig wartend, und die Antwort ändert sich danach, wo eine Anfrage steht, wenn sie scheitert.
Welche Grenze welchen Code erzeugt
GrenzeWertCode
Gleichzeitig verarbeitete Anfragen5 je Umgebungkein Code, sie reiht sich ein
Anfragen in der Warteschlange95, nach 8 Minuten verworfen503
Gleichzeitige Verbindungen100429
Anfragen je Minute600 in der Produktion, 300 in einer Sandbox429
Anfragen je Benutzer6.000 in einem gleitenden 5-Minuten-Fenster429
Dauer einer Anfrage8 Minuten408
Entitäten in einer Antwort20.000413

Jede Zeile aus den Betriebsgrenzen für Business Central online, geprüft am 7. August 2026. Beachten Sie die Zeile zu den Anfragen je Minute: Die Sandbox ist die langsamere der beiden, eine Lastannahme aus einer Testumgebung fällt also zu optimistisch aus.

Zwei davon ändern, wie Sie blättern. Eine Antwort darf bis zu 20.000 Entitäten tragen, bevor Business Central sie mit 413 ablehnt, was großzügig ist, und eine einzelne Anfrage darf acht Minuten laufen, bevor sie mit 408 abgebrochen wird, was es nicht ist.

Ein breiter ungefilterter Lesevorgang scheitert also eher an der Zeit als an der Größe, und die Abhilfe ist ein engerer Filter. Eine kleinere Seite ändert daran nichts. Wie dieselbe Frage über Systeme hinweg aussieht, ist Unified Pagination and Filtering.

Der 429 erreicht Sie. Nur die asynchronen Endpunkte von maesn fangen Lastspitzen ab, das Backoff gegen Business Central bleibt also in Ihrem Code. Diese vier Codes richtig einzuordnen ist der größte Teil dieser Arbeit, und es ist auf jedem System dasselbe Problem, weshalb es im Unified Error Handling sitzt.

Was Sie bekommen

Business Central macht eine Rechnungszeile zu einem eigenen Datensatz

Business Central stellt Rechnungszeilen als eigenständige Datensätze bereit, lesbar, anlegbar und änderbar. Auf den meisten Buchhaltungssystemen ist eine Rechnung ein Dokument, das Sie in einem Stück zusammensetzen und buchen, und die Zeile hat keine eigene Adresse.

Das ist eine echte Fähigkeit und eine echte Portabilitätsfalle. Code, der einer bestehenden Rechnung eine Zeile hinzufügt, funktioniert hier und hat auf einem System, das nur ganze Dokumente annimmt, läuft er ins Leere, er gehört also hinter eine Fähigkeitsprüfung und aus Ihrem gemeinsamen Schreibpfad heraus.

In die andere Richtung müssen ein Kopf und seine Zeilen nicht zwei Aufrufe sein. Business Central unterstützt OData $expand, auch verschachtelt, die Zeilen kommen also mit dem Dokument zurück.

Kopf und Zeilen in einem AufrufHTTP
GET .../salesInvoices?$expand=salesInvoiceLines
→ 200 je Treffer ein Dokument, jedes mit seinen Zeilen daran
 
# verschachtelt geht auch, eine Ebene tiefer
GET .../journals?$expand=journalLines($expand=attachments)

$expand ist Standard-OData und in Microsofts API-Referenz dokumentiert. Es hat nichts mit den AL-Query-Objekten von Business Central zu tun, die ein anderes Konstrukt sind und häufig verwechselt werden.

Löschungen und der Kontenplan

Kein Objekt unterstützt Löschen auf diesem System, und bei Accounts ist Lesen die einzige Richtung: Den Kontenplan lesen Sie hier nur. Beides sollten Sie wissen, bevor Sie einem Kunden eine Zwei-Wege-Synchronisation seines Hauptbuchs versprechen.

Was Sie bekommen

Vorlagen im Mandanten entscheiden, ob ein Anlegen gelingt

Das ist der Fehler, der beim Kunden auftritt und nicht im eigenen Mandanten, und der Grund dafür ist, dass der Aufruf identisch ist, der Mandant nicht.

Wenn Sie einen Kunden, einen Lieferanten oder eine Rechnung anlegen, füllt Business Central Pflichtfelder aus Vorlagen, die innerhalb des Mandanten auf der Seite API Setup konfiguriert sind. Buchungsgruppen, Steuerkonfiguration und Dokumentvorgaben kommen von dort. Die maesn-Dokumentation sagt es unumwunden: Einige Pflichtfelder werden von diesen Vorlagen befüllt und lassen sich über die Schnittstelle überhaupt nicht setzen.

Ein Anlegen, das in Ihrer Testumgebung funktioniert, kann also bei einem Kunden fehlschlagen, weil dessen Vorlagen fehlen oder anders konfiguriert sind, und Microsofts Vorgaben sind über Lokalisierungen hinweg nicht identisch. Lokalisierte Fassungen ergänzen je Markt eigene Felder, Steuerregeln und Anforderungen an die elektronische Rechnung.

Für das Onboarding folgen daraus zwei Dinge. Prüfen Sie vor dem ersten Live-Aufruf die Vorlagen für jedes Objekt, das Sie anlegen wollen, und behandeln Sie einen Fehlschlag beim Anlegen als Konfigurationsfrage, bevor Sie ihn als Fehler in Ihrem Payload behandeln.

Das Verhalten von API Setup aus der maesn-Dokumentation zu Business Central, geprüft am 7. August 2026.

Die Arbeitsteilung

Was maesn übernimmt, und was auf Ihrer Seite bleibt

maesn normalisiert die Form der Integration. Die Regeln der Plattform bleiben, wie sie sind, und drei Dinge wandern in dem Moment auf unsere Seite, in dem Sie verbinden:

  • Das Abonnement, je Kunde. Ein Aufruf legt es an, mit dem Endpunkt, auf dem Sie Ereignisse wollen, und der Ressource, die Sie beobachten wollen, und ein Aufruf entfernt es. Sie schreiben nicht gegen die Abonnement-Ressource von Business Central.
  • Der Payload, in einer Form. Jedes Ereignis kommt im selben Umschlag an wie der Rest Ihrer Integrationen, und ein Feld, das dieses System nicht unterstützt, kommt als ausdrückliches null zurück und verschwindet nicht.
  • Die Umgebung und die Firma. Auf dem interaktiven Fluss wählt Ihr Kunde beide, und sie werden mit der Verbindung gespeichert, Ihr Code muss sie also nie ermitteln.
  • Die Erneuerung nach drei Tagen. Unsere URL ist die, die bei Business Central registriert ist, der PATCH vor jedem Ablauf und der Validierungs-Handshake, den er auslöst, laufen also hier. Ein Deployment-Fenster auf Ihrer Seite kostet Sie kein Abonnement.

Anlegen und Löschen des Abonnements, die Felder für Ressource und Callback und der Ereignis-Body aus der maesn-Dokumentation zu Business Central; die Auswahl von Umgebung und Firma aus der maesn-Authentifizierung. Beide geprüft am 7. August 2026.

Fünf Dinge bleiben bei Ihnen, und es ist günstiger, das jetzt zu wissen als nach dem ersten Kundengespräch.

  • Der Lesevorgang nach einem Sammelereignis. Wir übergeben Ihnen den Zeitraum im normalen Umschlag. Ihn in Datensätze zu verwandeln ist ein gefilterter Aufruf, und der ist Ihrer.
  • Die Ratenbegrenzung erreicht Sie weiterhin. Nur die asynchronen Endpunkte von maesn fangen Lastspitzen ab, der 429 von Business Central kommt also in Ihrem Code an. Was der asynchrone Weg abdeckt und was nicht, ist Asynchronous Processing.
  • Die Entra-App-Registrierung braucht den Administrator Ihres Kunden. Anwendungsberechtigungen, delegierte Berechtigungen und eine Administratorzustimmung sind Schritte, die nur jemand mit den Rechten in diesem Verzeichnis abschließen kann. Wir gehen sie mit Ihnen durch, erteilen können wir sie aber nicht.
  • API Setup liegt in Business Central. Wir können Ihnen sagen, welche Vorlagen ein Anlegen braucht. Konfiguriert werden sie im Mandanten des Kunden.
  • Löschungen gibt es hier nicht. Kein Objekt auf diesem System unterstützt eine, Korrekturen werden also als neue Dokumente gebucht. Bauen Sie diesen Weg von Anfang an.
Wo Sie zuerst etwas kaputt machen sollten

Ein Microsoft-365-Konto verschafft Ihnen eine kostenlose Business-Central-Umgebung mit einer Demo-Firma und vollem Schnittstellenzugang, und sie verhält sich wie die Produktion, weil sie eine echte Umgebung ist und kein Modus. Denken Sie daran, dass sie auf 300 Anfragen je Minute begrenzt ist gegenüber 600 in der Produktion. maesn betreibt außerdem Sandboxes für jedes unterstützte System, falls der Weg über Microsoft Ihnen nicht offensteht.

FAQ

Häufige Fragen

Wie lange gilt ein Webhook-Abonnement in Business Central?

Drei Tage. Microsoft dokumentiert, dass Abonnements ablaufen, wenn sie nicht vorher durch einen PATCH erneuert werden, und die Frist ist als expirationDateTime am Abonnement ablesbar. Die Erneuerung löst denselben Validierungs-Handshake aus wie die ursprüngliche Registrierung, ein Erneuerungsauftrag braucht also einen erreichbaren Endpunkt und nicht nur einen Zeitgeber.

Wie viele Webhook-Abonnements kann eine Umgebung haben?

Zweihundert, je Umgebung, über jede App hinweg, die sie abonniert. Abonnements werden je Ressource und je Firma gezählt, die Obergrenze kommt also früher bei einem Kunden, der viele Firmen in einer Umgebung betreibt, und Business Central erlaubt bis zu dreihundert davon. Prüfen Sie das besser an Ihrem größten Kunden als an Ihrem ersten.

Was ist der Webhook-Handshake von Business Central?

Nachdem Sie ein Abonnement registriert haben, ruft Business Central Ihre Benachrichtigungs-URL mit einem validationToken im Query-String auf. Sie geben dieses Token im Antwort-Body mit einem 200 zurück, und erst dann ist das Abonnement aktiv. Microsoft verlangt das beim Anlegen und bei jeder Erneuerung.

Warum antwortet Business Central mit 503 und nicht mit 429?

Sie beschreiben verschiedene Sättigungen. Eine Umgebung verarbeitet fünf OData-Anfragen gleichzeitig und stellt bis zu fünfundneunzig weitere in die Warteschlange. Eine wartende Anfrage, die acht Minuten steht, wird mit 503 verworfen. Jenseits von hundert Verbindungen ist die Antwort sofort ein 429, und 408 ist eine einzelne Anfrage, die selbst zu lange lief.

Wie viele Schnittstellenaufrufe kann ich gegen Business Central machen?

Sechshundert Anfragen je Minute und Umgebung in der Produktion und dreihundert in einer Sandbox, dazu eine Obergrenze von sechstausend je Benutzer in einem gleitenden Fünf-Minuten-Fenster. Die Testumgebung ist die langsamere der beiden, eine Lastannahme aus einer Sandbox fällt also zu optimistisch aus.

Kann ich Rechnungszeilen in Business Central einzeln anlegen?

Ja. Rechnungszeilen sind als eigenständige Datensätze lesbar, anlegbar und änderbar, was ungewöhnlich ist. Auf den meisten Buchhaltungssystemen ist eine Rechnung ein Dokument, das Sie in einem Stück zusammensetzen und buchen, Code gegen Business Central lässt sich also nicht unverändert portieren.

Warum gelingen meine POST-Anfragen an Business Central im Test und scheitern in der Produktion?

Meistens an API Setup. Business Central füllt Pflichtfelder beim Anlegen aus Vorlagen, die innerhalb des Mandanten konfiguriert sind, und diese Vorgaben unterscheiden sich je Mandant und je Lokalisierung. Der Aufruf bleibt gleich, die Mandantenkonfiguration unterscheidet sich, und deshalb zeigt sich das zuerst beim Kunden und nicht in Ihrer eigenen Umgebung.

Einmal bauen, auf der Unified API.

Erneuerungsaufträge, Handshakes, Warteschlangenmodelle und mandantenabhängige Vorgaben sind auf jedem Buchhaltungssystem dasselbe Problem. Lösen Sie sie einmal mit maesn, und das nächste System öffnet sie nicht wieder.