fepli
EntwicklerAPI-Ressourcen

Veranstalter-Einladungen

Eine Einladung bittet jemanden per E-Mail, Mitglied eines Veranstalter-Profils zu werden oder ein neues Veranstalter-Profil zu registrieren. In der API ist sie eine host-invitation. Die E-Mail enthält einen persönlichen Link. Mit ihm richtet die Person ihren Zugang ein. Die API sendet, listet, versendet erneut und zieht Einladungen zurück, wie es das Admin-Panel mit Einladen in der Liste der Veranstalter:innen, Konto einladen in der Zeile eines Veranstalter-Profils und Mitglied einladen im Reiter Team eines Veranstalter-Profils tut.

Admins sehen jede Einladung. Veranstalter:innen sehen die Einladungen in die Veranstalter-Profile, deren Mitglied sie sind, und dürfen diese senden, erneut senden und zurückziehen. Einladungen, ein neues Veranstalter-Profil zu registrieren, sind nur für Admins.

Um ein bestehendes Konto sofort und ohne E-Mail zum Mitglied eines Veranstalter-Profils zu machen, verwendet ein Admin stattdessen Ein Mitglied hinzufügen.

Das Modell der Einladung

  • Name
    uuid
    Typ
    string
    Beschreibung

    Die Kennung der Einladung.

  • Name
    email
    Typ
    string
    Beschreibung

    Die eingeladene Adresse, in Kleinbuchstaben.

  • Name
    host
    Typ
    reference
    Beschreibung

    Das Veranstalter-Profil, dessen Mitglied die Person wird. null bei einer Einladung, ein neues Veranstalter-Profil zu registrieren.

  • Name
    invitedBy
    Typ
    reference
    Beschreibung

    Das Konto, das die Einladung gesendet hat. null, wenn ein Service-Account sie gesendet hat oder das Konto inzwischen gelöscht wurde.

  • Name
    status
    Typ
    string
    Beschreibung

    open (gesendet, noch nicht beantwortet, noch gültig), accepted oder expired.

  • Name
    createdAt
    Typ
    timestamp
    Beschreibung

    Wann die Einladung zum ersten Mal gesendet wurde.

  • Name
    expiresAt
    Typ
    timestamp
    Beschreibung

    Wann der Link nicht mehr funktioniert. Wie lange eine Einladung gültig bleibt, legt jede Installation fest: 14 Tage, sofern nichts anderes eingestellt ist, und höchstens 30 Tage. Wird die Einladung erneut gesendet, verschiebt sich dieser Zeitpunkt nach hinten.

  • Name
    acceptedAt
    Typ
    timestamp
    Beschreibung

    Wann die Person dem Link gefolgt ist und beigetreten ist.


GET/host-invitations

Alle Einladungen abrufen

Liefert eine Seite mit Einladungen, die neueste zuerst, unabhängig von ihrem Status. Das Admin-Panel zeigt nur die offenen. Filtern Sie mit status=open, um dieselbe Liste zu erhalten.

Optionale Filter

  • Name
    host
    Typ
    string
    Beschreibung

    Nur Einladungen in dieses Veranstalter-Profil (UUID oder Alias).

  • Name
    status
    Typ
    string
    Beschreibung

    Nur Einladungen in diesem Status: open, accepted oder expired.

  • Name
    email
    Typ
    string
    Beschreibung

    Nur Einladungen an genau diese Adresse.

  • Name
    page, itemsPerPage
    Typ
    integer
    Beschreibung

    Siehe Paginierung.

GET/host-invitations
curl "https://example.fepli.eu/api/host-invitations?host=kunstschule-elmsbrueck&status=open" \
  -H "Authorization: Bearer $FEPLI_TOKEN"

Antwort

[
  {
    "uuid": "01995e3a-7b4c-7d8e-9f0a-1b2c3d4e5f61",
    "email": "l.wagner@kunstschule.example.fepli.eu",
    "host": {
      "uuid": "0193c9d1-2e3f-7a4b-8c5d-6e7f8a9b0c18",
      "name": "Kunstschule Elmsbrück",
      "alias": "kunstschule-elmsbrueck"
    },
    "invitedBy": {
      "uuid": "0193c9e4-8f9a-7b0c-9d1e-2f3a4b5c6d21",
      "name": "Mira Schneider"
    },
    "status": "open",
    "createdAt": "2026-09-15T10:12:44+02:00",
    "expiresAt": "2026-09-29T10:12:44+02:00",
    "acceptedAt": null
  }
]

GET/host-invitations/{uuid}

Eine Einladung abrufen

Liefert eine Einladung. Eine Einladung, die Sie nicht sehen dürfen, ist ein 404. Für Veranstalter:innen sind das alle Einladungen in andere Veranstalter-Profile und alle Einladungen, ein neues Veranstalter-Profil zu registrieren.

GET/host-invitations/{uuid}
curl https://example.fepli.eu/api/host-invitations/01995e3a-7b4c-7d8e-9f0a-1b2c3d4e5f61 \
  -H "Authorization: Bearer $FEPLI_TOKEN"

POST/hosts/{uuid}/invitations

Ein Mitglied einladen

Lädt jemanden ein, Mitglied eines Veranstalter-Profils zu werden. fepli sendet der Person in Ihrem Namen die Benachrichtigung Einladung zur Mitarbeit mit einem persönlichen Link. Der Standardtext lautet „Sie wurden von Mira Schneider eingeladen …“. Folgt die Person dem Link, meldet sie sich an oder registriert sich und wird Mitglied, mit Zugriff auf alles, was das Veranstalter-Profil hat. Admins finden die E-Mail unter den gesendeten Nachrichten.

Einladen dürfen Admins und die Mitglieder des Veranstalter-Profils. Alle anderen erhalten ein 403.

  • In wessen Namen. Mit einem persönlichen Token nennt die E-Mail Sie. Mit einem Service-Account nennt sie den Service-Account, wo der Text die einladende Person nennt („Sie wurden von Support-Agent eingeladen …“). Geben Sie ihm deshalb einen Namen, der der Empfänger:in etwas sagt. Das invitedBy der Einladung bleibt dann null.
  • Einmal pro Adresse. Ist eine Einladung an diese Adresse in dieses Veranstalter-Profil noch offen, wird sie erneuert statt doppelt angelegt: dieselbe uuid mit einem neuen expiresAt, und die E-Mail wird erneut gesendet. Ist die frühere abgelaufen, wird eine neue Einladung angelegt.
  • Ob die Adresse schon ein fepli-Konto hat, spielt keine Rolle: In beiden Fällen wird die Person Mitglied des Veranstalter-Profils.

Eine ungültige Adresse ist ein 422. Eine Adresse, die schon zu einem Mitglied dieses Veranstalter-Profils gehört (ohne Beachtung der Groß- und Kleinschreibung), ist ein 409.

Pflichtattribute

  • Name
    email
    Typ
    string
    Beschreibung

    Die Adresse, die eingeladen wird.

POST/hosts/{uuid}/invitations
curl -X POST https://example.fepli.eu/api/hosts/0193c9d1-2e3f-7a4b-8c5d-6e7f8a9b0c18/invitations \
  -H "Authorization: Bearer $FEPLI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"email": "l.wagner@kunstschule.example.fepli.eu"}'

Antwort (201 Created)

{
  "uuid": "01995e3a-7b4c-7d8e-9f0a-1b2c3d4e5f61",
  "email": "l.wagner@kunstschule.example.fepli.eu",
  "host": {
    "uuid": "0193c9d1-2e3f-7a4b-8c5d-6e7f8a9b0c18",
    "name": "Kunstschule Elmsbrück",
    "alias": "kunstschule-elmsbrueck"
  },
  "invitedBy": {
    "uuid": "0193c9e4-8f9a-7b0c-9d1e-2f3a4b5c6d21",
    "name": "Mira Schneider"
  },
  "status": "open",
  "createdAt": "2026-09-15T10:12:44+02:00",
  "expiresAt": "2026-09-29T10:12:44+02:00",
  "acceptedAt": null
}

POST/host-invitations

Eine neue Veranstalter:in einladen

Lädt jemanden ein, ein neues Veranstalter-Profil zu registrieren. Nur für Admins. fepli sendet an eine Adresse die E-Mail, die auch Einladen in der Liste der Veranstalter:innen im Admin-Panel sendet, mit einem persönlichen Link. Folgt die Person ihm, gibt sie die Angaben des Veranstalter-Profils ein und richtet ihren Zugang ein. Erst dann entstehen das Veranstalter-Profil und sein Konto. Die E-Mail wird im Hintergrund gesendet und erscheint unter den gesendeten Nachrichten.

Ohne subject und text verwendet die E-Mail den Standardtext des Admin-Panels. Er lädt die Empfänger:in ein, Angebote für die Saison einzureichen, und ist mit sender unterschrieben: Ihrem Namen oder dem Namen des Service-Accounts.

  • Ist eine Einladung an diese Adresse noch offen, wird sie erneuert (dieselbe uuid, neues expiresAt), und die E-Mail wird erneut gesendet.
  • Eine Adresse, deren Konto schon Mitglied eines Veranstalter-Profils ist, ist ein 409: Die Registrierung würde ein zweites Veranstalter-Profil anlegen. Laden Sie die Person stattdessen als Mitglied eines anderen Veranstalter-Profils ein. Ein Konto ohne Veranstalter-Profil ist in Ordnung. Die Registrierung fügt ihm das neue Veranstalter-Profil hinzu.
  • Verlangt die Saison von Veranstalter:innen, eine Vertraulichkeitserklärung zu unterschreiben, müssen Sie sie unterschrieben haben, bevor Sie Veranstalter:innen zu dieser Saison anschreiben, wie im Admin-Panel. Sonst ist die Anfrage ein 409. Ein Service-Account kann die Erklärung nicht unterschreiben, seine Anfrage ist deshalb ebenfalls ein 409. Senden Sie die Einladung dann aus dem Admin-Panel oder mit dem persönlichen Token einer Person aus Ihrem Team, die sie unterschrieben hat.
  • Eine ungültige Adresse, eine unbekannte edition oder ein text ohne {{ inviteLink }} ist ein 422.

Pflichtattribute

  • Name
    email
    Typ
    string
    Beschreibung

    Die Adresse, die eingeladen wird.

Optionale Attribute

  • Name
    edition
    Typ
    string
    Beschreibung

    Die Saison, um die es in der Einladung geht (UUID oder Alias). Standard ist die Saison, deren Phase host_editing_stage aktiv ist.

  • Name
    subject
    Typ
    string
    Beschreibung

    Die Betreffzeile, bis zu 255 Zeichen. Standard: „Einladung: edition – jetzt Angebote einreichen“.

  • Name
    text
    Typ
    string
    Beschreibung

    Die Nachricht in Markdown. HTML wird entfernt. Sie muss {{ inviteLink }} enthalten, das zum persönlichen Link der Empfänger:in wird. Sie darf {{ edition.name }} und {{ sender }} verwenden. Der Standardtext nennt, wie viele Tage der Link gültig ist, so wie Ihre Installation es festlegt.

POST/host-invitations
curl -X POST https://example.fepli.eu/api/host-invitations \
  -H "Authorization: Bearer $FEPLI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "info@tanzschule.example.fepli.eu",
    "edition": "herbstferien-2026",
    "text": "Guten Tag,\n\nhaben Sie Lust, in den Herbstferien einen Schnupperkurs anzubieten? Hier legen Sie Ihren Zugang an:\n\n{{ inviteLink }}\n\nViele Grüße\n{{ sender }}"
  }'

Antwort (201 Created)

{
  "uuid": "01995e41-2c3d-7e4f-8a5b-6c7d8e9f0a72",
  "email": "info@tanzschule.example.fepli.eu",
  "host": null,
  "invitedBy": {
    "uuid": "0190a1b2-c3d4-7e5f-8a6b-7c8d9e0f1a22",
    "name": "Sabine Krüger"
  },
  "status": "open",
  "createdAt": "2026-09-15T11:03:09+02:00",
  "expiresAt": "2026-09-29T11:03:09+02:00",
  "acceptedAt": null
}

POST/host-invitations/{uuid}/resend

Eine Einladung erneut senden

Sendet die E-Mail einer Einladung erneut und verschiebt ihr expiresAt nach hinten, wie Erneut senden im Admin-Panel. Die Anfrage hat keinen Body. Antwortet mit 200 OK und der Einladung.

  • Einladungen, Mitglied zu werden, folgen den Regeln für Ein Mitglied einladen: Sie müssen das Veranstalter-Profil ändern dürfen, und die E-Mail geht in Ihrem Namen (oder dem des Service-Accounts) hinaus. Ist die Person inzwischen Mitglied geworden, ist die Anfrage ein 409.
  • Einladungen, ein neues Veranstalter-Profil zu registrieren, sind nur für Admins. Es geht der Standardtext hinaus, auch wenn die erste E-Mail einen eigenen Betreff oder Text hatte, und zwar zu der Saison, deren Phase host_editing_stage aktiv ist. Es gelten dieselben 409 wie beim Einladen.

War die Einladung schon abgelaufen, wird eine neue angelegt und mit eigener uuid zurückgegeben. Die abgelaufene bleibt in der Liste. Eine angenommene Einladung lässt sich nicht erneut senden (409).

POST/host-invitations/{uuid}/resend
curl -X POST https://example.fepli.eu/api/host-invitations/01995e3a-7b4c-7d8e-9f0a-1b2c3d4e5f61/resend \
  -H "Authorization: Bearer $FEPLI_TOKEN"

Antwort (Auszug)

{
  "uuid": "01995e3a-7b4c-7d8e-9f0a-1b2c3d4e5f61",
  "status": "open",
  "expiresAt": "2026-10-06T09:40:02+02:00",
  "…": "…"
}

DELETE/host-invitations/{uuid}

Eine Einladung zurückziehen

Zieht eine Einladung zurück: Sie wird gelöscht und im Admin-Panel nicht mehr als eingeladen angezeigt. Antwortet mit 204 No Content. Eine Einladung zurückziehen dürfen dieselben Personen, die sie erneut senden dürfen.

Die E-Mail lässt sich nicht zurückholen, ihr Link funktioniert aber nicht mehr: Ein Einladungslink gilt nur, solange seine Einladung offen ist, und nur einmal. Wer einem zurückgezogenen, abgelaufenen oder schon verwendeten Link folgt, sieht „Diese Einladung gilt nicht mehr“.

Eine angenommene Einladung lässt sich nicht zurückziehen (409).

DELETE/host-invitations/{uuid}
curl -X DELETE https://example.fepli.eu/api/host-invitations/01995e3a-7b4c-7d8e-9f0a-1b2c3d4e5f61 \
  -H "Authorization: Bearer $FEPLI_TOKEN"

War diese Seite hilfreich?