Payments + POS

A till that closes cleanly every night.

Tips with refunds, multiple tenders on one sale, in-store credit with a real ledger, three-axis refunds with independent caps, a cash drawer that tracks itself per branch. The salon math that adds up at the end of the day.

Built for salons recording payments in person today (cash, card terminal, bank transfer). Online card collection through Stripe Connect is the next major payments push once live keys land.

01/

Tips that move with the rest of the money.

Every payment dialog has a Tip column. The tip lands on the payment record, the staff member, and the day's reports. Refunds split into service refund and tip refund with independent caps so a partial-service refund doesn't auto-zero the tip. Quick Sale refunds claw back commission proportionally (a $50 refund against a $100 sale halves the commission, industry standard).

  • Tip tracking per staff.

    Reports → Tips tab shows per-staff payout totals for any date range. Dashboard 30-day card sums collected tips with refunds netted in.

  • Independent tip refund.

    Refund the service in full, keep the tip. Or refund the tip while the service stands. Each axis has its own remaining cap.

  • Proportional commission claw-back.

    A $50 refund on a $100 sale halves the staff's commission. Full claw-back over-penalizes for manager-initiated partial refunds; the proportional shape is the industry standard.

  • Refund query is all-time.

    Refund row landing after the report period still nets honestly. The reports page query reaches back, not just inside the window.

02/

Multi-tender on one sale.

A client pays half cash and half card. Plus a deposit they already paid at booking. Plus on-file credit because they have a $30 balance. Four tenders on one sale; the dialog handles it without making you reconcile by hand. Each tender writes its own payment row so the audit trail shows the split exactly the way it happened.

  • Cash plus card plus credit plus deposit.

    All four can land on a single appointment checkout. The dialog totals and validates so partial amounts can't under-pay or over-pay the visit.

  • Cash change calculator.

    When the method is CASH, a Cash received input with one-tap quick chips ($40 / $50 / $100) appears. Live Change due or Still owed readout below. Currency-aware.

  • Method-independent refunds.

    A card-paid sale can be refunded in cash at the front desk. The refund records the method that left the till, not the method that came in.

  • Cash refunds debit the drawer.

    A cash refund (appointment or Quick Sale) auto-records a Pay-Out on the branch's open cash session. No double entry.

03/

In-store credit with a real ledger.

Every client has a Credit on file card on their detail page with the current balance and the last five ledger entries. Issue credit by reason: Manual (service-recovery comp), Gift card (manual redemption of a card the client brought in), Adjustment (corrective entry, can add or remove). Every issuance and every redemption writes a signed ledger row with a required reason; the cached balance stays in sync via the same transaction.

  • Apply at appointment checkout.

    The payment dialog lists On-file credit as a tender method when the client has a positive balance. Drawn against gross (service + tip + tax). Balance check inside the same transaction so two staff redeeming simultaneously can't both succeed.

  • Apply at Quick Sale.

    Credit chip on the Quick Sale method picker for SERVICE and RETAIL sales. PACKAGE sales reject credit (no laundering one credit type into another).

  • Refund to credit on appointment refunds.

    The refund dialog has a Refund to credit method. Tops up the client's on-file balance instead of cash or card back. Three-axis cap still applies.

  • Refund to credit on Quick Sale refunds.

    Same shape on the /sales kebab refund flow. Walk-in sales with no client still get the legacy four methods.

04/

Per-batch credit expiry with FEFO drain.

Optional expiry date on every credit issuance. When a client redeems, we drain the soonest-expiring batch first; never-expiring credit drains last so a no-expiry pool can't bypass an expiring batch and leave the client losing money to a write-off. The expiring-credit badge on the client card shows the soonest four batches; 14-days-or-less batches turn amber. A daily cron at 07:00 UTC auto-writes-off expired batches with a system ledger entry.

05/

Three-axis refunds with independent caps.

Service, tip, and tax each have their own remaining cap. Refund the service in full while keeping the tip and the tax, or refund just the tax line on a tax-jurisdiction correction, or refund the tip while the service stands. Partial and multiple refunds against the same payment supported. Inline indicators on the row: amber "−$X refunded" tag while partial, strikethrough total plus REFUNDED tag once fully refunded.

  • Service refund.

    Cap is what's left after prior refunds. Required reason; freeform text.

  • Tip refund.

    Independent of service. Cap is the tip remainder.

  • Tax refund.

    When the tax was collected in error or a jurisdiction correction comes through.

  • Refund row writes audit.

    Each refund writes a row with the staff member, the timestamp, the reason, and the per-axis amounts. The audit reconciles with the P&L and the cash drawer.

06/

Cash drawer per branch, with the count math built in.

Per-branch cash tracking under its own tab. Three actions: New count (closes the current period, opens the next from what you counted), New pay-in (cash going in outside normal payments), New pay-out (cash leaving for supplies, reimbursements). Cash payments and Quick Sales auto-link into the open session; cash refunds debit it. No double entry.

  • Per-denomination grid.

    Close count with a tidy bills + coins grid for whatever currency you're on (USD, EUR, GBP, AUD, CAD, NZD, SGD, MYR, PHP, AED). Each row computes its dollar value live. Other line catches rolled coins.

  • Deposit to safe or bank on close.

    Tick the box on Close count, leave the float you want for tomorrow, the rest records as a Pay-Out automatically. New session opens at the float amount.

  • Drill into any session.

    Every row opens to show every entry that made it up: kind badge, source label ("Appointment payment - Maya P."), description, timestamp, signed amount. Source links deep into the appointment or sales list.

  • Void manual entries.

    Fat-fingered a $200 pay-in that should've been $20? Kebab → Void entry with optional reason. Voided entries stay visible with strikethrough plus VOIDED badge; closed sessions stay locked.

07/

Online payments are on the way, not pretending.

v1 is manual payment recording: the salon takes payment in person via cash, card terminal, or bank transfer and logs the payment in Flowesce. Stripe Connect (per-business onboarding, card-on-file, online deposit collection at booking, online retail and gift card sales, paid no-show fees auto-charged, recurring memberships) is the next major payments push. It's blocked on Songer Tech's Stripe live-keys swap, not on the engineering work.

Common questions

Honest answers, including the ones we don't love.

Can a client pay across two visits?

Yes. The first visit takes whatever they pay, the remainder lands as an outstanding balance on the appointment. The next visit checkout picks it up and itemizes the carry. The receipt PDF shows the carry separately so the client sees what they're paying for.

What happens if a refund exceeds what's left?

The dialog blocks. Each axis has a remaining cap calculated from prior refunds. A partial refund five minutes ago is reflected in the cap right now; you can't refund more than was paid.

Where do tips appear in reports?

Tips tab on Reports for per-staff payouts in any date range. Dashboard 30-day card for the running view. The P&L doesn't roll tips into revenue (tips are passthrough to staff, not your money) but the Payroll page sums them per staff for the export.

Is the cash drawer required?

No. Salons that don't take cash skip it entirely. Salons that do get the auto-link from cash payments and refunds without setting up anything; just hit Close count when it's time. The drawer surfaces only render with cash activity.

What about gift cards?

Gift cards today are the in-store credit primitive: take the money on the sale, issue credit on the recipient's account (Gift card reason). Digital gift card with a unique code emailed to the buyer is on the post-launch list; the credit primitive holds up for the in-salon and over-the-phone case.

Fourteen days. No card.

Try Flowesce on a real Saturday.

No card required, no auto-charge at the end. If Flowesce isn't for you, export everything in one click and walk.