Features

Everything a personal-care business runs on

Booking, records, compliance, prepaid revenue, scheduling, POS and analytics — designed together as one platform, not bolted on after the fact.

Bookings & calendars

Take several services in a single appointment with combined duration, and only ever offer workers who can perform every selected service. Choose a specific professional or let smart auto-assignment pick a free one. Recurring series are generated upfront and rejected as a whole if any occurrence has no availability — never a half-booked series.

  • Multi-service appointments with combined duration
  • Auto-assignment: first-available, least-booked or random
  • Recurring weekly, biweekly or monthly series
  • Conflict detection prevents double-booking

Embeddable booking widget

Add a Book Now button to your existing website with a single script tag. Visitors book in an isolated iframe without leaving your site. Guests check out with no login — contact details are collected inline with GDPR consent. The vanilla JS SDK is roughly 4.7 KB with zero dependencies.

  • One script tag, ~4.7 KB, zero dependencies
  • Modal or inline mode, configurable by data attributes
  • Guest booking with inline GDPR consent
  • Rate-limited with blocked-customer detection

Google Calendar sync

Connect one Google account with a single click — F9 never stores a Gmail password, only scoped revocable OAuth — and confirmed bookings mirror one-way into a dedicated F9 Bookings calendar. Privacy-first: the event shows the service and time only; customer names, phones and notes never leave F9. An optional auto-share invites each worker by a dedicated Google address. Available and live-verified end-to-end on the development environment; production rollout is pending Google OAuth app verification.

  • One-click OAuth connect — no password stored
  • Service and time only — no customer PII leaves F9
  • Optional per-worker auto-share, fully reversible

Customer management & GDPR

Encrypted customer profiles with visit history, staff notes, allergy flags and loyalty — one global identity per person, linked per salon. Customers exercise their own GDPR rights from the portal: a data-portability export (Article 20) builds asynchronously and arrives by email, and account closure (Article 17) runs a 30-day cooling-off period before cryptographic key destruction.

  • Per-field encryption with per-tenant keys
  • Self-service data export (GDPR Article 20)
  • Self-service erasure with cooling-off (Article 17)
  • Privacy-preserving blind-index name search

Worker & staff scheduling

Reusable shift-cycle templates of any length, intra-shift breaks the availability engine respects, time-off requests with automatic conflict detection, and shift swaps that reassign existing bookings on approval. Every transition lands in an append-only audit trail, and managers triage time-off and swap queues from one place.

  • N-day shift-cycle templates with breaks
  • Time-off requests with conflict detection
  • Direct and open shift swaps with auto-reassignment
  • Append-only audit trail on every change

Inventory with dual thresholds

Track stock per location with two alert levels — warning and critical — so you reorder before you run out, not after. Owners get an aggregate view across every location. Sellable retail products carry SKU, barcode and price, go straight onto invoices, and are deducted from stock automatically on payment.

  • Dual warning and critical thresholds per item
  • Aggregate stock view across all locations
  • Retail products auto-deducted on payment

Reporting & analytics

Five report categories — Financial, Bookings, Clients, Staff and Inventory — with date-range filtering, per-location filtering, automatic day/week/month grouping and CSV export. Revenue by service, worker, location and payment method; retention and rebooking rates; per-worker utilisation against scheduled hours; stock valuation and slow movers.

  • Financial: revenue by service, worker, location, method
  • Bookings: volume, peak hours, source attribution
  • Clients: retention, rebooking, visit frequency
  • Staff: utilisation against scheduled hours
  • Inventory: valuation, top sellers, slow movers

Service packages

Sell pre-paid service bundles such as 5 × Haircut + 3 × Colour, with optional expiry. A fiscal invoice is raised at purchase under Croatian SPV rules — VAT is paid upfront — and each redemption generates a non-fiscal A5 usage receipt in Croatian and English, clearly labelled, and emailed to the customer.

  • Pre-paid multi-service bundles with optional expiry
  • SPV fiscal invoice raised at purchase
  • Non-fiscal A5 usage receipt per redemption

Memberships

Monthly, quarterly or annual plans with included services, member-only discounts, priority booking and a loyalty-points multiplier. Full freeze, unfreeze, prorated cooling-off refunds, cancellation and auto-renewal. Cron jobs handle renewal reminders, period expiry with a grace window, and scheduled unfreeze — and members see it all in the customer portal.

  • Monthly, quarterly or annual recurring plans
  • Included services and member discounts
  • Freeze, refund, cancel and auto-renew workflows

Gift cards

Staff sell multi-purpose vouchers through the POS at tenant-configurable denominations. Croatian MPV treatment, confirmed with FINA and an accountant: no VAT at sale, VAT charged at redemption on what is actually supplied. Balances decrement on partial use, codes are tenant-unique, and an A5 receipt in Croatian and English carries the legal MPV clause.

  • Croatian MPV: no VAT at sale, VAT at redemption
  • Decrementing balance for partial redemptions
  • Bilingual A5 receipt with legal MPV clause

POS item picker & split payments

A kiosk-style picker with kind tabs for services, products, packages, memberships and gift cards over a shared tile grid — tap to add, keep the picker open for rapid multi-item tickets, commit once at the end. A single invoice can be settled with several payment methods at once; mixed-method invoices report to FINA correctly. Split and partial payments are per-tenant opt-in.

  • One ticket: services, products, packages, gift cards
  • Keyboard-wedge barcode scanning while open
  • Split a single invoice across several methods
  • Partial-payment deposits, per-tenant opt-in

Cash drawer & fiscal delivery

Croatian-compliant cash handling and fiscalisation. Every fiscal invoice carries the legal JIR and ZKI and a scannable QR code pointing at porezna.gov.hr, and is emailed to the customer as an A4 PDF in Croatian and English. The cash drawer covers blagajnički maksimum and the Odluka PDF, a dnevnik blagajne day journal, variance classification at close, and one-click JOPPD monthly tip export.

  • JIR, ZKI and FINA QR on every invoice
  • Blagajnički maksimum with on-demand Odluka PDF
  • Dnevnik blagajne cash-drawer day journal
  • Variance classification at day close
  • JOPPD monthly tip export (XML + CSV)

Viva.com card acceptance

Optional in-person card payments on a physical Viva.com Cloud Terminal. The cashier sends the amount, the terminal prompts the customer to tap, and Viva's webhook finalises the invoice with the Croatian fiscal number. Credit notes on a Viva-paid invoice fire a linked refund straight back to the original card. Manual card entry stays available as a fallback.

  • In-person tap-to-pay on a Cloud Terminal
  • Webhook finalises with the fiscal number
  • Linked refunds back to the original card

Clinical consultations

Author versioned intake questionnaires with typed questions — text, choice, date, photo — under a Draft, Published, Archived state machine. Customers complete them from the portal; each submission becomes an immutable, HMAC-sealed clinical record that is independently re-verifiable. A booking-confirmation gate can block a booking until the required form is filled.

  • Versioned, typed intake questionnaires
  • Immutable HMAC-sealed clinical records
  • Booking gate until the form is completed

Consent center

Versioned consent forms in Croatian and English under the same Draft, Published, Archived lifecycle. Customers sign from the portal with a simple electronic signature under eIDAS — typed name, agreement checkbox, and IP, user agent and timestamp captured and sealed. Each signature snapshots the body it agreed to, and an on-demand A4 PDF receipt is produced for legal review.

  • Versioned bilingual consent forms
  • eIDAS simple electronic signature, sealed
  • On-demand A4 PDF receipt for legal review

Role management

Move beyond three fixed roles to custom role profiles. Each definition layers a fine-grained permission set — 27 keys across 9 domains — on top of a base role, gating both the management sidebar and individual actions. Permissions can only restrict, never elevate above the base role, so least-privilege access is the default.

  • 27 permission keys across 9 domains
  • Custom roles on top of a base role
  • Permissions restrict, never elevate

Multiple locations (POPs)

Run several salon locations under one business, each with its own inventory, workers and calendar. Tenant-wide closures apply to every location at once for national holidays, while per-location closures handle a single site being shut.

  • Per-location inventory, workers and calendar
  • Tenant-wide and per-location closures

Multi-language

Croatian and English are available at launch across the management console, customer portal and emails, with locale resolved per recipient. German and Italian are planned for a future release — they are on the roadmap, not yet available.

  • Croatian and English available now
  • German and Italian planned

Subscription billing

Your subscription is governed by a real state machine — trialing, active, past-due, unpaid and beyond — with a configurable grace window so a single failed renewal never collapses your account. The management console shows a clear, state-aware billing banner and a trial countdown so you always know where you stand.

  • Seven-state subscription lifecycle
  • Grace window keeps the app usable on a failed renewal
  • State-aware banners and trial countdown