fepli
EntwicklerAPI-Ressourcen

Einwilligungen

Eine Einwilligung hält fest, dass eine Familie oder eine Veranstalter:in etwas zugestimmt oder es abgelehnt hat: der Einverständniserklärung einer Saison oder eines Angebots, etwa der Erlaubnis für Fotos, oder den allgemeinen Bedingungen. In der API ist sie ein consent. Einwilligungen können ablaufen und widerrufen werden.

Alle Endpunkte der Einwilligungen brauchen ROLE_ADMIN.

Jede Entscheidung ist ein eigener Datensatz und bleibt der Nachweis dafür, was erklärt wurde, von wem und wann. Wer erneut entscheidet, fügt einen Datensatz hinzu. Wer eine geltende Einwilligung ablehnt, widerruft sie und fügt einen Datensatz mit der Ablehnung hinzu. Ein Widerruf ist endgültig: Wer erneut einwilligt, erzeugt einen neuen Datensatz. Datensätze lassen sich nicht einzeln löschen.

Einwilligungen nach einer Löschung

Ein Konto oder eine Teilnehmer:in zu löschen, ist kein Widerruf. Eine erteilte Einwilligung bleibt in Kraft, weil fortbestehen darf, was sie erlaubt hat: Die Fotos bleiben veröffentlicht. Ihr Datensatz bleibt als Nachweis erhalten, ohne account und participant, und behält den Namen der Person und den Namen derjenigen, die erklärt hat. Abgelehnte Einwilligungen und Einwilligungen für Angebote, die noch nicht begonnen haben, werden mit der Person gelöscht.

Um beim Löschen mit zu widerrufen, rufen Sie zuerst für jede Einwilligung Eine Einwilligung widerrufen auf und löschen dann. Die Website und das Admin-Panel stellen in ihren Löschdialogen dieselbe Frage.

Ein Datensatz wird gelöscht, wenn die Einwilligung beendet ist (widerrufen, abgelaufen oder erledigt mit ihrem Angebot oder ihrer Saison, wenn die Erklärung das vorsieht) und die Aufbewahrungsfrist für Nachweise verstrichen ist: drei Jahre ab dem Ende dieses Jahres, sofern der Admin keine andere festgelegt hat.

  • Name
    uuid
    Typ
    string
    Beschreibung

    Die Kennung der Einwilligung.

  • Name
    type
    Typ
    string
    Beschreibung

    form_consent für eine Einwilligung zu einer Einverständniserklärung einer Saison oder eines Angebots, consent für die allgemeine.

  • Name
    form
    Typ
    object
    Beschreibung

    Bei Einwilligungen zu einer Erklärung: die uuid der Erklärung, ihr title, ihr subject (für wen sie eingeholt wird: participant, account oder host), compulsory (compulsory, opt-in oder force_decision) und ihr text. Erklärungen, die opt-out waren, zeigen force_decision: Opt-out wird nicht mehr angeboten.

  • Name
    account
    Typ
    reference
    Beschreibung

    Das Konto, das die Einwilligung erteilt hat. Fehlt, sobald das Konto gelöscht ist.

  • Name
    participant
    Typ
    reference
    Beschreibung

    Die Teilnehmer:in, für die die Einwilligung gilt. Fehlt, sobald die Teilnehmer:in gelöscht ist.

  • Name
    offer
    Typ
    reference
    Beschreibung

    Das Angebot, für das die Einwilligung gilt.

  • Name
    edition
    Typ
    reference
    Beschreibung

    Die Saison, für die die Einwilligung gilt.

  • Name
    decision
    Typ
    integer
    Beschreibung

    1, wenn eingewilligt wurde, 0, wenn abgelehnt wurde.

  • Name
    signedAt
    Typ
    timestamp
    Beschreibung

    Wann die Einwilligung erteilt wurde.

  • Name
    signedBy
    Typ
    string
    Beschreibung

    Wer erklärt hat, wenn es nicht die Kontoinhaber:in war: eine Erziehungsberechtigte, die über den Link zur Anmeldung entschieden hat, oder ein Admin, der die Einwilligung im Admin-Panel erfasst hat. Ändert sich nach dem Anlegen des Datensatzes nie.

  • Name
    signedVia
    Typ
    string
    Beschreibung

    Auf welchem Weg die Entscheidung einging: link (eine Erziehungsberechtigte über den Link zur Anmeldung), account (die Familie war auf der Website angemeldet), guest (das Anmeldeformular ohne Konto), admin (im Admin-Panel) oder api (reserviert; noch kein Endpunkt erfasst eine Entscheidung). Fehlt bei Datensätzen, die angelegt wurden, bevor dies erfasst wurde.

  • Name
    revokedAt
    Typ
    timestamp
    Beschreibung

    Wann die Einwilligung widerrufen wurde.

  • Name
    revokedBy
    Typ
    string
    Beschreibung

    Wer den Widerruf erfasst hat: die Kontoinhaber:in, ein Admin oder der API-Client (der Name einer Person oder des Service-Accounts). Fehlt bei Widerrufen, die erfolgten, bevor dies erfasst wurde.

  • Name
    validUntil
    Typ
    timestamp
    Beschreibung

    Wann die Einwilligung abläuft.

  • Name
    valid
    Typ
    boolean
    Beschreibung

    Ob der Datensatz gilt: nicht widerrufen und nicht abgelaufen. Prüfen Sie auch decision: Auch eine abgelehnte Einwilligung kann valid sein.

  • Name
    createdAt
    Typ
    timestamp
    Beschreibung

    Wann der Datensatz angelegt wurde.


GET/consents

Alle Einwilligungen abrufen

Liefert eine Seite mit Einwilligungen, die neuesten zuerst.

Optionale Filter

  • Name
    account
    Typ
    string
    Beschreibung

    Nur Einwilligungen dieses Kontos (UUID, oder E-Mail-Adresse innerhalb Ihres eigenen Mandanten).

  • Name
    participant
    Typ
    string
    Beschreibung

    Nur Einwilligungen für diese Teilnehmer:in (UUID).

  • Name
    offer
    Typ
    string
    Beschreibung

    Nur Einwilligungen zu Erklärungen dieses Angebots (UUID).

  • Name
    edition
    Typ
    string
    Beschreibung

    Nur Einwilligungen zu Erklärungen dieser Saison (UUID oder Alias).

  • Name
    revoked
    Typ
    boolean
    Beschreibung

    true nur für widerrufene Einwilligungen, false, um sie auszulassen.

  • Name
    page, itemsPerPage
    Typ
    integer
    Beschreibung

    Siehe Paginierung.

GET/consents
curl -G https://example.fepli.eu/api/consents \
  -H "Authorization: Bearer $FEPLI_TOKEN" \
  --data-urlencode "account=familie.mueller@example.org" \
  -d revoked=false

Antwort

[
  {
    "uuid": "0192d0e9-6d7e-7f80-9a1b-2c3d4e5f6a31",
    "type": "form_consent",
    "form": {
      "uuid": "01913e5e-8b9c-7d0e-9f1a-2b3c4d5e6f32",
      "title": "Fotoerlaubnis",
      "subject": "participant",
      "compulsory": "opt-in",
      "text": "Ich bin damit einverstanden, dass Fotos meines Kindes …"
    },
    "account": {
      "uuid": "0191c7b2-4d5e-7f60-8a1b-2c3d4e5f6a05",
      "name": "Anna Müller"
    },
    "participant": {
      "uuid": "0191c7b3-1f2a-7c4d-8e5f-6a7b8c9d0e06",
      "name": "Lena Müller"
    },
    "edition": {
      "uuid": "01913e5c-2b4a-7d10-9f3e-6a1c2e7b4d01",
      "name": "Herbstferien 2026",
      "alias": "herbstferien-2026"
    },
    "decision": 1,
    "signedAt": "2026-09-01T08:02:57+02:00",
    "signedVia": "account",
    "valid": true,
    "createdAt": "2026-09-01T08:02:57+02:00"
  }
]

GET/consents/{uuid}

Liefert eine Einwilligung.

GET/consents/{uuid}
curl https://example.fepli.eu/api/consents/0192d0e9-6d7e-7f80-9a1b-2c3d4e5f6a31 \
  -H "Authorization: Bearer $FEPLI_TOKEN"

POST/consents/{uuid}/revoke

Widerruft eine Einwilligung im Namen der Familie, zum Beispiel nachdem sie ein unterschriebenes Papierformular geschickt hat. Die Anfrage hat keinen Body. Die Antwort enthält die widerrufene Einwilligung mit gesetzten revokedAt und revokedBy. Der Datensatz selbst bleibt bestehen. Der Widerruf erscheint außerdem im Protokoll Betroffenenrechte des Admin-Panels.

Wer sich auf die Einwilligung stützt, wird per E-Mail informiert: bei einer Einwilligung zur Erklärung eines Angebots die Veranstalter:innen des Angebots, bei einer Einwilligung zur Erklärung einer Saison das Team und die Veranstalter:innen.

Nur eine erteilte Einwilligung (decision 1) lässt sich widerrufen. Bei einer abgelehnten lautet die Antwort 403. Eine Einwilligung, die schon widerrufen ist, lässt sich nicht erneut widerrufen (409).

POST/consents/{uuid}/revoke
curl -X POST https://example.fepli.eu/api/consents/0192d0e9-6d7e-7f80-9a1b-2c3d4e5f6a31/revoke \
  -H "Authorization: Bearer $FEPLI_TOKEN"

War diese Seite hilfreich?