Zum Inhalt springen

Ereignistypen: Organisation, Konten, Abrechnung

Die abonnierbaren Ereignistypen aus Organisation, Speicher-Verbindungen, Zugang, Konten und delegiertem Zugang, Sitzungen, Abrechnung und Beitritt mit ihrem Nutzlast-Kern.

11 Minuten LesezeitWebhooksStand: 25.10.2026

Auf dieser Seite

Bevor Sie loslegen

Für wen
Wer die Ereignisse eines Endpunkts wählt oder den Rumpf einer Zustellung liest.
Voraussetzung
keine zum Lesen, zum Abonnieren ein Endpunkt unter Einstellungen › Organisation › Webhooks.

Die abonnierbaren Ereignistypen aus Organisation, Speicher-Verbindungen, Zugang, Konten, Sitzungen, Abrechnung und Beitritt — zum Nachschlagen, wenn Sie einen Endpunkt anlegen oder eine Zustellung deuten.

So lesen Sie die Tabellen

  • Ereignistyp ist die Zeichenkette, die Sie beim Endpunkt abonnieren. Sie kommt bei jeder Zustellung in der Kopfzeile X-Event-Type an. Statt einzelner Typen dürfen Sie auch einen ganzen Bereich abonnieren (composition.*) oder mit * alles. Mehr Formen gibt es nicht, und alles andere weist der Server ab, siehe Den Ereigniskatalog über die API abrufen.
  • Nutzlast-Kern nennt zwei bis vier der wichtigsten Felder, die im Rumpf der Zustellung stehen. Es ist ein Auszug. Die vollständige Form bestimmt der jeweilige Bereich, und sie kann weitere Felder tragen. Zeitpunkt, Ereigniskennung und Auslöser reisen nicht im Rumpf.
  • Wann es entsteht ist ein Halbsatz zur Einordnung, keine Aussage über Häufigkeit.

Das Portal bietet unter Abonnierte Ereignisse genau die Typen dieser Seite und der Seite Ereignistypen: Inhalte, Programme, Geräte, Apps zur Auswahl — dieselbe Liste, die GET /v1/webhooks/event-types liefert. Alles andere lässt sich nicht abonnieren, das Anlegen eines Endpunkts weist es ab. Welche Typen das sind, steht unter Was nie ankommt. Zugestellt wird nur, was im Kontext Ihrer Organisation entsteht.

Die Ereignistypen

Organisation

Lebenszyklus der Organisation, Marke, eigene Adresse und Unternehmens-Anmeldung. tenancy.tenant.suspended und .deleted sind die Auslöser, an denen weitere Bereiche nachziehen.

Ereignistyp Nutzlast-Kern Wann es entsteht
tenancy.tenant.created tenantId, slug, displayName Eine Organisation wurde angelegt.
tenancy.tenant.updated tenantId, changedFields Stammdaten der Organisation wurden geändert.
tenancy.tenant.suspended tenantId, reason, suspendedById, deletionDueAt Die Organisation wurde gesperrt, und deletionDueAt nennt den Löschtermin.
tenancy.tenant.reactivated tenantId, reactivatedById Eine Sperre wurde aufgehoben.
tenancy.tenant.frozen tenantId, reason, frozenById Die Organisation wurde eingefroren.
tenancy.tenant.unfrozen tenantId, unfrozenById Das Einfrieren wurde aufgehoben.
tenancy.tenant.deletion-warned tenantId, deletesAt, daysLeft Warnung vor der Löschung, daysLeft nennt die Resttage.
tenancy.tenant.deleted tenantId, slug, deletedById Die Organisation wurde gelöscht.
tenancy.branding.updated tenantId, changedFields Marke (Logo, Farben) wurde geändert.
tenancy.custom-domain.verified tenantId, customDomain Eine eigene Portal-Adresse wurde bestätigt.
tenancy.custom-domain.removed tenantId, domain Eine eigene Portal-Adresse wurde entfernt.
tenancy.sso.configured tenantId, providerId, protocol, status Die Unternehmens-Anmeldung wurde eingerichtet oder geändert.
tenancy.sso.disabled tenantId, providerId, protocol Die Unternehmens-Anmeldung wurde abgeschaltet.
tenancy.sso.domain-changed tenantId, providerId, domain, status Die Domain der Unternehmens-Anmeldung wurde geändert.
tenancy.sso.enforcement-changed tenantId, providerId, enforce, breakGlassUserIds Der Anmeldezwang wurde ein- oder ausgeschaltet.
tenancy.sso.break-glass-used tenantId, providerId, userId, email Ein Notfallkonto hat sich an der Unternehmens-Anmeldung vorbei angemeldet.

Speicher-Verbindungen

Dauervollmachten auf fremde Speicher-Konten. broken beantwortet die Frage, seit wann keine neuen Dateien mehr kommen.

Ereignistyp Nutzlast-Kern Wann es entsteht
cloud-connections.connection.connected connectionId, provider, accountLabel, repaired Ein Speicher-Konto wurde verbunden, und repaired unterscheidet Erstverbindung und Reparatur.
cloud-connections.connection.disconnected connectionId, provider, revocationAcknowledged Die Verbindung wurde getrennt.
cloud-connections.connection.broken connectionId, provider, reason Die Vollmacht trägt nicht mehr. Ab hier steht der Abgleich still. Kein Auslöser im Portal.

Zugang: Rollen und Freigaben

Rollen der Organisation und Freigaben auf einzelne Ressourcen.

Ereignistyp Nutzlast-Kern Wann es entsteht
access.role.created roleId, tenantId, name, permissions Eine Rolle wurde angelegt.
access.role.updated roleId, changedFields, newPermissions, newVersion Rechte oder Name einer Rolle wurden geändert.
access.role.deleted roleId, tenantId, requesterId Eine Rolle wurde gelöscht.
access.grant.created grantId, userId, resourceType, resourceId Eine Freigabe auf eine einzelne Ressource wurde erteilt.
access.grant.revoked grantId, userId, resourceType, resourceId Eine Freigabe wurde entzogen.
access.grant.expired grantId, userId, resourceId, expiredAt Eine befristete Freigabe ist abgelaufen.
access.permission-catalog.rebuilt tenantId, trigger, entryCount Der Rechtekatalog der Organisation wurde neu aufgebaut, und trigger nennt den Anlass.

Konten, Schlüssel und Geräte-Identitäten

Benutzerkonten, API-Schlüssel, SCIM-Zugänge, Anwendungen mit delegiertem Zugang und die Identität von Geräten. Die Konten und Schlüssel des Betreibers gehören nicht dazu, sie sind nicht abonnierbar (siehe Was nie ankommt).

Ereignistyp Nutzlast-Kern Wann es entsteht
identity.user.created userId, tenantId, email, initialRoles Ein Benutzerkonto wurde angelegt.
identity.user.updated userId, changedFields, newValues Profildaten eines Kontos wurden geändert.
identity.user.role.changed userId, previousRoles, newRoles Die Rollen eines Kontos wurden geändert.
identity.user.suspended userId, reason, cascadeSource Ein Konto wurde gesperrt.
identity.user.deleted userId, deletedById, pseudonymizationJobId Ein Konto wurde gelöscht, und die Pseudonymisierung ist angestoßen.
identity.user.pseudonymized userId, pseudonymId, entriesReplaced Personenbezogene Einträge eines gelöschten Kontos wurden ersetzt.
identity.user.mfa.enabled userId, tenantId, enabledAt Der zweite Faktor wurde eingerichtet.
identity.user.mfa.disabled userId, tenantId, disabledAt Der zweite Faktor wurde entfernt.
identity.user.mfa.recovery-codes.regenerated userId, tenantId, regeneratedAt Neue Wiederherstellungscodes wurden erzeugt.
identity.user.password-changed userId, via, changedAt Das Passwort wurde geändert, via nennt den Weg.
identity.api-key.minted apiKeyId, name, keyPrefix, scope Ein API-Schlüssel wurde erstellt.
identity.api-key.revoked apiKeyId, revokedById, reason Ein API-Schlüssel wurde widerrufen.
identity.scim-token.minted scimTokenId, tenantId, tokenPrefix, createdById Ein SCIM-Zugang für das Personalverzeichnis der Organisation wurde ausgestellt.
identity.scim-token.revoked scimTokenId, tenantId, revokedById, reason Ein SCIM-Zugang wurde widerrufen. Der Abgleich aus dem Personalverzeichnis steht damit still.
identity.oauth.client.registered clientId, name, redirectUris, registeredIp Eine fremde Anwendung hat sich für den delegierten Zugang angemeldet. Zugriff bekommt sie erst nach einer Einwilligung.
identity.oauth.client.blocked clientId, name, blockedById, reason, revokedGrants Der Plattformbetrieb hat eine Anwendung gesperrt, revokedGrants zählt die damit erloschenen Zugänge.
identity.oauth.client.unblocked clientId, name, unblockedById Die Sperre einer Anwendung wurde aufgehoben. Die erloschenen Zugänge kommen dadurch nicht zurück.
identity.oauth.grant.granted clientId, clientName, tenantId, userId, scopes Ein Konto hat einer Anwendung Rechte übertragen, sie gelten nur für diese Organisation.
identity.oauth.grant.denied clientId, clientName, tenantId, userId, requestedScopes Ein Konto hat die Anfrage einer Anwendung abgelehnt, es entstand kein Zugang.
identity.oauth.token.issued tokenId, clientId, userId, scopes, rotated Eine Anwendung hat ein Zugriffs- und ein Erneuerungs-Token erhalten, nach einer Einwilligung oder als Erneuerung (rotated).
identity.oauth.token.revoked clientId, userId, revokedGrants, reason Zugänge einer Anwendung wurden ungültig gemacht, reason nennt den Anlass.
identity.device.registered deviceId, certFingerprint, hardwareInfo Ein Gerät hat sich erstmals bei der Plattform gemeldet.
identity.device.cert.rotated deviceId, oldFingerprint, newFingerprint Das Zertifikat eines Geräts wurde erneuert.
identity.device.reconnected deviceId, reconnectedById, previousHardwareSerial Ein Web-Display wurde auf einen anderen Browser übertragen. Es bleibt gekoppelt.
identity.device.released deviceId, previousTenantId, reason, wipeLevel Ein Gerät hat Ihre Organisation verlassen, und seine Displays sind entfernt. reason nennt den Grund (reconnect, factory, removed, ops, tenant-deleted), wipeLevel die Stufe, mit der es sich leert.
identity.device.blocked deviceId, previousTenantId, reason, blockedAt Ein Gerät wurde als verloren gemeldet oder vom Betreiber gesperrt. Es gehört keiner Organisation mehr und kann sich nicht anmelden, bis die Sperre aufgehoben ist.
identity.device.reregistration-requested deviceId, tenantId, deviceName, requestedAt Ein gekoppeltes Gerät hat sich mit einem neuen Schlüssel angemeldet, vermutlich wurde es neu aufgesetzt. Es wartet, bis jemand in der Geräteakte entscheidet.
identity.device.reregistration-decided deviceId, decision, decidedById, allowedUntil Über ein neu gemeldetes Gerät wurde entschieden. decision ist keep (Displays behalten), reconnect (neu koppeln) oder block (sperren).
identity.renderer.minted rendererSessionId, playerId, expiresAt Eine Wiedergabe-Sitzung eines Displays wurde ausgestellt (Maschinenverkehr).
identity.renderer.revoked rendererSessionId, playerId, reason Eine Wiedergabe-Sitzung wurde entzogen (Maschinenverkehr).

Sitzungen und Anmeldung

Anmeldungen, Verlängerung von Sitzungen, Einmal-Links und das Handeln des Plattformbetriebs im Namen eines Kontos. sessions.session.theft-detected ist der Alarm bei einem wiederverwendeten Sitzungs-Token.

Ereignistyp Nutzlast-Kern Wann es entsteht
sessions.login.succeeded sessionId, userId, kind, method Eine Anmeldung ist gelungen, method nennt den Weg.
sessions.login.failed email, reason, ipAddress Eine Anmeldung ist gescheitert.
sessions.mfa.verified sessionId, userId, via Der zweite Faktor wurde bestätigt.
sessions.mfa.failed sessionId, userId, attemptCount Der zweite Faktor wurde falsch eingegeben.
sessions.session.refreshed sessionId, familyId, userId Eine Sitzung wurde verlängert (Dauerverkehr).
sessions.session.theft-detected sessionId, familyId, replayedHashPrefix Ein bereits verbrauchtes Sitzungs-Token wurde erneut vorgelegt.
sessions.session.terminated sessionId, userId, reason Eine Sitzung wurde beendet.
sessions.session.all-terminated userId, revokedCount, keptSessionId Alle Sitzungen eines Kontos wurden beendet.
sessions.password-reset.requested passwordResetId, subjectKind, purpose Ein Passwort-Zurücksetzen wurde angefordert.
sessions.password-reset.completed passwordResetId, userId, subjectKind Ein Passwort wurde über das Zurücksetzen neu gesetzt.
sessions.magic-link.requested magicLinkId, email, expiresAt Ein Anmeldelink wurde angefordert.
sessions.magic-link.consumed magicLinkId, sessionId, userId Ein Anmeldelink wurde genutzt.
sessions.impersonation.started operatorUserId, targetUserId, reason, expiresAt Der Plattformbetrieb handelt im Namen eines Kontos.
sessions.impersonation.ended operatorUserId, targetUserId, endedBy Das Handeln im Namen eines Kontos wurde beendet.

Abrechnung

Vertrag, Rechnungen, Zahlungsmittel und die freigeschalteten Funktionen. Ein Paketwechsel meldet sich zweimal: subscription.package-changed sagt, dass der Vertrag auf einem anderen Paket steht (bei jedem Wechsel), und feature-entitlements.changed sagt, dass sich einer der Anzeige-Schalter bewegt hat, und nennt in changedKeys, welcher. Getrennte Ereignisse für Auf- und Abstieg gibt es nicht — die Richtung steht in from und to.

Ereignistyp Nutzlast-Kern Wann es entsteht
billing.subscription.created subscriptionId, tenantId, status, billingCycle, currentPeriodEnd Ein Vertrag wurde angelegt.
billing.subscription.activated subscriptionId, tenantId, from (trial/past_due) Der Vertrag ist aktiv, from nennt den vorigen Zustand.
billing.subscription.past-due subscriptionId, graceUntil, reason (payment-failed/trial-ended) Zahlung ausgeblieben oder Testphase beendet. graceUntil nennt die Frist.
billing.subscription.grace-lapsed subscriptionId, tenantId, graceLapsedAt, suspendsAt Die Frist ist verstrichen, suspendsAt nennt die Sperre.
billing.subscription.trial-ending subscriptionId, tenantId, trialEndsAt, daysLeft Die Testphase endet bald, daysLeft nennt die Resttage.
billing.subscription.suspended subscriptionId, tenantId Der Vertrag wurde ausgesetzt.
billing.subscription.canceled subscriptionId, reason Der Vertrag wurde gekündigt.
billing.subscription.package-changed tenantId, from (nullable), to, at Der Vertrag steht auf einem anderen Paket. Es kommt bei jedem Wechsel, die Richtung steht in from und to.
billing.subscription.period-rolled subscriptionId, tenantId, periodStart, periodEnd, cameFromTrial Eine neue Abrechnungsperiode hat begonnen.
billing.subscription.cancel-scheduled subscriptionId, tenantId, effectiveAt, reason Eine Kündigung wurde zum Termin vorgemerkt.
billing.subscription.cancel-revoked subscriptionId, tenantId, at Eine vorgemerkte Kündigung wurde zurückgenommen.
billing.subscription.trial-extended subscriptionId, tenantId, days, trialEndsAt, reason Die Testphase wurde verlängert.
billing.subscription.license-conflict subscriptionId, tenantId, devices, licenses, deadline Die bezahlte Verringerung der gebuchten Displays ist wirksam, und es laufen mehr Geräte, als Displays gebucht sind. Die überzähligen laufen bis deadline weiter.
billing.subscription.license-conflict-enforced subscriptionId, tenantId, frozen, licenses Die Frist ist abgelaufen, frozen zählt die eingefrorenen Displays. Sie bleiben es, bis die Organisation Displays dazubucht oder ein Gerät abkoppelt.
billing.subscription.pending-change-failed subscriptionId, tenantId, kind (quantity/package), pendingQuantity, usedDisplays, effectiveAt Eine vorgemerkte Änderung ist nicht wirksam geworden, weil mehr Displays belegt sind, als sie vorsieht. Sie bleibt stehen und wirkt zum nächsten Periodenende.
billing.invoice.issued invoiceId, invoiceNumber, amountCents, currency Eine Rechnung wurde gestellt.
billing.invoice.paid invoiceId, invoiceNumber, amountCents, paidAt Eine Rechnung wurde bezahlt.
billing.invoice.payment-failed invoiceId, amountCents, attemptCount Eine Zahlung ist gescheitert.
billing.invoice.refunded invoiceId, reason, refundId Eine Rechnung wurde erstattet.
billing.invoice.credited invoiceId, creditNoteId, creditNoteNumber, amountCents, settlement, reason Zu einer Rechnung wurde eine Gutschrift erstellt.
billing.invoice.voided invoiceId, invoiceNumber, reason Eine Rechnung wurde storniert.
billing.invoice.written-off invoiceId, invoiceNumber, amountCents, reason Eine Rechnung wurde ausgebucht.
billing.invoice.dunned invoiceId, noticeId, noticeNumber, level, deadlineAt Eine Mahnung wurde erstellt, level nennt die Stufe.
billing.vat-id.confirmed tenantId, countryCode, requestId Die Umsatzsteuer-Identnummer wurde bestätigt.
billing.vat-id.invalidated tenantId, countryCode, previousStatus Die Umsatzsteuer-Identnummer gilt nicht mehr.
billing.payment-method.attached tenantId, stripePaymentMethodId, kind, lastFour Ein Zahlungsmittel wurde hinterlegt.
billing.payment-method.removed tenantId, stripePaymentMethodId Ein Zahlungsmittel wurde entfernt.
billing.payment-way.switched tenantId, before, after (invoice/stripe) Der Zahlweg wurde gewechselt (invoice oder stripe).
billing.feature-entitlements.changed tenantId, before, after, changedKeys Einer der Anzeige-Schalter für Funktionen hat sich bewegt, changedKeys nennt welche.
billing.item-override.ending tenantId, subscriptionId, skuCode, validUntilDate, effectiveUnitPriceCents, listUnitPriceCents Eine Sonderkondition läuft demnächst aus.
billing.item-override.expired tenantId, subscriptionId, skuCode, validUntilDate, listUnitPriceCents Eine Sonderkondition ist abgelaufen.
billing.checkout.started checkoutRef, tenantId, purpose, packageCode, billingCycle, entry Ein Kaufvorgang wurde begonnen.
billing.checkout.finished checkoutRef, tenantId, purpose, outcome, paymentWay Ein Kaufvorgang wurde beendet, outcome nennt den Ausgang.

Beitritt und Einrichtung

Einladungen, Einrichtungsassistent, Bereitstellung einer neuen Organisation, Beitrittsanfragen und Selbst-Registrierung.

Ereignistyp Nutzlast-Kern Wann es entsteht
onboarding.invitation.sent invitationId, email, defaultRoleId, expiresAt Eine Einladung wurde verschickt.
onboarding.invitation.resent invitationId, email, expiresAt Eine Einladung wurde erneut verschickt.
onboarding.invitation.revoked invitationId, email, revokedById Eine Einladung wurde zurückgezogen.
onboarding.invitation.accepted invitationId, email, acceptedByUserId Eine Einladung wurde angenommen.
onboarding.invitation.expired invitationId, tenantId, email Eine Einladung ist abgelaufen.
onboarding.setup-step.completed tenantId, step, via Ein Schritt des Einrichtungsassistenten wurde abgeschlossen.
onboarding.setup-wizard.completed tenantId, completedAt Der Einrichtungsassistent wurde abgeschlossen.
onboarding.tenant.provisioning-started tenantId, slug, provisionedById Die Bereitstellung einer neuen Organisation hat begonnen.
onboarding.tenant.provisioning-completed tenantId, subscriptionId, ownerEmail Die Bereitstellung einer neuen Organisation ist abgeschlossen.
onboarding.join-request.received joinRequestId, tenantId, email, displayName Eine Beitrittsanfrage ist eingegangen.
onboarding.join-request.decided joinRequestId, tenantId, email, decision (accepted/rejected), decidedById Eine Beitrittsanfrage wurde entschieden (accepted oder rejected).
onboarding.self-registration.changed enabled, reason, changedById Der Plattform-Schalter der Selbst-Registrierung wurde umgelegt (Plattformbetrieb).
onboarding.signup.started funnelRef, entry Eine Selbst-Registrierung wurde begonnen.
onboarding.signup.verified funnelRef, route (create/join/sso) Die Adresse einer Selbst-Registrierung wurde bestätigt, route nennt den Weg.
onboarding.signup.completed funnelRef, tenantId Eine Selbst-Registrierung ist abgeschlossen.
onboarding.terms.accepted tenantId, userId, occasion, documents, locale, acceptedAt Vertragsdokumente wurden angenommen, documents nennt welche.

Weiterführendes