Crypto accepteren aan de kassa
Crypto accepteren aan de kassa betekent dat een klant aan je toonbank betaalt met een digitale asset — een stablecoin zoals USDC, of een coin zoals BTC — en jij, de ondernemer, in euro's wordt uitbetaald. De asset die de klant verstuurt en het geld dat jij ontvangt zijn twee verschillende dingen, verbonden door een koers die op het moment van de tap wordt vastgesteld. Je kassa, je boekhouding en je bankrekening merken niets van crypto. De terminal toont een prijs in euro's, de klant scant een code en een paar seconden later wordt de verkoop afgesloten in euro's — op dezelfde regel als bij een kaartbetaling. Crypto aan de kassa is een betaalmethode, geen boekhoudkundige wijziging, en het zo houden is het hele technische vraagstuk.
Het loont om dat uitgangspunt eerst te benoemen, want de meeste verwarring over cryptobetalingen komt voort uit het samenvoegen van twee vragen die gescheiden moeten blijven: hoe de klant betaalt en in welke valuta de ondernemer uitbetaald wordt. Splits ze, en de rest volgt vanzelf.
Het probleem dat echt moet worden opgelost
Een ondernemer wil de verkoop, niet de volatiliteit. Hij wil de dag niet eindigen met een zak assets van onzekere waarde, en zijn boekhouder moet ineens geen twee valuta's spreken. Hij wil dat de prijs vaststaat tussen de tap en de bon, dat het geld in euro's binnenkomt en dat de reconciliatie eruitziet als elke andere pindag. Een winkel die crypto naïef accepteert, krijgt niets daarvan: hij neemt een asset aan waarvan de prijs beweegt terwijl de klant nog twijfelt, parkeert die in een wallet en erft een tweede valuta in de boeken die iemand nu handmatig moet waarderen en omzetten. Het ontwerpdoel is dus smal en strikt: maak crypto zichtbaar op precies één plek, het betaalmoment, en overal elders onzichtbaar.
Eén tap: een QR, een vergrendelde koers, een euroregel
Loop de kassaflow na. De kassier tikt een mandje van €24,00 in. De terminal toont het totaal in euro's en genereert een QR-code met het verzoek erin — het bedrag, een bestemmingsadres of invoice en een kortlevend koers-id. De klant scant de code met de eigen wallet, ziet precies wat er wordt verstuurd en bevestigt. De terminal volgt het netwerk voor die transfer en print na bevestiging een bon in euro's. Voor de kassier is het ritme identiek aan een kaartbetaling: totaal, aanbieden, goedkeuren, bon. Niemand achter de toonbank typt een adres in of leest een saldo in iets anders dan euro's.
Het verzoek in de QR-code zetten maakt het veilig om aan de telefoon van een vreemde te geven. Het bedrag en de bestemming zitten in de code, met checksum, dus de klant kan niet naar het verkeerde adres of met het verkeerde bedrag betalen door een typefout — dezelfde aanpak als identity-by-construction aan de incassokant, nu toegepast op een toonbank. Een code die scant is een code die klopt; er is geen vrij tekstveld om fout te doen.
Settlement in euro's, zodat de boeken nooit crypto zien
Tussen de asset die de klant verstuurt en de euro's die de ondernemer houdt zit de conversie, en waar die zit is de hele truc. De klant verstuurt USDC of BTC; het platform converteert en schrijft het bedrag in EUR bij op de rekening van de ondernemer. Het grootboek van de ondernemer ziet alleen een eurocrediet en een eurofeeregel — dezelfde vorm als een kaartsettlement — omdat de asset bij het platform wordt omgezet en niet in een wallet blijft staan die de ondernemer nu moet beheren. Aan het eind van de dag zijn de boeken van begin tot eind in euro's. Er is geen mandje coins om te waarderen, geen tweede valuta in de rekeningen en niets om maandagochtend off-ramp te doen.
De taak van de klant is betalen met wat hij heeft. De taak van de ondernemer is de boeken in één valuta houden. Een kassa die crypto in euro's afrekent, is gewoon de machine die ervoor zorgt dat die twee feiten elkaar nooit raken.
De koers wordt vergrendeld, niet nagejaagd
Volatiliteit is de angst, en een vergrendelde koers met aftelklok het antwoord. Als de terminal de eurosprijs toont, stelt hij ook een koers vast die geldig is voor een vast venster — een paar seconden. De klant betaalt binnen dat venster, tegen die koers, en de euro's die de ondernemer bijgeschreven krijgt zijn de euro's op het scherm, niet wat de markt deed terwijl de wallet laadde. Verloopt het venster voordat de klant bevestigt, dan vraagt de terminal een nieuwe koers aan: een nieuwe code, een verse aftelklok, een expliciete nieuwe prijs — nooit een stille verschuiving. De ondernemer loopt nooit risico op de beweging tussen tap en bevestiging; dat risico ligt bij wie de koers heeft vastgesteld, niet bij de winkelier die alleen een kop koffie wilde verkopen.
Als de klant traag is, of de terminal offline
Netwerken haperen en winkels verliezen hun verbinding, dus het offlinegedrag moet bewust saai zijn. Twee gevallen. Als de klant traag is, verloopt de koers gewoon en volgt een nieuwe — een betaling wordt binnen een venster bevestigd of komt niet tot stand, en er is geen half afgeronde verkoop om terug te draaien. Als de terminal zelf offline raakt, kan hij nog wel een verzoek voor een bekend bedrag tonen, maar geen nieuwe koers vaststellen of settlement bevestigen; hij houdt de verkoop dan als pending en reconcilieert zodra hij weer verbinding heeft, in plaats van succes te veinzen. De leidende regel: de bon print na bevestiging, nooit op hoop. Een bon in euro's betekent dat de euro's zijn verantwoord, en een verkoop die de terminal niet kon bevestigen blijft open en zichtbaar in de operatorconsole in plaats van stilletjes te verdwijnen.
Waar de terminal de gateway ontmoet
De kassa is het fysieke gezicht van dezelfde acceptatiestack die online draait. Een crypto-tap in de winkel en een checkout via betaallink zijn eronder dezelfde gebeurtenis — een verzoek, een betaling, een euro-settlement, een bon — alleen op een ander oppervlak. Zo reconcilieert een ondernemer crypto in de winkel en online bestellingen op één plek, in euro's, met dezelfde feeregels en dezelfde exports, in plaats van twee boekhoudingen te voeren die aan het eind van de maand aan elkaar geniet moeten worden. De terminal staat op /products/pos; de onlinekant van dezelfde rails is /products/gateway; en het vocabulaire — quote, settlement, acquirer, reconciliatie — staat in de /glossary.
De eerlijke grens
Als niemand aan je toonbank met crypto wil betalen, is een cryptoterminal een oplossing voor een probleem dat je niet hebt — accepteer kaarten en ga door. Hij verdient zijn plek waar een serieus deel van je klanten al digitale assets bezit en die liever uitgeeft dan eerst off-ramp te doen: bepaalde reiscorridors, bepaalde online-native doelgroepen, bepaalde regio's waar stablecoins simpelweg de manier zijn waarop mensen hun spendeerbare geld bewaren. In die kringen is de tap weigeren de verkoop weigeren. De mechaniek hierboven — de QR, de vergrendelde koers, settlement in euro's, de regel dat de bon pas na bevestiging komt — laat je die verkoop doen zonder de volatiliteit, de tweede valuta of een boekhoudproject erbij te nemen. Crypto blijft de zorg van de klant; de euro's blijven van jou.
Een systeem te bouwen?
Vertel ons het probleem. Wij komen terug met een architectuur en een plan.