fepli
EntwicklerAPI-Ressourcen

Konten

Mit einem Konto meldet sich eine Person bei fepli an. Familien melden damit ihre Kinder an, Mitglieder von Veranstalter-Profilen und Admins arbeiten damit im Admin-Panel. In der API ist ein Konto ein account. Die API zeigt Konten so, wie der Bereich Konten des Admin-Panels.

Alle Endpunkte der Konten brauchen ROLE_ADMIN.

Das Modell des Kontos

  • Name
    uuid
    Typ
    string
    Beschreibung

    Die Kennung des Kontos.

  • Name
    email
    Typ
    string
    Beschreibung

    Die E-Mail-Adresse, mit der sich die Person anmeldet. Sie ist überall zulässig, wo ein Konto benannt wird, sofern es in Ihrem eigenen Mandanten liegt, etwa in ?account=familie.mueller@example.org.

  • Name
    pendingEmail
    Typ
    string
    Beschreibung

    Eine neue Anmeldeadresse, die noch bestätigt werden muss. Dazu dient der Link, der an sie geschickt wurde. Bis dahin behält email die aktuelle Adresse. Das Feld fehlt, wenn keine Adresse wartet oder ihr Link abgelaufen ist. Nur lesen; siehe Ein Konto ändern.

  • Name
    firstname
    Typ
    string
    Beschreibung

    Der Vorname.

  • Name
    lastname
    Typ
    string
    Beschreibung

    Der Nachname.

  • Name
    name
    Typ
    string
    Beschreibung

    Der vollständige Name.

  • Name
    phone
    Typ
    string
    Beschreibung

    Die Telefonnummer.

  • Name
    mobile
    Typ
    string
    Beschreibung

    Die Mobilnummer.

  • Name
    roles
    Typ
    string[]
    Beschreibung

    Die Rollen des Kontos: ROLE_MEMBER für Familien, ROLE_HOST für Mitglieder von Veranstalter-Profilen, ROLE_ADMIN und die Admin-Rollen für Admins. Die Admin-Rollen ROLE_PARTICIPANTS_ADMIN, ROLE_PAYMENTS_ADMIN und ROLE_CMS_ADMIN gelten nur im Konto eines Admins. In jedem anderen Konto werden sie nicht aufgeführt.

  • Name
    locale
    Typ
    string
    Beschreibung

    Die Sprache, in der die Person fepli nutzt, zum Beispiel de.

  • Name
    disabled
    Typ
    boolean
    Beschreibung

    Ob das Konto gesperrt ist und sich niemand damit anmelden kann.

  • Name
    activatedAt
    Typ
    timestamp
    Beschreibung

    Wann die Person ihre E-Mail-Adresse bestätigt hat.

  • Name
    lastLogin
    Typ
    timestamp
    Beschreibung

    Wann sich die Person zuletzt angemeldet hat.

  • Name
    createdAt
    Typ
    timestamp
    Beschreibung

    Wann das Konto angelegt wurde.

  • Name
    modifiedAt
    Typ
    timestamp
    Beschreibung

    Wann das Konto zuletzt geändert wurde.

  • Name
    blockedEmail
    Typ
    boolean
    Beschreibung

    Ob E-Mails an diese Adresse zurückgekommen sind. fepli sendet nicht mehr an gesperrte Adressen. Das erklärt viele Fälle von „Ich habe keine E-Mail bekommen“. Siehe Eine E-Mail-Adresse entsperren.

  • Name
    unsubscribed
    Typ
    boolean
    Beschreibung

    Ob sich die Person von E-Mails abgemeldet hat, die fepli verschickt.

  • Name
    hasPassword
    Typ
    boolean
    Beschreibung

    Ob die Person ein Passwort festgelegt hat. Ohne Passwort meldet sie sich mit einem Link an, der per E-Mail kommt.

  • Name
    magicLinksDisabled
    Typ
    boolean
    Beschreibung

    Ob die Anmeldung per E-Mail-Link für dieses Konto ausgeschaltet ist.

  • Name
    addresses
    Typ
    object[]
    Beschreibung

    Postadressen, jeweils mit street, postalCode, city und country. Eine leere Adresse erscheint in der Liste als null.

  • Name
    hosts
    Typ
    reference[]
    Beschreibung

    Die Veranstalter:innen, deren Mitglied dieses Konto ist.

  • Name
    participants
    Typ
    reference[]
    Beschreibung

    Die Teilnehmer:innen dieses Kontos, meist die Kinder. Ohne ROLE_PARTICIPANTS_ADMIN enthält jede Referenz nur die uuid.

  • Name
    sharedOffers
    Typ
    reference[]
    Beschreibung

    Einzelne Angebote, die direkt mit diesem Konto geteilt wurden.

  • Name
    debtor
    Typ
    object
    Beschreibung

    Die Debitor:in des Kontos, die mit der ersten Anmeldung entsteht: ihre uuid und der Saldo balance in Cent. Nur für Aufrufer mit ROLE_PAYMENTS_ADMIN.

  • Name
    piiMasked
    Typ
    boolean
    Beschreibung

    Ob personenbezogene Daten fehlen, weil Sie sie nicht sehen dürfen. Siehe Maskierte personenbezogene Daten.


GET/accounts

Alle Konten abrufen

Liefert eine Seite mit Konten, sortiert nach Nachname und Vorname. Außerhalb Ihres eigenen Mandanten sind sie nach Anlage sortiert.

Optionale Filter

  • Name
    q
    Typ
    string
    Beschreibung

    Nur Konten, deren Name oder E-Mail-Adresse diesen Text enthält. Findet außerhalb Ihres eigenen Mandanten nichts.

  • Name
    email
    Typ
    string
    Beschreibung

    Nur das Konto mit genau dieser E-Mail-Adresse. Findet außerhalb Ihres eigenen Mandanten nichts.

  • Name
    role
    Typ
    string
    Beschreibung

    Nur Konten mit dieser Rolle: member, host oder admin.

  • Name
    host
    Typ
    string
    Beschreibung

    Nur Mitglieder dieser Veranstalter:in (UUID oder Alias).

  • Name
    disabled
    Typ
    boolean
    Beschreibung

    true für nur gesperrte Konten.

  • Name
    modifiedSince
    Typ
    timestamp
    Beschreibung

    Nur Konten, die seit diesem Zeitpunkt geändert wurden.

  • Name
    page, itemsPerPage
    Typ
    integer
    Beschreibung

    Siehe Paginierung.

GET/accounts
curl -G https://example.fepli.eu/api/accounts \
  -H "Authorization: Bearer $FEPLI_TOKEN" \
  --data-urlencode "email=familie.mueller@example.org"

Antwort

[
  {
    "uuid": "0191c7b2-4d5e-7f60-8a1b-2c3d4e5f6a05",
    "email": "familie.mueller@example.org",
    "firstname": "Anna",
    "lastname": "Müller",
    "name": "Anna Müller",
    "mobile": "030 23125 456",
    "roles": ["ROLE_MEMBER"],
    "locale": "de",
    "disabled": false,
    "activatedAt": "2025-06-02T19:14:08+02:00",
    "lastLogin": "2026-09-18T07:41:55+02:00",
    "createdAt": "2025-06-02T19:12:40+02:00",
    "modifiedAt": "2026-09-01T12:00:17+02:00",
    "blockedEmail": false,
    "unsubscribed": false,
    "hasPassword": false,
    "magicLinksDisabled": false,
    "addresses": [
      {
        "street": "Lindenallee 12",
        "postalCode": "12345",
        "city": "Elmsbrück",
        "country": "de"
      }
    ],
    "hosts": [],
    "participants": [
      { "uuid": "0191c7b3-1f2a-7c4d-8e5f-6a7b8c9d0e06", "name": "Lena Müller" },
      { "uuid": "0191c7b3-2e3f-7a4b-9c5d-6e7f8a9b0c16", "name": "Paul Müller" }
    ],
    "sharedOffers": [],
    "debtor": {
      "uuid": "0191c7b4-5a6b-7c8d-9e0f-1a2b3c4d5e09",
      "balance": 0
    },
    "piiMasked": false
  }
]

GET/accounts/{uuid}

Ein Konto abrufen

Liefert ein Konto.

GET/accounts/{uuid}
curl https://example.fepli.eu/api/accounts/0191c7b2-4d5e-7f60-8a1b-2c3d4e5f6a05 \
  -H "Authorization: Bearer $FEPLI_TOKEN"

POST/accounts

Ein Konto anlegen

Legt ein Konto an. Es hat kein Passwort, und fepli schreibt niemandem eine E-Mail. Die Person meldet sich mit einem Link an, der per E-Mail kommt, sofern ihre Kontoart das erlaubt. Oder sie nutzt eine Einladung, die ein Admin im Admin-Panel verschickt und mit der sie ihre Anmeldung selbst einrichtet. Kein Endpunkt setzt ein Passwort. Ohne roles erhält das Konto ROLE_MEMBER.

Nur Super-Admins können Konten von Admins anlegen.

Pflichtattribute

  • Name
    email
    Typ
    string
    Beschreibung

    Eine gültige E-Mail-Adresse, die kein anderes Konto verwendet.

Optionale Attribute

  • Name
    firstname, lastname
    Typ
    string
    Beschreibung

    Jeweils bis zu 255 Zeichen.

  • Name
    phone, mobile
    Typ
    string
    Beschreibung

    Jeweils bis zu 64 Zeichen.

  • Name
    locale
    Typ
    string
    Beschreibung

    Die Sprache, zum Beispiel de oder en.

  • Name
    roles
    Typ
    string[]
    Beschreibung

    Beliebige Werte aus member, host, admin, super_admin, participants_admin, payments_admin, cms_admin oder die Namen ROLE_…. Wenn weder member noch host noch admin angegeben ist, kommt member hinzu. super_admin fügt admin hinzu. participants_admin, payments_admin und cms_admin sind nur zusammen mit admin oder super_admin zulässig (422). Nur ein Super-Admin darf admin, super_admin und diese drei vergeben (403).

  • Name
    hosts
    Typ
    string[]
    Beschreibung

    Veranstalter:innen (UUIDs oder Aliase), deren Mitglied das Konto ist. Fügt ROLE_HOST hinzu.

  • Name
    address
    Typ
    object
    Beschreibung

    street, postalCode, city und country (zwei Buchstaben, standardmäßig de).

  • Name
    disabled
    Typ
    boolean
    Beschreibung

    Das Konto gesperrt anlegen.

  • Name
    notifyComments
    Typ
    boolean
    Beschreibung

    Ob die Person über neue Kommentare benachrichtigt wird.

POST/accounts
curl -X POST https://example.fepli.eu/api/accounts \
  -H "Authorization: Bearer $FEPLI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "m.schneider@kunstschule.example.fepli.eu",
    "firstname": "Mira",
    "lastname": "Schneider",
    "hosts": ["kunstschule-elmsbrueck"]
  }'

Antwort (201 Created, Auszug)

{
  "uuid": "0193c9e4-8f9a-7b0c-9d1e-2f3a4b5c6d21",
  "email": "m.schneider@kunstschule.example.fepli.eu",
  "name": "Mira Schneider",
  "roles": ["ROLE_MEMBER", "ROLE_HOST"],
  "hasPassword": false,
  "hosts": [
    {
      "uuid": "0193c9d1-2e3f-7a4b-8c5d-6e7f8a9b0c18",
      "name": "Kunstschule Elmsbrück",
      "alias": "kunstschule-elmsbrueck"
    }
  ],
  "…": "…"
}

PATCH/accounts/{uuid}

Ein Konto ändern

Ändert ein Konto. Die Attribute sind dieselben wie beim Anlegen eines Kontos. Senden Sie nur, was Sie ändern wollen.

  • email ändert die Adresse, mit der sich die Person anmeldet, sobald die neue Adresse bestätigt ist. Bis dahin wartet sie in pendingEmail, und fepli schickt ihr einen Link, der 24 Stunden gilt. Solange der Link nicht benutzt wurde, behält email die aktuelle Adresse, auch in der Antwort. Eine weitere neue Adresse ersetzt die wartende, und der frühere Link verliert seine Gültigkeit. Eine Änderung nur der Groß- und Kleinschreibung gilt sofort.
  • Sobald der Link benutzt wurde, meldet sich das Konto mit der neuen Adresse an. Anmelde- und Passwort-Links, die vorher verschickt wurden, verlieren ihre Gültigkeit, und fepli benachrichtigt die bisherige Adresse. Hat in der Zwischenzeit ein anderes Konto die Adresse übernommen, ändert sich nichts.
  • Wenn Sie die Adresse einer anderen Person ändern, benachrichtigt fepli ihre aktuelle Adresse sofort per E-Mail. Das Protokoll unter Betroffenenrechte im Admin-Panel hält Neue Anmelde-Adresse eingetragen fest, ohne eine der beiden Adressen.
  • "disabled": true sperrt das Konto: Die Person kann sich nicht mehr anmelden, und eine offene Sitzung des Kontos endet mit der nächsten Anfrage. false hebt die Sperre auf. Das hat nichts mit einer gesperrten E-Mail-Adresse zu tun; siehe dazu Eine E-Mail-Adresse entsperren.
  • roles ersetzt die Rollen des Kontos, nach denselben Regeln wie beim Anlegen eines Kontos. Wer die Rollen im Konto eines Admins ändert, muss ebenfalls Super-Admin sein.
  • hosts ersetzt die Mitgliedschaften des Kontos. Um einzelne Mitgliedschaften hinzuzufügen oder zu entfernen, verwenden Sie Ein Mitglied hinzufügen und Ein Mitglied entfernen.
  • address ersetzt die erste Postadresse als Ganzes: Senden Sie alle ihre Felder. null entfernt sie.

Das Konto eines Admins ändern, löschen oder pseudonymisieren dürfen nur Super-Admins. Admins dürfen ihr eigenes Konto immer ändern. Die email im Konto einer Familie (ROLE_MEMBER) zu ändern, erfordert ROLE_PARTICIPANTS_ADMIN (403). Konten, deren personenbezogene Daten für Sie maskiert sind, lassen sich nicht ändern.

PATCH/accounts/{uuid}
curl -X PATCH https://example.fepli.eu/api/accounts/0191c7b2-4d5e-7f60-8a1b-2c3d4e5f6a05 \
  -H "Authorization: Bearer $FEPLI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mobile": "030 23125 457"}'

DELETE/accounts/{uuid}

Ein Konto löschen

Löscht ein Konto samt seinen Teilnehmer:innen. Ihre Anmeldungen für Angebote, die noch nicht begonnen haben, werden zurückgezogen. Eine zurückgezogene Anmeldung behält ihren Beitrag (payable), wo er auch bei einer Abmeldung durch die Familie bliebe: nach Ablauf der kostenlosen Stornofrist und dort, wo die Einstellungen Abmeldungen verweigern. Unbezahlte Beiträge verhindern das Löschen nicht, doch danach kann sie niemand mehr in Rechnung stellen. Die Antwort ist 204 No Content. Danach sind das Konto und seine Teilnehmer:innen ein 404.

Einwilligungen, die sie gegeben haben, werden nicht widerrufen und nicht gelöscht. Jede bleibt als eigener Datensatz mit dem Namen der Person in Kraft, bis sie widerrufen wird oder abläuft. Um beim Löschen mit zu widerrufen, widerrufen Sie die Einwilligungen zuerst. Siehe Einwilligungen nach einer Löschung.

Das Konto einer Familie (ROLE_MEMBER) zu löschen, erfordert ROLE_PARTICIPANTS_ADMIN, das Konto eines Admins einen Super-Admin (403).

Ist die Verarbeitung des Kontos oder einer seiner Teilnehmer:innen eingeschränkt (Art. 18 DSGVO), lässt sich das Konto nicht löschen (409).

DELETE/accounts/{uuid}
curl -X DELETE https://example.fepli.eu/api/accounts/0191c7b2-4d5e-7f60-8a1b-2c3d4e5f6a05 \
  -H "Authorization: Bearer $FEPLI_TOKEN"

POST/accounts/{uuid}/pseudonymize

Ein Konto pseudonymisieren

Veraltet: Der Endpunkt tut dasselbe wie Ein Konto löschen. Verwenden Sie stattdessen DELETE /accounts/{uuid}.

Die Anfrage hat keinen Body, die Antwort ist 204 No Content.

POST/accounts/{uuid}/pseudonymize
curl -X POST https://example.fepli.eu/api/accounts/0191c7b2-4d5e-7f60-8a1b-2c3d4e5f6a05/pseudonymize \
  -H "Authorization: Bearer $FEPLI_TOKEN"

POST/accounts/{uuid}/unblock-email

Eine E-Mail-Adresse entsperren

Beantragt, dass E-Mails an die Adresse des Kontos wieder zugestellt werden, nachdem sie zurückgekommen sind. Das Admin-Panel tut dasselbe mit E-Mail freischalten. Die Anfrage hat keinen Body.

Die Sperre führt der E-Mail-Anbieter, fepli bildet sie nur ab. fepli bittet den Anbieter, sie aufzuheben, und blockedEmail wird false, sobald der Anbieter es getan hat. Die Antwort ist deshalb 202 Accepted mit dem Konto, das noch "blockedEmail": true zeigen kann: Rufen Sie das Konto einen Moment später noch einmal ab. Lehnt der Anbieter ab, bleibt die Sperre bestehen und mit ihr blockedEmail.

Entsperren Sie eine Adresse erst, wenn die Ursache behoben ist, zum Beispiel ein volles Postfach, das geleert wurde. Eine Adresse, die weiterhin nicht funktioniert, kommt erneut zurück.

Eine Adresse, die nicht gesperrt ist, ergibt ein 409. Der Endpunkt berührt die Anmeldung nicht. Um zu verhindern, dass sich eine Person anmeldet, sperren Sie das Konto mit "disabled": true (Ein Konto ändern).

POST/accounts/{uuid}/unblock-email
curl -X POST https://example.fepli.eu/api/accounts/0191c7b2-4d5e-7f60-8a1b-2c3d4e5f6a05/unblock-email \
  -H "Authorization: Bearer $FEPLI_TOKEN"

Antwort (202 Accepted, Auszug)

{
  "uuid": "0191c7b2-4d5e-7f60-8a1b-2c3d4e5f6a05",
  "email": "familie.mueller@example.org",
  "blockedEmail": true,
  "…": "…"
}

War diese Seite hilfreich?