Darstellung
System – Vollständige API-Referenz
Fach-API für Mandant, Benutzer, Rollen, Sperren, E-Mail-Konten und Hintergrundjobs. Basis ist https://core-backend.reybex.com/api (Staging: https://io-staging-partner.reybex.com/api). Authentifizierung wie im API: --header "authorization: Basic $TOKEN".
Der Integrationsbenutzer ist die Anmeldung aller Fach-APIs. Belege, Artikel und FiBu stehen in den jeweiligen Modul-Seiten.
Der schreibende Weg des Benutzers ist POST /api/user/. Der Körper ist der Benutzer selbst, ohne Umschlag. Leere Objekte werden zu null.
1. Grundlagen
| Objekt | Rolle |
|---|---|
Company | Mandant |
User | Anmeldung |
Role | Rolle. ROLE_API hängt die API an einen API-Benutzer |
DomainLocker | Sperre eines Datensatzes |
EmailAccount | Postfach |
BackgroundJob | Hintergrundlauf |
Die Zahlen in den Beispielen sind Beispiel-Ids eines Mandanten. 8 ist eine fachliche Rolle. ROLE_API setzt userType apiUser selbst.
userType standardUser ist der Standard. apiUser ergänzt die Rolle ROLE_API. returnUser ist der Retourenbenutzer.
1.1 Suchschlüssel
| Ziel | Suchschlüssel |
|---|---|
| Land | code, sonst name |
| Rolle | id |
| Lager am Benutzer | code, sonst name |
1.2 Antwort- und Fehlerformat
Speichern liefert den Benutzer. Lesen kapselt data und meta mit requiredFields der Feldrechte.
| Situation | Körper |
|---|---|
| Benutzer nicht gefunden | HTTP 404 |
| Passwort und Wiederholung weichen ab | message.password.newpassword |
| Benutzer kopieren aus einem anderen Mandanten | der Quellbenutzer muss dem Mandanten gehören |
| Fehlende Anmeldung | HTTP 401 |
2. Benutzer
POST /api/user/ legt an, wenn keine id im Körper steht. Benutzername und E-Mail werden bei einer Neuanlage geprüft.
newPassword und renewPassword müssen gleich sein. Dann wird password gesetzt. Ohne Passwort und mit isNewUser true vergibt die API ein Passwort.
2.1 Felder
| Feld | Bedeutung |
|---|---|
username | Anmeldung |
firstname, surname | Name |
email | |
language | Sprache, zum Beispiel de |
enabled | Aktiv. Standard true |
userType | standardUser, apiUser oder returnUser |
userRoles | Liste der Rollen-Ids |
newPassword, renewPassword | Passwort, beide gleich |
isDelete | Logisch gelöscht |
2.2 Pflichtfelder
Auflösung, wenn ein Pflichtfeld fehlt
Die API setzt Pflicht-Referenzen nicht von selbst. Fehlt ein Feld, in dieser Reihenfolge füllen. Der erste Treffer gilt.
- Angabe – Wert aus dem Auftrag für dieses Feld.
- Vorlage – das Passwort nicht aus einem bestehenden Benutzer übernehmen. Rechte kopiert
POST /api/user/copyUser. Ist eine Vorlage genannt, derenidancopyUsergeben. - Standard – Wert aus der Tabelle.
- Domäne –
GET /api/role/und die Id der fachlichen Rolle inuserRolessetzen.ROLE_APIkommt überuserTypeapiUser. - Stopp – Benutzername oder E-Mail fehlt. Benutzer nicht anlegen.
| Feld | Pflicht | Vorlage | Standard | Domäne |
|---|---|---|---|---|
username | ja | nicht übernehmen | — | — |
email | ja | — | — | — |
userType | nein | — | apiUser für eine Schnittstelle | — |
language | nein | language | de | — |
newPassword | nein | nicht übernehmen | bei isNewUser true vergibt die API eines | — |
userRoles | nein | über copyUser | ROLE_API bei apiUser | role |
2.3 API-Benutzer
json
{
"username": "schnittstelle",
"firstname": "API",
"surname": "Nordlicht",
"email": "api@nordlicht.example",
"language": "de",
"enabled": true,
"userType": "apiUser",
"userRoles": [8],
"newPassword": "ein-langes-passwort",
"renewPassword": "ein-langes-passwort",
"isNewUser": true
}8 ist eine fachliche Rolle dieses Mandanten. ROLE_API kommt dazu.
Lesen: GET /api/user/{id}. Der eigene Benutzer: GET /api/user/?isMyUser=true. Transaktionen: GET /api/user/transactions.
Passwort später: POST /api/user/changePassword.
Kopieren im selben Mandanten: POST /api/user/copyUser.
Löschen ist logisch und sperrt die Anmeldung: DELETE /api/user/ mit { "ids": [501] }. Antwort { "ids": [501] }.
Sitzungen beenden: POST /api/user/invalidateSessions. Angemeldete Benutzer: GET /api/user/loggedUsersList.
3. Mandant, Rolle, Sperre
Mandant lesen: GET /api/company/{id}. Speichern: POST /api/company/. Hausbank: POST /api/companyBank/.
Rollen: GET /api/role/{id} und POST /api/role/. Rollen mit Benutzern: GET /api/role/rolesAndUsers.
Sperren: GET /api/domainLocker/{id}. Lösen: GET /api/domainLocker/unlock. Alle: GET /api/domainLocker/unlockAll. Mehrere löschen: POST /api/domainLocker/deleteDomainLockers.
Feldrechte: POST /api/company/listPropertyAccess und POST /api/company/updatePropertyAccess.
Druckprotokoll: GET /api/printLog/printLogList. Hintergrundjobs: GET /api/backgroundJob/. Abbrechen: POST /api/backgroundJob/cancel. Datei: GET /api/backgroundJob/download/{id}.
Audit: GET /api/sysAuditLog/{id}.
3.1 Mandantenkopie, Drucker, Archiv
Übernahme in den Kindmandanten: POST /api/crossTenant/copyDomainsToChildTenants. Transfer-Einträge: POST /api/crossTenant/createDomainTransferEntries. Filter der kopierten Felder: POST /api/crossTenantPropertyCopyFilter/.
Drucker: POST /api/sysPrinter/. Standard: POST /api/sysPrinter/setDefaultPrinter. Zuweisen: POST /api/sysPrinter/assignPrinter.
Archiv: GET /api/archivedDocument/{id}. Übergeben: POST /api/archivedDocument/transferDocuments. FiBu-Beleg archivieren: POST /api/archivedDocument/archiveFinHead.
Transaktionsrecht: POST /api/transactionRight/. Menü: POST /api/drawerMenu/.
4. E-Mail-Konto
POST /api/emailAccount/ speichert das Konto. Prüfen: POST /api/emailAccount/testConnection. Office 365: POST /api/emailAccount/office365 liefert die Anmelde-URL, GET /api/emailAccount/office365 holt das Token.
Senden: POST /api/email/sendEmail. Test: POST /api/email/sendCheckEmail.
Workflow: POST /api/emailWorkflow/. Senden: POST /api/emailWorkflow/sendEmailWorkflow mit ids. Antwort { "success": true }. Der Aufruf gilt für den angemeldeten Mandanten. Vorlage: POST /api/emailTemplate/.
4.1 Dateien, Schalter, Mandantendaten
Konfiguration lesen: GET /api/configuration/{id} liefert den ersten Konfigurationssatz. Die Id im Pfad wählt ihn nicht aus.
Schalter des Mandanten: GET /api/featureFlag. Ein Mandant: GET /api/featureFlag/{tenantId}. Umschalten global: POST /api/featureFlag/global/toggle mit feature und enabled. Für einen Mandanten: POST /api/featureFlag/tenant/toggle mit feature, enabled und tenantId.
Datei am Host, nicht unter /api: GET /fileUploader/show/{id}, Vorschau GET /fileUploader/showPreview/{id}, Bild GET /fileUploader/showAsImage/{id}, externe Datei GET /fileUploader/showExternal/{filename}. Löschen DELETE /fileUploader/delete, wiederherstellen GET /fileUploader/restore, prüfen GET /fileUploader/validate.
Unter /api/common/: hochladen POST /api/common/ufile, lesen GET /api/common/ufile/{id}, löschen DELETE /api/common/ufile. Externe Datei POST /api/common/externalFile und DELETE /api/common/externalFile. Anhänge GET /api/common/getAttachments. Übersetzung GET /api/common/localizationByCode und POST /api/common/localizationByCode. Entschlüsseln GET /api/common/fileDecrypt/{id}. ZLP nach PDF GET /api/common/zlpToPdf/{id}.
GET /api/companyData/ zählt die Mandantendaten. Kopie in die Staging-Datenbank: GET /api/companyData/copyTenantDataToStagingDb mit customerTenantId, Antwort { "success": true } oder false. Verkaufte Artikel rechnen: GET /api/companyData/calculateSoldMaterial, Antwort { "success": true }. Bestandsliste: GET /api/companyData/updateStockListForCompany mit tenantId. Löschen: DELETE /api/companyData/ mit dem Passwort des angemeldeten Benutzers und targetDomain. Falsches Passwort: user.password.wrong. Kein Benutzer: user.is.not.set. Kein Mandant: company.is.not.set. Ziel fehlt: company.delete.target.not.defined. Kein Admin: company.dont.allow.to.delete.data.or.not.admin.
5. Weitere Beispiele
5.1 Schnittstelle anmelden
- API-Benutzer anlegen, Abschnitt API-Benutzer.
GET /api/user/transactionsprüft die freigegebenen Transaktionen.- Diesen Benutzer im API als Basic-Token verwenden.
6. Endpoint-Katalog
| Methode | Pfad | Bedeutung |
|---|---|---|
GET | /api/user/{id} | Ein Benutzer oder die Liste |
POST | /api/user/ | Benutzer speichern |
DELETE | /api/user/ | Logisch löschen, Body ids |
POST | /api/user/copyUser | Benutzer im Mandanten kopieren |
POST | /api/user/changePassword | Passwort |
POST | /api/user/invalidateSessions | Sitzungen beenden |
GET | /api/company/{id} | Mandant |
POST | /api/company/ | Mandant speichern |
GET | /api/role/{id} | Rolle |
POST | /api/role/ | Rolle speichern |
GET | /api/domainLocker/unlock | Eine Sperre lösen |
GET | /api/backgroundJob/ | Jobs |
POST | /api/backgroundJob/cancel | Job abbrechen |
POST | /api/emailAccount/ | E-Mail-Konto |
POST | /api/emailAccount/testConnection | Verbindung |
POST | /api/email/sendEmail | E-Mail senden |
POST | /api/crossTenant/copyDomainsToChildTenants | In Kindmandanten kopieren |
POST | /api/sysPrinter/ | Drucker speichern |
POST | /api/sysPrinter/setDefaultPrinter | Standarddrucker |
POST | /api/archivedDocument/transferDocuments | Archiv übergeben |
POST | /api/transactionRight/ | Transaktionsrecht |
POST | /api/drawerMenu/ | Menü |
GET | /api/emailWorkflow/{id} | Ein Workflow |
POST | /api/emailWorkflow/ | Workflow speichern |
DELETE | /api/emailWorkflow/{id} | Workflow löschen |
GET | /api/emailWorkflow/getPropertiesByDomainName | Felder einer Domäne |
GET | /api/emailWorkflow/getValuesByProperty | Werte eines Feldes |
GET | /api/emailWorkflow/emailWorkflowQueue | Warteschlange |
POST | /api/emailWorkflow/sendEmailWorkflow | Senden, ids |
POST | /api/emailWorkflow/deleteFromEmailSendHistory | Historie löschen |
GET | /api/emailTemplate/{id} | Eine Vorlage |
POST | /api/emailTemplate/ | Vorlage speichern |
DELETE | /api/emailTemplate/{id} | Vorlage löschen |
DELETE | /api/emailTemplate/deleteEmailTemplateTranslationAttachment | Anhang einer Übersetzung |
GET | /api/configuration/{id} | Erste Konfiguration |
GET | /api/featureFlag | Schalter des Mandanten |
GET | /api/featureFlag/{tenantId} | Schalter eines Mandanten |
POST | /api/featureFlag/global/toggle | Global schalten, feature und enabled |
POST | /api/featureFlag/tenant/toggle | Mandant schalten, zusätzlich tenantId |
GET | /api/companyData/ | Daten zählen |
DELETE | /api/companyData/ | Daten löschen, Passwort und targetDomain |
GET | /api/companyData/copyTenantDataToStagingDb | Nach Staging kopieren |
GET | /api/companyData/calculateSoldMaterial | Verkaufte Artikel rechnen |
GET | /api/companyData/updateStockListForCompany | Bestandsliste, tenantId |
POST | /api/common/ufile | Datei hochladen |
GET | /api/common/ufile/{id} | Datei lesen |
DELETE | /api/common/ufile | Datei löschen |
POST | /api/common/externalFile | Externe Datei |
DELETE | /api/common/externalFile | Externe Datei löschen |
GET | /api/common/getAttachments | Anhänge |
GET | /api/common/localizationByCode | Übersetzung lesen |
POST | /api/common/localizationByCode | Übersetzung speichern |
GET | /api/common/fileDecrypt/{id} | Datei entschlüsseln |
GET | /api/common/zlpToPdf/{id} | ZLP nach PDF |
GET | /api/common/lookup | Nachschlagewerte |
GET | /api/common/salesDocTypeMask | Maske der Belegart |
GET | /api/common/shippingConfiguration | Versandkonfiguration |
POST | /api/common/imageInDesc | Bild in der Beschreibung |
POST | /api/common/changeAttachmentPrinted/{id} | Druckkennzeichen |
GET | /api/common/getPropertyAccessRights/{domainClassName} | Feldrechte |
GET | /api/common/databaseTables | Tabellen |
GET | /api/common/databaseFields | Felder |
GET | /api/common/structuredDbFields | Felder strukturiert |
GET | /api/common/setServerStatus | Serverstatus |
POST | /api/common/editorjsFileUpload | Editor-Datei |
POST | /api/common/inviteToReybexCommunity | Community-Einladung |
POST | /api/common/createSwissBill | Schweizer Rechnung |
GET | /fileUploader/show/{id} | Datei anzeigen |
GET | /fileUploader/showPreview/{id} | Vorschau |
GET | /fileUploader/showAsImage/{id} | Als Bild |
GET | /fileUploader/showExternal/{filename} | Externe Datei |
DELETE | /fileUploader/delete | Datei löschen |
GET | /fileUploader/restore | Wiederherstellen |
GET | /fileUploader/validate | Prüfen |
7. Häufige Fehler
| Situation | Ursache |
|---|---|
message.password.newpassword | newPassword und renewPassword sind verschieden |
| HTTP 404 | id des Benutzers unbekannt |
| Kopie schlägt fehl | der Quellbenutzer gehört zu einem anderen Mandanten |
| API antwortet 401 | Benutzer fehlt, ist gesperrt oder enabled ist false |
ROLE_API fehlt | userType ist nicht apiUser |
user.password.wrong | Passwort an DELETE /api/companyData/ stimmt nicht |
user.is.not.set | Kein angemeldeter Benutzer |
company.is.not.set | Kein Mandant |
company.delete.target.not.defined | targetDomain fehlt |
company.dont.allow.to.delete.data.or.not.admin | Der Benutzer darf Mandantendaten nicht löschen |