Door naar de inhoud

Begrijpen: boekingen, credits en terugbetalingen

Het grote plaatje: hoe een boeking een credit verbruikt, hoe credits samenhangen met betalingen, en wanneer geld of credits terugkeren.

Credits zijn de rekeneenheid die het boekingsproces en het betalingsproces met elkaar verbindt. Een klant koopt credits, gebruikt credits om te boeken, en kan ze terugkrijgen als de boeking wordt geannuleerd of de aankoop wordt teruggedraaid. Deze pagina legt uit hoe dat systeem als geheel werkt — niet stap voor stap, maar conceptueel: waarom het zo is ingericht en wat de gevolgen zijn.

Van betaling naar credit naar boeking

Het fundament is een lineaire keten: een betaling levert credits op, credits maken een boeking mogelijk.

Concreet verloopt het zo:

  1. Een klant koopt een creditpakket. De betaling wordt verwerkt (via Mollie). Zodra de betaling bevestigd is, worden credits bijgeschreven op het saldo van de klant en wordt een aankooporder (order) aangemaakt met de status completed.
  2. Bij het boeken van een les controleert het systeem of het saldo hoog genoeg is om de creditkost van de dienst te dekken. Is dat het geval, dan worden de credits afgetrokken en wordt de boeking bevestigd.
  3. Elke creditbeweging — aankoop, aftrek bij boeking, restitutie bij annulering — wordt vastgelegd in het creditledger. Dat ledger is onveranderlijk: er worden nooit regels gewijzigd, alleen nieuwe bijgeschreven.

Dit ontwerp betekent dat het creditsaldo altijd de som is van alle ledgerposten. Er is geen aparte "stand" die los kan lopen van de geschiedenis.

FIFO: oudste credits eerst

Als een klant meerdere creditpakketten heeft gekocht — waarvan sommige met een vervaldatum en andere zonder — bepaalt het systeem in welke volgorde credits worden verbruikt via het first in, first out-principe: de credits die het vroegst vervallen, worden als eerste afgetrokken. Credits zonder vervaldatum slijten pas nadat alle credits met een vervaldatum op zijn.

Dit principe beschermt de klant: credits die anders zouden verlopen, worden automatisch prioritair verbruikt. De volgorde wordt bepaald op het moment van de boeking door de aankooporders te ordenen op vervaldatum (expires_at ASC NULLS LAST), daarna op voltooiingsdatum.

Wat er precies wordt afgetrokken

Bij een boeking worden twee dingen gelijktijdig gedaan in een databasetransactie:

  • Het creditsaldo van de klant daalt met de creditkost van de dienst.
  • Een ledgerregel van het type booking wordt aangemaakt met het negatieve bedrag en het saldo erna.

Tegelijk wordt per aankooporder bijgehouden hoeveel credits het heeft bijgedragen aan de boeking. Dit is de basis voor terugbetalingscontroles later: een order met consumed_credits > 0 komt niet meer in aanmerking voor een volledige terugbetaling.

Credits terugkrijgen bij annulering

Of een klant credits terugkrijgt bij een geannuleerde boeking, hangt af van het boekingsbeleid van de studio — niet van het betalingssysteem. De studio bepaalt tot hoe lang vóór de sessie gratis geannuleerd mag worden en of de credit dan terugkeert.

Dit onderscheid is conceptueel belangrijk: een geannuleerde boeking die credits restitueert is iets anders dan een terugbetaling van een aankoop. Bij een creditrestitutie na annulering stijgt het saldo weer, maar het aankooporder blijft completed. Er gaat geen geld terug naar de klant.

Geld terugkrijgen: de 14-dagenregel

Een klant kan het geld van een creditaankoop terugkrijgen als aan alle volgende voorwaarden is voldaan:

  • De credits uit het specifieke order zijn volledig ongebruikt (consumed_credits = 0).
  • De aanvraag valt binnen 14 dagen na de voltooiing van de aankoop — de wettelijke herroepingstermijn (REFUND_WINDOW_DAYS = 14 in packages/api/lib/constants.ts).
  • Het order is niet al eerder terugbetaald.

Als aan die voorwaarden is voldaan, wordt in een databasetransactie het creditsaldo verlaagd met het aantal verleende credits, een ledgerpost van het type refund aangemaakt, en de terugboeking bij Mollie aangevraagd. De orderstatus gaat naar refunded. Meer over de technische stappen lees je op Terugbetalingen.

Verbanden en grenzen

Het systeem is bewust zo ingericht dat betalingen, credits en boekingen onafhankelijk van elkaar controleerbaar zijn via het ledger. Maar die scheiding heeft ook een grens:

  • Een aankoop die al deels is verbruikt, kan niet meer worden terugbetaald — ook niet het onverbruikte deel.
  • Een creditrestitutie na annulering is geen geldterugbetaling; ze herstelt alleen het saldo.
  • Het creditsaldo is altijd per studio (per tenant) afzonderlijk. Credits zijn niet overdraagbaar tussen studio's.

Zie ook

Was dit nuttig?

Laatst bijgewerkt op 24 juni 2026