Stripe
Bijgewerkt op 2026-08-28
Dit hoofdstuk is niet voor een kapsalon. Het beschrijft het scherm Stripe in het platformpaneel: de koppeling waarmee HairConnect het maandelijkse abonnement bij een salon int.
Er zijn twee dingen die "Stripe" heten
Verwar ze niet, want ze hebben niets met elkaar te maken.
| Stripe van het salon | Stripe van het platform | |
|---|---|---|
| Wie int | het salon, bij zijn eigen klanten | HairConnect, bij het salon |
| Waar ingesteld | in de backoffice van het salon, onder Koppelingen | op het scherm Stripe-sleutels |
| Welk account | dat van het salon | dat van HairConnect |
| Welk scherm | Koppelingen | dit scherm, en Stripe-sleutels ernaast |
Dit hoofdstuk gaat alleen over de tweede. Gaat het geld naar het salon, dan zit je in het verkeerde hoofdstuk.
Waar vind ik het?
Op /platform, in de zijbalk onder Stripe. Alleen een platformbeheerder komt daar binnen.
Wat het scherm toont
De koppeling. Bovenaan staat of Stripe aanstaat. Staat er Stripe staat uit — er wordt niets geïnd, dan is dat letterlijk zo: er wordt bij géén enkel salon iets aangerekend. De rest van het pakket draait wel gewoon door — dit raakt alleen de facturatie van HairConnect zelf, niet de agenda of de kassa van een salon.
Eronder staat het adres dat bij Stripe als webhook-endpoint ingesteld moet staan.
Betaling mislukt. De salons waarvan de inning niet gelukt is. Die worden niet afgesloten: hun agenda en kassa blijven draaien. Het is een belijst, geen strafmaatregel.
Webhooks. Wanneer er voor het laatst iets van Stripe binnenkwam, hoeveel er de afgelopen zeven dagen binnenkwam, en daaronder de volledige lijst. Een endpoint dat al een week zwijgt, is even erg als een endpoint dat weigert — alleen valt het minder op, en daarom staat de datum bovenaan.
Aanzetten
De sleutels staan niet op dit scherm maar op Stripe-sleutels ernaast. Daar plak je de geheime API-sleutel en het webhook-secret, test je de verbinding, en zet je de hoofdschakelaar aan. Geen deploy nodig. Zie het hoofdstuk De Stripe-sleutels.
Het adres dat je bij Stripe als webhook-endpoint moet instellen, staat wél hier — en ook daar.
Zolang er niets ingesteld is, gebeurt er niets. Geen fout, geen halve toestand: er wordt bij Stripe niets aangemaakt en er komt niets binnen. Op de productieserver is dat anders — daar weigert de koppeling luidop zodra iemand een abonnement probeert te activeren. Stil niets doen is daar de duurste fout die er is: dan lijkt het maandenlang goed te gaan terwijl er bij geen enkel salon iets geïnd wordt.
Welke gebeurtenissen HairConnect verwerkt
Zet in het Stripe-dashboard minstens deze drie aan op het endpoint:
| Gebeurtenis | Wat er gebeurt |
|---|---|
invoice.paid (en invoice.payment_succeeded) |
De maand is betaald. Stond het salon op Betaling mislukt, dan staat het weer op Actief. Is de periode intussen verstreken, dan schuift ze een maand op. |
invoice.payment_failed |
Het salon komt op Betaling mislukt te staan. Het blijft gewoon draaien. |
customer.subscription.deleted |
Het abonnement is bij Stripe opgezegd of afgelopen; het wordt ook hier opgezegd. De lopende maand loopt uit. |
Al de rest wordt bewaard en verder genegeerd. In de lijst staat Genegeerd, en dat is iets anders dan Geweigerd.
Geweigerd, genegeerd, mislukt
Drie woorden die er in de lijst naast elkaar staan en die drie verschillende dingen betekenen.
- Geweigerd — het verzoek kwam de deur niet door. Geen geldige handtekening, of geen webhook-secret ingesteld. Er is niets mee gedaan. Zulke envelopes worden wel bewaard, zodat na te kijken valt wie er aangeklopt heeft, maar ze kunnen ook achteraf niet alsnog verwerkt worden. Dat is met opzet: een payload die niemand ondertekend heeft, is geen bron van waarheid.
- Genegeerd — de envelope was in orde, er valt alleen niets mee te doen.
- Mislukt — de verwerking liep stuk. Stripe biedt het event vanzelf opnieuw aan, en met de knop Opnieuw verwerken kan het ook met de hand. Dat is veilig: hetzelfde event twee keer verwerken heeft één keer effect.
De proefperiode loopt zonder kaart
Tijdens de proef bestaat er bij Stripe niets: geen klant, geen abonnement, geen betaalmethode. Er wordt pas om betaalgegevens gevraagd wanneer de proef afloopt en het abonnement geactiveerd wordt.
Een salon dat handmatig gratis staat, slaat Stripe volledig over — er wordt geen klant aangemaakt, geen abonnement opgezet, geen betaling geprobeerd. Zie het hoofdstuk Abonnementen.
Wat dit scherm níét doet
Het maakt geen facturen. Het factuurnummer en de btw-behandeling komen van Fades; dit scherm int alleen geld. Wat er op een factuur belandt, staat dus niet hier.