Settings
Under Settings, super admins determine the behaviour of the whole instance.
Location: Settings (System). Visible to: super admins.
| Rule | Content |
|---|---|
| Mark Configuration | The installation fixes the value; the field is locked. |
| Saving | Every page with a form has its own save bar. Changes apply immediately. |
General
Identity & appearance
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Page title | “Appears in the browser tab of the admin panel.” | Text, at most 255 characters, required | Name of the tenant, without tenants fepli | Appears at the top of the sidebar and in the header of the sign-in page when there is no logo. Also appears in the header of the PDF exports of consents and in the footer of the cash report. |
| Logo | Logo of the admin panel | SVG, PNG, WebP or JPG, at most 1 MB; Choose file, Upload, Replace, Remove; preview on a light and a dark background | – | “For the sidebar and the sign-in page. SVG, PNG, WebP or JPG up to 1 MB; only SVG adapts to dark mode.” See Prepare the logo for dark mode. The logos of the emails and the receipts are separate files, see Email and Receipt & invoice. Uploading and removing apply immediately: “Logo saved.”, “Logo removed.” |
| Sign-in picture | Background picture next to the sign-in form | optional; JPG, PNG or WebP in landscape format, at least 1600 px wide, at most 5 MB; Choose file, Upload, Replace, Remove; Preview opens the sign-in page | no picture | Without a picture, the sign-in stands alone in the middle. Applies to the sign-in page only. Uploading and removing apply immediately: “Picture saved.”, “Picture removed.” |
| Hide the fepli logo | fepli logo in the sidebar and on the sign-in page | on, off | off | “The fepli logo sits at the bottom of the sidebar and in the footer of the sign-in page.” |
| Primary colour | Brand colour | Hex value | empty | “Sets the look of the entire admin panel.” Empty: The admin panel shows the red of fepli, #e62e23. If the colour is close to red (hue 10 to 38 in the OKLCH colour space, saturation from 0.08), the main buttons are almost black, in dark mode a medium grey. Links, checkboxes, switches, selection bars and badges keep the colour. |
| Admin panel language | Language | Deutsch, English | Deutsch | “Applies to the admin panel and to all texts for participants and organizers.” |
| Date format | Display of dates | 31.07.2026, 2026-07-31, 07/31/2026 | 31.07.2026 | – |
| Time zone | Time zone of the instance | Europe/Berlin, Europe/Zurich, Europe/Vienna, UTC | Europe/Berlin | – |
| Participant list sorting | Order | Last name, First name | Last name | “Applies to the PDF export only.” |
“Applies to all of this tenant's emails. Layout, font and colours are fixed.” Which address the emails are sent from is determined by Email sending.
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Logo | Logo at the top left of every email | own file; JPG, PNG or GIF, at most 1 MB, because only these appear in every mailbox | – | Without a logo, the name of the programme appears there. |
| Footer | Markdown text below every email | Bold, italic and links; line breaks are kept; at most 400 characters, with counter | empty | “Sender, address and link to the imprint.” Why someone receives the email is added below by fepli itself. Empty: The copyright text of the installation appears there. |
| Element | Content |
|---|---|
| Preview | A sample email (Confirmation, Sign-in link or Newsletter) with logo and footer as in the form, even before saving; Desktop or Phone as width |
| Link | Texts of the notifications opens the Notifications |
Email sending
“All system emails go out through the installation's mail delivery. You set the sender identity here.” In installations with tenants: “… Each tenant sets its own sender identity.”
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Sender address | Sender of every system email and newsletter, usually a noreply address | depends on the installation, see below | empty | The domain must be verified with the mail provider, otherwise the provider rejects the emails. |
| Sender name | Name before the sender address | Text | empty | “Empty: recipients see only the address.” |
| Receive replies in the system | Replies as a message on the record | on, off | on | “Replies to conversation messages appear on the record. All other emails use the reply address.” Appears as soon as the installation accepts replies. In installations with tenants, the switch takes effect only if the tenant has entered a Receiving domain in the app Replies by email (Outbox and delivery problems). |
| Reply address | Reply-To and contact address of the team | Email address | empty | Required. “Replies to system emails and newsletters go to this address — except replies to messages, and where a notification names a reply address of its own. It is also the contact address on error pages and the administrator address for Contao — unlike the sender address, which usually nobody reads.” The exception for messages applies only if Receive replies in the system is turned on. Without an address: “Please enter a reply address.” |
| Reply name | Name before the reply address | Text | empty | “Empty: replies carry only the address.” |
| Sender address | Field and behaviour |
|---|---|
| Installation without tenants | Email address, not required: “The domain must be verified with the mail provider. Empty: {address}.” {address} is the address of the installation. |
| Tenant with a domain for Email sending | Only the part before the @, followed by “@{domain}”, e.g. noreply before “@mail.beispiel.fepli.eu”. Required: “The part before the @ can be chosen.” Messages: “Please enter a name for the sender address.”, “Only letters, digits and . _ % + - are allowed — the @ and the domain are fixed.” |
| Tenant without a domain for Email sending | Shows only the address of the installation with the lock Installation: “Without a sending domain the installation's address applies.” Note: “A sender address of your own needs a verified sending domain.” Global admins see the link Tenant domains. |
| Order | The address saved here applies, otherwise the Installation's sender address, otherwise the address from the configuration of the installation. |
| Rule | Content |
|---|---|
| Validity | “Changes apply immediately to all emails.” In installations with tenants: “… to all emails of this tenant.” Emails from background runs carry the sender name and reply address of the tenant for which the run works. |
| Reply address of an email | Reply address and Reply name appear in every email without a reply address of its own: in newsletters and in notifications without their own Reply address (Notifications). A reply address of the notification itself takes precedence. |
| Reply address of the installation | If the installation sets a reply address, the page shows it with the lock Configuration, and Reply name is omitted. It then applies to all emails without a reply address of their own. |
| Receiving with Receive replies in the system | Note: “Replies to messages go to {address} and appear on the record.” The address lies under the Receiving domain of the app Replies by email, in installations without tenants under the domain of the installation. |
| Without a Receiving domain | Applies in installations with tenants when Receive replies in the system is turned on. Note: “Needs a receiving domain from the app “Replies by email”. Until then replies go to the reply address.” The link Open app opens the app Replies by email in the side panel. |
| Entries in the DNS | The mail provider verifies the domain of the Sender address through entries in the DNS (Domain Name System) of this domain. The Receiving domain to which replies go needs entries of the same kind, plus MX entries (Mail Exchanger) that route replies to the mail provider. A domain that the operator of the installation provides is set up by the operator. Which entries are needed is described by fepli developers. |
Receipt & invoice
“What appears on receipts. Layout and font are fixed.” Installations no longer bring their own receipt template; these fields replace it.
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Logo | Logo at the top right of every receipt and on the consent sheets | own file; JPG, PNG or GIF, at most 1 MB | – | Without a logo, the name of the programme appears there. |
| Return address | Small line above the address, in the window of the envelope | Text | empty | Empty: Name and address from the Imprint appear there. |
| Note | Text below the total, on receipt and invoice | Markdown, e.g. “Please bring this receipt to the offers you booked.” | empty | – |
| Footer | Who issues the receipt and how to reach them | Text | empty | Empty: The name from the Imprint and the reply address of the emails appear there. |
| Payment term | Deadline of an invoice | Days from the invoice date | empty: 14 days | Applies to a receipt that is not yet paid: “Invoice” with due date and the way to pay. |
| Bank details | Details for the bank transfer | Recipient, IBAN, bank | empty | fepli adds the payment reference below. Empty: The invoice names no bank transfer. |
| Element | Content |
|---|---|
| Preview | PDF of a sample receipt, follows the input, even before saving; selection Receipt or Invoice; Open as PDF shows it at full size |
| Validity | Applies to every receipt that is created or downloaded afterwards. |
Imprint
A Markdown text for the Imprint page, with the same toolbar as the privacy statement. An empty field removes the page and its links again.
| Element | Content |
|---|---|
| Text | For a public authority, the text should contain: who offers (name, legal form, address), who represents, email and phone, where applicable the VAT ID and the competent supervisory authority. |
| Save and view / Open preview | Saves and opens the Imprint page: “The imprint has been saved.” |
| Linked | Beside Privacy in the footer of the sign-in page and the admin panel, for signed-in and not signed-in visitors |
| Without tenants | The page exists in installations without tenants too. |
System configuration
| Element | Content |
|---|---|
| Visible | Only in installations with tenants |
| Name | “Display name throughout the admin panel.” Super admins edit it. |
| Slug | Locked after creation: “set once” |
| Domains | Per row Domain and Purpose; Add another domain, Remove. Super admins edit them. Help text: ““Public website”: public pages, plus the admin panel under /admin as long as there is no admin domain. “Admin panel”: the admin panel only. “API”: the API only; without an API domain it lives with the admin panel. “Email sending”: appears in the sender address, and may be the same domain as the website.” Messages: “The domain "{domain}" already belongs to a tenant.”, “The domain "{domain}" is already entered for this purpose.”, “The domain "{domain}" already has a purpose. Only “Email sending” can share a domain with another.”, “The address "{domain}" is reserved for the examples in the documentation. Please choose another one.”, “A tenant needs at least one domain.” |
| Purpose | Public site, Admin, API, Email sending |
| Domain preview | One row per address with what it shows after saving: Website for families, Admin panel, as long as the API is turned on, API (API), and, as long as embeds are turned on, Embeds with the address from which other websites load the embeds. If the tenant has embeds turned on and no website of its own, Registration for families (no direct access) appears instead of Website for families: Families reach the address through the link of an offer. |
| Embeds are turned on, but no domain has the purpose Public site | Note in the preview: “Embeds are on, but no address serves the website for families, where families register. Give the tenant a website domain, alone or next to the admin panel’s.” |
| The same domain more than once | A domain belongs to one tenant, for every purpose. It appears once per purpose. It answers requests for exactly one of the purposes Public site, Admin and API. It may also have the purpose Email sending; requests to the domain then still reach the other purpose. |
| A domain has the purpose Admin | The admin panel lies directly under this domain and no longer under /admin of the public website. Links to the admin panel in the tenant's emails lead to this domain, for example in invitations and sign-in links. Invitations and sign-in links sent before the domain was entered are no longer valid; newly sent ones lead to the new domain. |
| A domain has the purpose Email sending | The tenant sends from an address under this domain; it selects the part before the @ under Email > Sender address. The domain may be the same as the website's. It must be verified with the mail provider. |
| No domain has the purpose Email sending | “No domain selected for sending email. System emails go out under the installation's sender address.” |
| State | Take offline and Delete tenant; for global admins only, not part of this manual |
Registration of participants
Registration & booking
Bold with **text**, links with [text](https://…). Empty: no note.
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Registering with a friend | Friend codes | on, off | off | “Participants sharing a friend code only get places together in the lottery.” |
| Postal address required | Address before the registration | on, off | off | “Makes the address mandatory in the registration.” |
| Ask for important information | Details on allergies and medication | on, off | off | “Families can state per participant what the organizers need to know, such as allergies or medication. It appears on the participant lists and their exports.” If the switch is on, the field Important information for the organizers appears in the registration form of the website and in the participant's form. The Participant list and its exports show the information in a column of its own. If it is off, field and columns are missing; saved texts are kept. |
| Preferred postal codes | Local residents | Postal codes, separated by commas | empty | “Get a place first in the lottery. The address in the account counts. Without an account, the participant’s own address counts, otherwise the one given with the registration. Separate several with commas. Empty: nobody is preferred.” Takes effect only in the automatic allocation in the lottery (Allocation and committing). In oversubscribed offers, registrations from these postal codes get a place first; the remaining places go to everyone else after the usual ranking. The postal code of the participant account decides, even if the participant has an address of their own. Without an account, the participant's address counts; if both are missing, the one from the registration form counts. If the postal code is missing, the participant does not count as a local resident. |
| Age tolerance | Leeway at age limits | Days, weeks, months | empty | “Widens the age range at both ends. Empty: age limits apply exactly.” |
| Privacy note | Text on the use of the data | Text with Markdown, up to 2000 characters | empty | “Folded under the registration form: what the family's data is used for.” The form shows the text as Markdown, bold with **text** and links with [text](https://…). If the field is empty, no note appears. |
Withdrawal
“Until when a registration can be withdrawn.” A summary shows the saved state.
Participants can withdraw free of charge until 7 days before the start. After that, the participation is charged. Saved state.
{firstname} stands for the participant’s first name. Empty: no note.
{firstname} stands for the participant’s first name. Empty: no note.
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Free of charge until before the start | Deadline before the first date | Period | empty | Whoever withdraws earlier pays nothing; afterwards the payment obligation remains. “Empty: every withdrawal is free.” |
| Not at all after the period | Block withdrawal after the deadline | on, off | off | “Blocks the withdrawal instead of charging for it.” |
| Not after the registration deadline | Block withdrawal after the registration deadline | on, off | off | “No withdrawal after the registration deadline.” |
| Note on withdrawing within the period | Text for paid registrations within the free period | Text with Markdown, up to 600 characters | empty | “For families who paid and withdraw a participant within the free period – how they get the fee back, say.” {firstname} stands for the participant's first name. If the field is empty, no note appears. |
| Note on withdrawing after the period | Text for paid registrations after the period | Text with Markdown, up to 600 characters | empty | “For families who paid and withdraw a participant after the period.” {firstname} stands for the participant's first name. If the field is empty, no note appears. |
Both notes appear on the withdrawal page of the website if the registration is paid. In the registration form of the website they appear in the participant's section if the offer has a fee and the registration is paid. Which text appears depends on whether the free period is still running.
Within 30 minutes after the confirmation, withdrawal is free despite these rules (Rules of registration on the website).
Reminders
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Send reminders | Reminder before the event | on, off | off | Sends Reminder before the event to registrations with takes part in published offers that are not cancelled. fepli runs this hourly, counts the lead time from the first date and reminds each registration once. If several registrations of one family fall due at the same time, the family receives one combined reminder. |
| Lead time | Point in time | Period | empty | “Empty: 36 hours before.” |
| Edit notification | Opens the overview of the Notifications. | – | – | – |
Registration of organizers
The page is missing from the navigation under Registration and answers with 404 as long as Organizers under Fields is off.
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Registration without invitation | Self-registration | on, off | off | “On: the page {path} accepts applications, which you approve one by one. Off: access by invitation only.” {path} is /registrierung on the admin domain, without a domain of its own for the admin panel /admin/registrierung. If the switch is on, the sign-in page offers Register as an organizer. The page shows pending applications with Review in the Accounts list. |
| Invitations valid for | Validity of invitation links | Days, weeks; at most 30 days | empty | “At most 30 days. Empty: 14 days.” After that the link expires. A longer value is not saved: “Invitations are valid for 30 days at most. Please enter at most 30 days or 4 weeks.” A saved longer value counts as 30 days when sending, a saved value in months appears here as 30 days. Applies to invitations of new organizers, to an organizer profile and to an offer, to the invitation of a new account and to the sign-in link after Unblock account. Requested sign-in links are valid for 10 minutes regardless. |
| Access after the offer ends | How long organizers see the participant list | Period | empty | “How long after an offer ends organizers see the participant list when the phase ‘Participant lists public’ is ‘Always active’. Empty: 6 months.” Otherwise access ends with the phase; without the phase, the lists stay closed. The period counts from the last date of the offer. |
Access codes
The page shows the list of Access codes. Create new opens the page New access code strategy. Note on the list: “Apply while registration is still closed for everyone else.”
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Name | Name of the strategy | Text | – | “To find them again, e.g. ‘Spring programme’.” |
| Access codes | The codes | Text per code; New code, Delete code | – | Upper and lower case count. |
| Usage limit | “How often a code may be redeemed.” | Number; 0 = unlimited | 1 | Counts the participants who use the code. |
| Rule | Content |
|---|---|
| Use | A registration phase uses the strategy through Registration with access code only (Phases). |
| Input | Families enter the code per participant on the website: “Access code for {season}”. The field appears only while such a phase is running. |
| Invalid code | “This access code is not valid or has already been redeemed.” The message is the same for unknown and used-up codes. |
| Too many invalid codes | After several invalid codes, the website stops verifying codes for a while: “Too many invalid access codes. Please try again in an hour.” |
| Delete | Action of a strategy. Dialog “Delete access codes “{name}”?” – “The codes become invalid. Cannot be undone.” – Delete access codes. Anyone who has already registered with a code stays registered. |
| Strategy in a registration phase | The dialog shows Cannot be deleted – “A registration phase uses these access codes. Choose others or none there first.” The row Used in names the seasons. The dialog offers only Close. |
Offers
Fields
“Which details an offer carries.”
| Mark | Meaning |
|---|---|
| On, Off | State of every field. “Switching off removes a field from form, booklet, website and exports; recorded values stay.” |
| always | Required field |
| feature | Feature |
| Group | Fields | Default |
|---|---|---|
| Content | Title (always), Organizers, Categories, Description (always), What to bring | Categories: off |
| Terms | Age from / to, Fee, Wheelchair accessible | on |
| Registration | Maximum places (always), Minimum participants, Waiting list, Collect date of birth, Extra questions, Consents | on |
| Dates & places | Dates (always), Repetition, Registration deadline, Address, Note on the meeting point, Variants | on |
| Media & downloads | Pictures, AI image generation, Downloads (PDF) | AI image generation: off. On offers Generate picture in the offer form, provided the app Generate images with AI is connected (App-Store). |
| Contact | Contact persons | on |
| Own properties | Can be dragged between the fixed rows by the handle. | – |
| Note in the row | Content |
|---|---|
| Registration deadline | “Off: the season's deadline applies.” |
| Age from / to | “Off: no age check on registration.” |
| Organizers | “Off: offers name no organizers; whoever already has access keeps it.” |
| Variants | “Dates of their own; marked fields can be changed per variant.” |
| AI image generation | “Needs a provider to be set up.” |
| Contact persons | “Appear publicly on the offer page.” |
Applies immediately. Offers name no organizers any more; the menu entry, their pages and their registration go. What was entered stays, and whoever already has access keeps it.
| Confirmation when saving | Content |
|---|---|
| When | Save opens it when Organizers is saved as on and set to Off in the list. Every other change, including turning on, is saved immediately. |
| Title | “Switch organizers off” |
| Description | “Applies immediately. Offers name no organizers any more; the menu entry, their pages and their registration go. What was entered stays, and whoever already has access keeps it.” |
| Change | Organizers, On → Off |
| Checkbox | “I understand that the organizers' pages and their registration can no longer be reached afterwards.” |
| Apply change | Saves the whole page. While the checkbox is off, the browser holds the form back and points to the checkbox. Message: “Settings saved.” |
| Cancel | Closes the confirmation. The list keeps the state that was set, nothing is saved. |
If Organizers is off
If Organizers is off, the offers name no organizer profiles. The effect depends on the switch alone, not on whether organizer profiles exist. Recorded details stay saved.
| Area | Effect |
|---|---|
| Offer form | No field Organizers, for organizers not even the read-only row (Offer form) |
| Offer list | Neither column nor filter Organizers (Offer list and offer view) |
| Sidebar, search | No entry Organizers. The global search finds no organizer profiles, the create palette creates none (Understanding the interface) |
| Pages of the organizer profiles | All pages under Organizers including the registration, and the settings page Organizers under Registration, answer with 404 (Organizers) |
| Accounts | The account type Organizer is missing as a tab, in the create menu and in the role selection of a new account. Its list, its export and its creation answer with 404. The mixed list has no column with organizer profiles. Whoever has the role keeps it in the role selection (Accounts) |
| Season | No page Organizers, no counter in the header, settings overview and season list, no newsletter to organizers with drafts (Seasons) |
| Completion forms | Only forms of the team (Completion forms) |
| Newsletter, export | The newsletter of the team always goes to families. The export has no section Organizers (Newsletter, Export) |
| Setup plan, empty lists | No step “Invite organizers”. Empty lists do not suggest inviting organizers or reviewing their declaration (Understanding the interface) |
| Notifications | The bell and comment emails link no organizer profile and no team (Notifications) |
| Website, emails, participant list | Offer page, offer list, booking overview, the offer block in emails and the PDF of the participant list name no organizers. The public page of an organizer profile (/v/{alias}) answers with 404 |
| Names in the admin panel | Where an organizer profile is still named (offer, access, account, file details, activity), the name is text instead of a link. On the page of an account, it leads to the page Organizers of this account |
| Unchanged | Existing access through organizer profiles. Exports as Word, XLSX and XML, the API and the offer headers of the admin pages for allocating, reviewing, transferring, entering a registration and deleting still name organizer profiles |
Saved season settings on organizers (who may offer, allocate themselves, publish themselves, confidentiality declaration, completion form) remain in force. They are visible again only when Organizers is on.
Fields per variant
As long as Variants is on, a second switch stands before On | Off of a row: From the main offer or Per variant. It determines whether a variant takes the field over from the main offer or sets it itself.
| Rule | Content |
|---|---|
| From the main offer | The variant takes the value over; every save of the main offer transfers it again. |
| Per variant | Every variant sets the value itself. |
| A field that is off | Keeps its choice and appears pale. |
| Field | Choice | Default |
|---|---|---|
| Title, Organizers, Categories, Collect date of birth | None, always From the main offer; the row shows no switch | – |
| Waiting list, Variants, AI image generation | None; the row shows no switch | – |
| Dates, Repetition, Registration deadline | None, always Per variant, with lock | – |
| Description, What to bring, Fee, Wheelchair accessible, Extra questions, Consents, Address, Note on the meeting point, Pictures, Downloads (PDF), Contact persons, own properties | From the main offer or Per variant | From the main offer |
| Age from / to, Minimum participants, Maximum places | From the main offer or Per variant | Per variant |
Categories
“Filter the offer list and order the booklet. An offer can have several.” The tab always exists. In the offer form, categories appear only when the field Categories under Fields is on; it is off by default.
| Action | Rule |
|---|---|
| New category, Add | Takes effect immediately: “Category “{name}” created.” Duplicate names are rejected. |
| Rename | The alias stays so that links and filters remain correct. |
| Delete | Only without offers: “A category with offers cannot be deleted.” Without confirmation. |
| Order | By dragging; saved with Save. |
Own properties
“Details only this tenant needs.”
| Field | Meaning | Values |
|---|---|---|
| Name, Type | New property (Add property) | Yes/No, Choice, Number, Text |
| Label in the form, Help text | Display in the offer form | Text |
| Values | Only for Choice: one row per value, new rows with Add value. “Order = order in the form”; it can be changed by dragging. The row names “{count} offers” or “not used”. | Text |
| Filter for families on the website, Filter in the offer list of the admin panel | Filter | only for Yes/No and Choice |
| Print in the booklet | Print in the booklet: The exports as PDF and XML and the proof pass active properties with this setting on to their print template (Export). Whether and where they appear in the booklet is determined by the print template of the installation. | on, off |
| Rule | Content |
|---|---|
| Property set on offers | Can only be switched off: “Set on {count} offers — it can only be switched off.” |
| Renaming a value | The new label applies in all offers that carry the value, and in both filters. |
| Value set on offers | The bin of the row is locked: “Used in {count} offers — switch the offers first.” |
Payments
Payment provider
“How families pay and how receipts are numbered.” The menu item Payments and its pages exist only while the app Payments is switched on. While the app is off, their addresses lead to the app in the App-Store. The bank transfer appears on the invoice once Bank details are entered under Receipt & invoice.
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Payments | “The app “Payments” is switched on and off in the App Store.” | “Enabled” | – | The link Open in the App Store… opens the app Payments. |
| Online payment | “Families pay on the website, and the payment is recorded by itself.” | “pmPayment”, “Not set up” | “Not set up” | With “pmPayment”, Open in the App Store… opens the app pmPayment. With “Not set up”, Set up pmPayment… leads to it. |
| Offers selectable for payment | “On: families choose which offers to pay now. Off: one payment covers all open fees.” | on, off | off | Without a selected offer, “Continue to payment” stays locked: “Select at least one offer.” |
| Receipt number prefix | Prefix of the receipt number | Letters, numbers, - _ / .; at most 20 characters | empty | Stands before the running number. |
Booking templates
“For costs covered by third parties, such as BuT.” The family's payment obligation remains, a credit covers it. “Free” is always available. The templates appear in the manual booking under Template, in the order of the list.
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Name | Name of the template | Text | “New template” | Stands under Template in the manual booking. |
| Providers to choose from | Providers that the booking text can name | Names, separated by commas | empty | If several names are listed here, the manual booking shows the selection Provider. |
| Direction | Where the booking goes | + Credit, − Charge | + Credit | The manual booking books in this direction, whatever sign is entered. |
| Code | Mark of the booking | at most 12 characters | empty | Stands in the statement before the booking. |
| Default booking text | Suggestion for Posting text | Text; Insert: {Leistungsträger}, {Monat}, {Kind}, {Angebot} | empty | {Monat} becomes month and year of the booking (03/2027), {Kind} and {Angebot} become first name and offer of the registration under For. A placeholder without a value is dropped together with its separator. |
| Preselect the payment link for the rest | Checkbox in the manual booking | on, off | off | Turns on the checkbox at Request the rest of {amount} by payment link. |
| Show the code in the statement | Mark in the statement | on, off | on | – |
| Rule | Content |
|---|---|
| On / Off | A template that is off is missing from the manual booking. |
| Template with bookings | Can only be switched off: “{count} bookings use this template. Switch it off instead of deleting it.” |
| Order | By dragging; saved with Save. |
Reductions
“Lower the payment obligation and appear on the receipt. Selectable per item when settling.”
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Name | Name of the reduction | Text | “New reduction” | Appears as the reason when billing, as a switch on the participant and on the receipt (“Reduction · {name}”). |
| Reduction | Kind and value | Percent (0 to 100), Fixed amount (in euros), Amount typed | Percent | fepli calculates percent and fixed amount; a fixed amount is at most as high as the fee. With Amount typed, the team enters the amount and a note when billing. |
| Minimum fee | “only from {amount} fee” | Amount | empty | If the regular fee is below it, the reduction does not apply. |
| Maximum fee | “only offers up to {amount}” | Amount | empty | If the regular fee is above it, the reduction does not apply; the fee is not capped. |
| Applies to participants | Switch in the form of the participant | on, off | off | On: The reduction applies to every registration of the participant, online too, unless its status is “submitted” or “rejected” (Participants: Evidence and status). Not with Amount typed. |
| Evidence on the participant | Fields under the switch | Number and valid until, Number only, Valid until only, No evidence | Number and valid until | Only with Applies to participants. |
| Ask for a copy of the evidence | File as evidence | on, off | off | Help text: “As a PDF or photo. To view and download in the participant form.” Only with Applies to participants. If the team switches the reduction off for a participant, fepli deletes the copy. |
| Families state it themselves | Families switch the reduction on in their account | on, off | off | Help text: “In their account, on the child. Until the team confirms the evidence, the full fee applies.” Only with Applies to participants. The list shows the label “stated by families”. |
| Can be chosen per position when billing | Reason when billing | on, off | on | “Appears as the reason on the item. The amount stays editable.” |
| Rule | Content |
|---|---|
| Limits | fepli compares Minimum fee and Maximum fee with the regular fee. “Empty: no limit.” |
| Several reductions on one participant | They do not add up; the one that deducts the most applies. |
| Precedence | A reduction selected when billing takes precedence over the reduction of the participant. |
| On / Off | A reduction that is off is missing when billing and in the form and no longer applies to unpaid registrations. |
| Reduction in use | If receipts, registrations or participants carry it, it can only be switched off: “The reduction is in use. Switch it off instead of deleting it.” |
| Preview | Where the reduction shows on the participant shows the switch of the first active reduction for participants, below it, depending on the settings, the fields Number, valid until and Evidence (“PDF or photo”), and its effect on sample fees |
Direct debit
The page Direct debit is the last one under Payments while the app SEPA direct debit is switched on. It sets the Wording of the mandate. Fields and messages are under Direct debit mandate.
Privacy
Deletion periods
Location: Settings > Privacy > Deletion periods. Above the section Participants without activity stands a sentence that summarises what the values yield and changes as you enter them.
| Sentence | Condition |
|---|---|
| “If a family takes part in no season for {period}, its data goes onto the deletion list. It is erased once somebody confirms the list.” | Flag for deletion is selected or the period is empty (default period). |
| “If a family takes part in no season for {period}, it gets an email {notice} before the deletion. If it then signs in to the account, the period starts again; otherwise the data is erased at night.” | Notice by email, then erase automatically is selected and a period is entered. |
| “If a family takes part in no season for {period}, its data is erased at night without notice.” | Erase automatically without notice is selected and a period is entered. |
If a family takes part in no season for 3 years, it gets an email 14 days before the deletion. If it then signs in to the account, the period starts again; otherwise the data is erased at night.
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Erase after | Period for the data of a family that no longer takes part in a season | Weeks, months, years | empty: 2 years (default period) | “Counted from the end of the last season with a registration, otherwise from creation. Empty: 2 years.” The empty field shows “Default”. With a period entered, the button Back to default ({period}) appears, which empties the field. Under the default period appears “Default period 2 years: participants are only flagged. Notice email and automatic erasure apply only with a period of your own.” Only with a period entered, even with 2 years, do the notice email and automatic erasure take effect. If the operator sets the period by configuration, the page shows it without a field, with “Set by the operator, applies to every tenant.” |
| When the period is over | What happens after the period | Flag for deletion, Notice by email, then erase automatically, Erase automatically without notice | Flag for deletion | See the table below. Under Extend account, the family learns on the website which of these applies (Accounts: On the website). |
| How long before | Lead time of the notice email: number and unit after the label | Days, weeks | empty: 14 days | Visible only with Notice by email, then erase automatically. |
| Choice at When the period is over | Description in the interface | Effect |
|---|---|---|
| Flag for deletion | “Somebody checks and confirms the deletion list. No email to the family.” | Erasure takes place after the list is confirmed under Compliance > Retention. The choice also shows View deletion list with “{count} participants up for deletion”, “1 participant up for deletion” or “Nobody is up for deletion”. A notice email is never sent. |
| Notice by email, then erase automatically | “The family is told beforehand. Signing in to the account afterwards starts the period again.” | Nightly erasure after the notification Notice before erasure. If its text is missing, “Without a text for ‘Notice before erasure’ no email goes out.” appears with the link Write text. |
| Erase automatically without notice | “Check that your privacy statement describes it this way.” | Nightly erasure without an email. |
The choice is saved as two values: erase automatically and send notice email. The notice email applies only together with automatic erasure; with Flag for deletion, a notice email is never sent.
The section Data controller begins with “Mandatory information on the ‘Data use’ page in the account.”
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Name | Name of the controller | Text | – | The controller appears only when name, street, postcode and town are present. |
| Department | Addition to the name | Text | – | – |
| Street and house number | Address | Text | – | – |
| Postcode and Town | Postcode and town, side by side | Text | – | If only part is filled in, below it says “{count} of 5 details is missing.” or “{count} of 5 details are missing.” and “The controller is shown only with name, street, postcode and town.” |
Retention
Location: Settings > Privacy > Retention. The page determines how long what outlasts a person is kept: “What stays once a person is erased, and for how long. Empty fields use the default.” The period for the data of the participants is under Deletion periods. The button Compliance › Retention opens the list in the Compliance area.
Above the table stand two boxes that apply to every row.
| Box | Text |
|---|---|
| Flag | “What is due shows under Compliance › Retention. Nothing is erased until somebody starts the run.” |
| Automatic | “The nightly run erases without confirmation. The period is the same either way.” |
The table has the columns What, Keep for, Afterwards and Due now. In each row, the segment Flag or Automatic selects what happens after the period.
| Row | Keep for | Counted from | Default | Afterwards |
|---|---|---|---|---|
| Receipts | Years, 1 to 30. Mark “Statutory retention” with § 147 AO. | End of the year of issue | empty: 8 years | Flag or Automatic, default Flag. Name, address and email address are removed, the stored receipt file is deleted. Amount and receipt number stay. Rule Receipts past their retention duty (Data subject rights). |
| Proofs of consent | Years, 1 to 30. Mark “Duty to demonstrate consent” with Art. 7 GDPR. | Year end after the consent has ended | empty: 3 years | Flag or Automatic, default Flag. Until then a consent keeps applying, even once the person is erased. When a consent ends: Period of validity. Rule Proofs of consents that are over (Data subject rights). |
| Uploads from families | Months, years | End of the season, otherwise receipt | empty: 1 year | Flag or Automatic, default Automatic. Meant are files that families upload with a registration or attach to an email reply. Registration and message stay. Rule Uploads of families (Data subject rights). |
| Emails and text messages | Months, years | Sending | empty: 2 years | Flag or Automatic, default Flag; Automatic if a period is entered and no choice is saved yet. Meant are the copies of sent messages in the outbox. Rule Sent emails and text messages (Data subject rights). |
| Dispatch log | Years | Sending | empty: 3 years | Flag or Automatic, default as with Emails and text messages. The log records who received which message when, without content. Rule Dispatch log (Data subject rights). |
| Pseudonyms | Years, 1 to 30 | End of the season | empty: off | No choice. With a period entered it says “The nightly run removes them.”, otherwise “Stay until a period is entered.” Erased participants stay under a pseudonym so that the statistics count them; after that, the statistics count only bookings. Rule Pseudonyms of erased participants (Data subject rights). |
An empty field shows its default period as a placeholder, the field of the pseudonyms “off”. The column Due now states how many entries the rule currently covers and links to Compliance > Retention. Without due entries it shows “–”.
Below the table, Where the records are stored shows where the PDFs are kept: “Where the PDFs of the receipts and of the proofs of consent are kept. The installation decides where.” The details cannot be changed here.
| Row | Display | Meaning |
|---|---|---|
| Receipts | “Object storage, every file locked” | “Each receipt is locked until its retention period ends: {years} years from the end of the year it was issued in. Until then it can be neither deleted nor overwritten, not by fepli either.” |
| Receipts | “The installation's file storage, not locked” | “The receipts are on the server of the installation and are not locked against deletion.” |
| Proofs of consent | “Object storage, every file locked” | “Each proof is locked while the consent is in force, and after it ended for {years} years from the end of that year. Until then it can be neither deleted nor overwritten, not by fepli either.” |
| Proofs of consent | “The installation's file storage, not locked” | “The proofs are on the server of the installation and are not locked against deletion.” |
| Note for object storage | – | “A changed period applies to files stored afterwards. A lock that exists is never shortened.” |
Privacy statement
| Field | Meaning | Values | Default | Effect |
|---|---|---|---|---|
| Text | Page Privacy, linked in the footer of every page of the admin panel, even without a public website | Markdown | – | An empty field removes page and link. Save and view saves and opens the page: “The privacy statement has been saved.” |
The tab Privacy statement exists only in installations with tenants. In installations without tenants, the link Privacy in the admin panel leads to the page /datenschutz of the website, if there is one.
Exports
Location: Settings > Exports. Here super admins create own export templates and fonts for PDF outputs. Fields, types and messages are under Export templates.
Integrations
Services of other providers, the interface and the embeds for other websites are under Settings > App-Store (App-Store).
Service accounts
| Element | Content |
|---|---|
| Location | Settings > Integrations; in the app API also through Manage service accounts (App-Store) |
| Service account | Machine identity for the interface, independent of people |
| New service account | Fields Name, Description, Roles, Access |
| Roles | Admin, Super admin, Participants, Payments, Organizers; at least one. Preselected: Admin. Note: “Participants and Payments require Admin.” Participants or Payments without Admin or Super admin: “Participants and Payments require the role Admin. Pick Admin as well.” |
| Access | Read only, Read and write; preselected: Read only. Upper limit for all tokens of the account: “‘Read only’ allows no writing token.” |
| New API token | Label, Valid until (empty: no expiry), Access. The token appears only once. |
| Actions | Edit; Disable and Enable; Revoke per token; Delete under Delete service account |
| Disabled | “The service account is disabled.” Its tokens are rejected. New tokens can be created only after Enable. |
| Deleting | “Deletes the account with all tokens. Integrations lose access immediately.” |
| Naming | Status changes on offers and registrations, as well as receipts, that a service account triggers through the API show “{name} (service account)”, with the name it had at that moment. A registration that it creates counts as created by the team. |
| Organizers’ consent | A service account cannot confirm the declaration. If the season requires the declaration, fepli rejects invitations with which it invites new organizers to register. |