Here's how the payment model in StalliQ works: For each riding lesson you define two separate cash prices (with/without a school horse) and/or a selection of accepted lesson cards. When booking, students first pick their horse and then the payment method from the picker. Cash bookings create open claims, which you mark as paid or cancel in the attendance check or in the admin list "Claims". For every cancellation - card sale, open cash claim or already-paid cash lesson - you enter a mandatory reason. The system automatically creates accounting-correct offsetting entries.
Requirements
You need a stable plan from Stable S upwards and the permissions "Manage schedule" + "Record attendance". In addition, riding lessons must be configured with a payment model (see Creating a schedule).
Horse-type permission per lesson
For each lesson you control which horse types are allowed - implicitly via the payment configuration:
- School horse allowed: at least one school-horse cash price OR at least one card with horse type
School horse/Both - Own horse allowed: at least one own-horse cash price OR at least one card with horse type
Own/Both
In the lesson detail, two InfoRows are shown - one per allowed horse type:
- "With school horse: Cash or card"
- "With school horse: Cash" (cash only, no matching card linked)
- "With own horse: Card only" (card only, no own-horse cash price)
This way the student sees at a glance what's possible. A horse type without an InfoRow is not allowed for the lesson.
Soft warning: "Asymmetric cash prices"
If you allow cards for both horse types (e.g. a "Both" card or one per type), but only one of the two cash prices is filled in, StalliQ shows a hint:
"Asymmetric cash prices: Cards allow both horse types, but only one has a cash price. Make sure this is intended."
It doesn't block - valid models are possible (e.g. "school horse by card only" while own-horse riders pay cash or card). Just add the missing cash price if it was an oversight.
Cash booking in the student flow
When the student picks "Pay cash X €" in the booking picker:
- The booking is created with status
payment_method = cash - No card deduction
- An open cash entry appears in your claims list
- During attendance recording you can collect the cash
Collecting cash claims
You have two ways to mark cash as paid:
Way A - Inline in the attendance check (riding instructor)
Open the completed lesson in the occupancy tab. For each cash booking you see in the participant row:
- Yellow cash icon = open
- Green checkmark = already paid
- "Paid" button (compact, next to the attendance status)
- "Cancel" button (for cash claims not yet collected)
Tap "Paid" → the entry is immediately marked as paid, appears in the finance overview and is removed from the open claims list.
Way B - Admin list "Claims"
Go to Administration → Claims. The list has two tabs:
"Cash open" - All cash bookings without a "Paid" mark. For each entry you see:
- Member (or managed person), lesson, date, amount, riding instructor
- "Paid" button - marks the claim as paid
- "Cancel" button - opens the reason sheet (mandatory reason)
"Cards in the negative" - Members with a negative balance on a card. For each entry:
- Member, card type, negative balance
- "Set to 0" button - opens the reason sheet, resets the balance (e.g. after a manual cash payment)
Cancelling - three scenarios
Every cancellation needs a mandatory reason (free text, multiline, at least 1 character). StalliQ automatically creates offsetting accounting entries so the receipt-number sequence stays gapless.
Scenario 1 - Card sale booked incorrectly
When: You sold a person the wrong card (wrong type, wrong member).
Requirement: No unit may have been used yet.
Where: Statistics → Finance tab → tap the sale entry → "Cancel".
What happens:
- The reason sheet opens (e.g. "Wrong tariff, replaced with the correct card")
- Confirm
- The card is removed from the member
- Negative offsetting entry in the finance overview (red, with a minus)
- The original sale stays visible with a "cancelled" badge
Error case: Units already used → "Card partially used". First cancel the affected bookings (attendance set to "Excused"), then cancel the card.
Scenario 2 - Cash claim open, lesson cancelled
When: The lesson was cancelled or the student didn't show up, and you don't want to collect the claim.
Where: Inline in the attendance check (open the lesson → "Cancel") OR in Administration → Claims → "Cash open" → "Cancel".
What happens:
- The reason sheet opens
- Confirm
- The entry appears with 0 € + badge in the statistics (visually set off with opacity 0.6)
- The open claim disappears from the "Cash open" list
Scenario 3 - Cash already paid, refund needed
When: The student has already paid cash, but you have to give money back (e.g. goodwill, double payment).
Where: Statistics → Finance tab → tap the already-paid cash entry → "Cancel".
What happens:
- The reason sheet opens
- Confirm
- Negative offsetting entry with a minus amount in the statistics
- The original payment stays visible, the "paid" status is reverted
- The member's balance for this booking: 0
Statistics impact
| Action | Sales list | Total income | Receipt-number sequence |
|---|---|---|---|
| Card sale | Entry with receipt number | +Amount | gapless |
| Card cancellation | Negative offsetting entry, red | −Amount | gapless, new receipt |
| Cash paid | Entry (no receipt-number cycle) | +Amount | none |
| Cash claim cancelled (unpaid) | Entry with 0 € + badge | unchanged | none |
| Cash refund (paid → returned) | Negative offsetting entry | −Amount | none |
Refund + cancellation badges in the statistics header show at any time how many corrections were made in the current period.
Who may cancel?
Cancellation actions require the permission "Record attendance" for cash cancellations and "Manage quotas" for card cancellations. Owners and managers automatically have both.
Audit trail
Every cancellation logs: who cancelled which entry, when, and for what reason. You'll find the history:
- For cards: in the card transaction history (Administration → Quotas → open card)
- For cash bookings: in the statistics (sales list with the filter "cancellations only")
Frequently asked questions
Can I cancel a card booking whose units have already been used?
Not directly. First cancel the affected bookings (change the lessons' attendance to "Excused", then the units come back onto the card) and then cancel the card sale.
What happens to the receipt number on a cancellation?
It is preserved. The cancellation creates a new receipt with its own number and a negative amount - this keeps the sequence gapless and accounting-clean. Both receipts (original + cancellation) are visible in the PDF/CSV export.
Can a student mark a cash claim as paid themselves?
No. Only riding instructors + managers + owners can mark "Paid". In their booking history, the student sees the status "Cash open" or "Cash paid".
What happens if I accidentally mark a cash claim as paid?
You can reverse the action: Statistics → sales list → open the paid cash entry → "Cancel" (Scenario 3, refund). This resets the status to "open" and creates a negative offsetting entry - the member's balance is unchanged again.
How does the student see the cancellation?
For card cancellations: push notification + entry in the card transaction history with the mandatory reason. For cash cancellations: entry in their own booking history with the note "cancelled" and the reason you entered.