Ga naar hoofdinhoud

Instellingen

Base path: /api/settings

GET /settings

Alle instellingen ophalen.

Auth: Admin

Response: Enkel settings object (id=1) met alle configuratiekolommen. Gevoelige velden (smtp_pass, sumup_api_key, mollie_api_key, stripe_secret_key) worden gemaskerd als "********".


PUT /settings

Instellingen bijwerken. Alleen velden in de request body worden bijgewerkt.

Auth: Admin

Request body: Object met te wijzigen velden:

{
"salon_name": "Lumi Salon",
"salon_email": "info@salon.nl",
"currency": "EUR",
"timezone": "Europe/Amsterdam",
"language": "nl",
"dark_mode": "system",
"booking_mode": "direct",
"booking_clients": "all",
"booking_show_prices": 1,
"booking_show_duration": 1,
"booking_allow_staff_choice": 1,
"booking_min_lead_hours": 12,
"booking_max_future_days": 60
}
notitie

Wanneer purchase_orders_enabled op 0 wordt gezet, wordt internal_consumption_enabled automatisch ook op 0 gezet. internal_consumption_enabled op 1 zetten terwijl purchase_orders_enabled 0 is, geeft een 400 fout.


Salon logo uploaden.

Auth: Admin

Content-Type: multipart/form-data

VeldTypeVerplichtBeschrijving
logobestandJaAfbeelding (JPEG, PNG, GIF, SVG, WebP; max 5MB)

Response: { "url": "/uploads/logo-1234567890.png" }


POST /settings/test-email

Test-e-mail versturen om de SMTP-configuratie te verifiëren.

Auth: Admin

Request body: { "to": "test@example.com" }

Response: { "ok": true } of 400 met foutmelding als SMTP mislukt.


Locaties

Locaties worden beheerd via een aparte route op /api/locations (niet onder /api/settings).

GET /locations

Alle vestigingen ophalen. Ondersteunt ?active=true voor alleen actieve vestigingen.

Auth: Ingelogd

GET /locations/:id

Enkele vestiging ophalen.

Auth: Ingelogd

POST /locations

Nieuwe vestiging aanmaken.

Auth: Admin

VeldTypeVerplicht
namestringJa
addressstringNee
phonestringNee
emailstringNee
is_defaultbooleanNee

PUT /locations/:id

Vestiging bijwerken.

Auth: Admin

DELETE /locations/:id

Vestiging verwijderen.

Auth: Admin


Feestdagen

GET /settings/holidays

Feestdagen ophalen gesorteerd op datum.

POST /settings/holidays

Feestdag toevoegen.

VeldTypeVerplicht
namestringJa
datestring (JJJJ-MM-DD)Ja

DELETE /settings/holidays/:id

Feestdag verwijderen.


Openingstijden

Openingstijden worden ingesteld als onderdeel van de initiële setup (POST /api/auth/setup) en worden opgeslagen in de opening_hours tabel. Er is geen apart REST-endpoint om openingstijden na de setup aan te passen.


BTW-tarieven

GET /settings/vat-rates

Alle BTW-tarieven ophalen.

POST /settings/vat-rates

Nieuw BTW-tarief aanmaken.

VeldTypeVerplichtStandaard
namestringJa
percentagenumberJa
is_default0/1Nee0
is_disabled0/1Nee0

PUT /settings/vat-rates/:id

BTW-tarief bijwerken.

DELETE /settings/vat-rates/:id

BTW-tarief verwijderen.


Feature toggles

Optionele functies worden bestuurd via kolommen in de settings tabel.

Algemeen

InstellingTypeStandaardBeschrijving
swipe_actions_enabledboolean1Veeg-gebaren (mobiel)
haptic_feedback_enabledboolean1Haptische feedback (mobiel)
longpress_contact_enabledboolean1Langindrukken om te bellen/berichten (mobiel)
offline_mode_enabledboolean1Offline caching voor de mobiele app
staff_personal_agenda_enabledboolean1Medewerker ziet alleen eigen agenda

Voorraad & Inkoop

InstellingTypeStandaardBeschrijving
purchase_orders_enabledboolean1Inkooporders en leveranciers. Wanneer false wordt quantity_on_hand bewerkbaar
internal_consumption_enabledboolean1Intern verbruik tabblad. Vereist purchase_orders_enabled = true

Dashboard & Analyses

InstellingTypeStandaardBeschrijving
daily_revenue_goal_enabledboolean0Dagelijks omzetdoel op dashboard
daily_revenue_goalnumber0Doelbedrag dagelijkse omzet
revenue_forecast_enabledboolean0Omzetprognose widget
visit_frequency_alerts_enabledboolean0Waarschuwing als klanten te lang wegblijven
visit_frequency_daysinteger42Drempel in dagen voor bezoekfrequentie-alerts

CRM & Marketing

InstellingTypeStandaardBeschrijving
followup_sequences_enabledboolean0Automatische follow-up e-mailreeksen na afspraken
product_recommendations_enabledboolean0Productaanbevelingen voor klanten
giftcard_qr_enabledboolean0QR-codes op cadeaukaart e-mails
seasonal_promotions_enabledboolean0Seizoensgebonden promotie-automatisering
bulk_campaigns_enabledboolean0Bulk e-mailcampagnes
waitlist_position_enabledboolean0Wachtlijstpositie tonen aan klanten

Meldingen

InstellingTypeStandaardBeschrijving
notify_salon_waitlist_joinboolean1Melding bij aanmelding voor wachtlijst
notify_salon_slot_availableboolean1Melding bij beschikbaar plekje
noshow_email_enabledboolean1E-mail bij no-show kosten
low_stock_email_enabledboolean1E-mail bij lage voorraad
booking_request_notify_emailboolean1E-mail naar admin bij nieuwe boekingsaanvraag (provisional)
booking_request_notify_pushboolean1Pushmelding naar admin bij nieuwe boekingsaanvraag (provisional)

No-show kosten

InstellingTypeStandaardBeschrijving
noshow_enabledboolean0Automatische no-show kosten via Stripe
noshow_fee_typestringpercentagepercentage of fixed
noshow_fee_valuenumber50Percentage (0-100) of vast bedrag
noshow_min_amountnumber0Minimale no-show vergoeding

Loyaliteitsinstellingen

De loyaliteitsinstellingen worden beheerd via een aparte route op /api/loyalty. De loyalty_enabled vlag staat in de loyalty_settings tabel, niet in de hoofd settings rij.

GET /loyalty/settings

Loyaliteitsinstellingen ophalen inclusief loyalty_enabled, punten per euro en beloningsdrempels.

PUT /loyalty/settings

Loyaliteitsinstellingen bijwerken.

Auth: Admin