Betalinger (Stripe + MobilePay + Flatpay)

MobilePay-recurring, Stripe og kontant-håndtering.

Sidst opdateret 2026-05-18·Admin-stier: /admin/indstillinger/betalinger/admin/settings/stripe-setup/admin/settings/mobilepay-setup

Tre understøttede betalingsudbydere: Stripe (kort), MobilePay (Vipps MobilePay) og Flatpay (kort, lave gebyrer, backend Frisbii/Reepay). Kortdata gemmes aldrig hos os. Stripe/MobilePay har selvbetjenings-wizards; Flatpay forbindes med guidet flow direkte på betalinger-siden.

Kernebegreber

  • Stripe-wizard: /admin/settings/stripe-setup — 5 trin med checklist + webhook-verifikator. Nøgler indsættes i trin 2, live-nøgler i trin 5 — man behøver aldrig forlade guiden. Webhook oprettes AUTOMATISK når nøglerne forbindes; trin 3 har "Genopret webhook automatisk"- og "Verificér webhook"-knapper (manuel dashboard-opsætning findes kun som avanceret fallback bag en fold-ud).
  • MobilePay-wizard: /admin/settings/mobilepay-setup — 4 trin (kun selvbetjening, IKKE "kontakt support"). Indtastningsfelter er indbygget: alle 4 nøgler indsættes i trin 2, produktionsnøgler i trin 4 — man behøver aldrig forlade guiden.
  • Forbind/afbryd: /admin/indstillinger/betalinger viser status for alle tre udbydere + on/off-toggle og "Forbind"/"Afbryd"-knap. For Stripe og Flatpay vises gemte nøgler (maskeret) + webhook-status med ret/rotér-knapper — ingen afbrydelse nødvendig for at rette.
  • Test vs. Live: systemet detekterer automatisk og viser badge. Test-nøgler trækker ingen rigtige penge.

Stripe — opsætning

  • Konto: opret på dashboard.stripe.com/register. Verificer email. Vælg Danmark som land.
  • API-nøgler: Stripe Dashboard → Developers → API keys → Publishable (pk_test_/pk_live_) + Secret (sk_test_/sk_live_). Begge SKAL være fra samme mode. Brug IKKE restricted keys — fuld adgang kræves. Klik "Reveal test key" for at se Secret.
  • Webhook (AUTOMATISK): oprettes af systemet i din Stripe-konto når nøglerne forbindes — inkl. alle events og signing secret. Ingen manuel opsætning i Stripe Dashboard nødvendig. Mangler/fejler forbindelsen: "Ret webhook" → "Genopret webhook automatisk" (manuel whsec_-indtastning findes under "Avanceret").
  • 8 events (tilmeldes automatisk): checkout.session.completed, checkout.session.expired, charge.refunded, charge.dispute.created, customer.subscription.updated, customer.subscription.deleted, invoice.payment_succeeded, invoice.payment_failed.
  • Webhook-status (betalinger-kortet): "aktiv (seneste hændelse …)" / "oprettet — afventer første hændelse" / "FEJLER — signaturen matcher ikke" (rødt banner; fix = Genopret) / "manuel opsætning (ældre)" / "mangler".
  • Test: book et hold med kort 4242 4242 4242 4242, vilkårlig fremtidig udløbsdato + 3-cifret CVC. Afvist-test: 4000 0000 0000 0002.
  • Verificér webhook: wizardens "Verificér webhook"-knap kalder Stripe og tjekker endpoint, status, events, api-version og signing secret.
  • Live: udfyld virksomhedsoplysninger (CVR, bank, adresse, ID) i dashboard.stripe.com/account/onboarding → hent live-nøgler (slå "Test mode" FRA) → udskift API-nøglerne i indstillinger — webhook genoprettes AUTOMATISK i live-mode når nøglerne gemmes.

MobilePay — opsætning (Vipps MobilePay)

  • Valuta + brand: samme integration for DKK og NOK. DKK-studio → kunden ser "MobilePay"; NOK-studio → kunden ser "Vipps". Samme konto og wizard, kun navn+valuta skifter; betalingsknappen følger studiets valuta automatisk. EUR og andre valutaer kan IKKE bruge MobilePay/Vipps → brug Stripe.
  • Konto: opret erhvervskonto i Vipps MobilePay Portal. Kræver CVR, virksomhedsadresse, bank, kontaktperson med MitID. Godkendelse 1-3 hverdage.
  • Vigtige valg under onboarding: "Jeg gør det selv, eller får mine egne udviklere til at gøre det for mig" + "På vores egen hjemmeside".
  • Hvis MobilePay spørger om integrator: "Vi er selv ansvarlige for integrationen og integrerer direkte mod MobilePays API."
  • 4 påkrævede nøgler: Client ID, Client Secret, Subscription Key (Ocp-Apim-Subscription-Key), Merchant Serial Number (MSN).
  • Hvor: Portal → "Utvikler"/"Developer" → API-nøgler. Vælg Test-miljø først.
  • Test: download "Vipps MT" (Merchant Test) fra App Store/Google Play. Test-nummer: +47 99999999.
  • Live: verificer kontostatus i portalen → hent produktionsnøgler (samme sted, men "Production"-miljø) → udskift i indstillinger.

Sådan gør du

  • Start opsætning: /admin/indstillinger/betalinger → "Forbind Stripe" eller "Forbind MobilePay" → wizardens trin følges.
  • Slå udbyder til/fra: samme side → toggle ud for udbyder (kræver forbindelse er aktiv).
  • Ret Stripe-nøgler uden at afbryde: /admin/indstillinger/betalinger → "Ret API-nøgler" → indtast nye nøgler → "Validér nøgler" → "Gem nøgler". Skiftes til en anden Stripe-konto/mode genoprettes webhook-forbindelsen automatisk på den nye konto.
  • Genopret/ret webhook uden at røre nøglerne: /admin/indstillinger/betalinger → "Ret webhook"/"Opsæt webhook" → "Genopret webhook automatisk" (opretter nyt endpoint m. alle events + rydder gamle op; sikkert at køre igen). Manuel whsec_-indtastning under "Avanceret". Mangler webhook: gult banner; signaturfejl: rødt banner.
  • Ret MobilePay-nøgler uden at afbryde: /admin/indstillinger/betalinger → "Ret nøgler" ved MobilePay → indtast alle 4 nøgler → "Validér" → "Gem nøgler". Gemte nøgler vises maskeret (MSN i fuld længde). MobilePay-webhook registreres automatisk — intet manuelt webhook-trin.
  • Afbryd: samme side → "Afbryd"-knap (kræver bekræftelse).
  • Skift fra test til live: kør wizardens sidste trin (Stripe trin 5 / MobilePay trin 4) — kun nye nøgler; Stripe-webhook genoprettes automatisk i live-mode.

Flatpay — opsætning

  • Konto: opret på flatpay.com. 0,99% gebyr per transaktion; Dankort, Visa, Mastercard.
  • Forbind: /admin/indstillinger/betalinger → "Forbind Flatpay" → guidet flow på siden (ingen separat wizard).
  • API-nøgle: Frisbii/Reepay-dashboard → Indstillinger → API-nøgler → privat nøgle (priv_...) → "Validér nøgle".
  • Webhook secret: Frisbii-dashboard → Indstillinger → Webhooks → kopiér secret → indsæt → "Forbind Flatpay". Webhook-URL + påkrævede events registreres AUTOMATISK; eksisterende webhooks fjernes ikke.
  • Efter forbindelse: kortet viser konto, maskeret API-nøgle og webhook-status + toggle "Aktiveret" + "Ret nøgler" + "Rotér webhook-secret" + "Afbryd forbindelse".
  • Rotér webhook-secret: indsæt nyt secret — det gamle accepteres fortsat i en overgangsperiode (ingen webhooks tabes).
  • Dækning: drop-in, klippekort, abonnementer, gavekort, behandlinger, PT-pakker, sæsonhold (KUN engangsbetaling — rater er Stripe-only).

Regler / grænser

  • Understøttede udbydere: Stripe, MobilePay og Flatpay — ikke PayPal, Klarna, bankoverførsel som primær udbyder.
  • Flatpay kræver valuta DKK. Flatpay-betalte medlemskaber kan IKKE sættes på pause (opsig i stedet).
  • Flatpay kan IKKE udskyde/reducere første abonnements-træk: planer med fremtidig opstartsdato skjuler Flatpay-valget automatisk; rabatkode eller fast plads-venteliste ved abonnementskøb afvises med henvisning til kort/MobilePay (intet halvt køb oprettes, rabatkoden forbruges ikke).
  • Flatpay-abonnementer kører via Frisbii og koster ca. 349 kr./md. + ca. 1% oven i kortraten; Flatpays engangsbetalinger har INGEN månedsafgift. Til rene medlemskaber er Stripe typisk billigere (ingen fast månedsafgift). Flatpay yder ingen support på opsætning af abonnementsprodukter i Frisbii og kræver privatlivspolitik + handelsbetingelser på hjemmesiden (det gør Stripe også).
  • Test- og live-nøgler MÅ IKKE blandes (begge skal være samme mode).
  • Stripe-Secret/MobilePay-Secret gemmes krypteret server-side; Secret deles aldrig med browser.
  • Webhook-URL skal være HTTPS — fungerer ikke på localhost uden tunnel.
  • Stripe-konto i Danmark: udbetaling til dansk bankkonto med reg.nr. + kontonummer.

FAQ

  • Hvilke nøgler skal jeg bruge til Stripe? — Publishable (pk_test_/pk_live_) + Secret (sk_test_/sk_live_) — IKKE restricted keys. Begge fra samme mode.
  • Er det OK at dele Stripe Secret key med jer? — Ja. Vi gemmer den krypteret og bruger den kun til at oprette betalinger/abonnementer for dit studio. Samme model som alle andre bookingsystemer.
  • Skal jeg selv opsætte webhook / finde Signing secret? — Nej, oprettes automatisk (inkl. secret) når nøglerne forbindes. Kun ved avanceret manuel opsætning: Stripe Dashboard → Webhooks → din destination → "Signing secret" (whsec_...).
  • Hvilke events lytter webhook på? — Alle 8 tilmeldes automatisk: checkout.session.completed, checkout.session.expired, charge.refunded, charge.dispute.created, customer.subscription.updated, customer.subscription.deleted, invoice.payment_succeeded, invoice.payment_failed.
  • Kan jeg teste uden rigtige penge? — Ja. Stripe: brug test-nøgler + kort 4242 4242 4242 4242. MobilePay: brug Vipps MT test-app + nummer +47 99999999.
  • Skal jeg lave nyt webhook når jeg går live? — Nej — udskift kun API-nøglerne; webhook-forbindelsen genoprettes automatisk i live-mode.
  • Hvor lang tid tager MobilePay-godkendelse? — Typisk 1-3 hverdage efter du har indsendt CVR + bank + ID.
  • Hvad svarer jeg når MobilePay spørger om integrator? — "Vi er selv ansvarlige for integrationen og integrerer direkte mod MobilePays API."
  • Hvad sker der hvis nøglerne er forkerte? — Toggle kan ikke slås til, og forsøg på betaling fejler. Tjek at du har kopieret hele nøglen og at test/live matcher.
  • Jeg har gemt nøgler men mangler webhook — skal jeg starte forfra? — Nej. /admin/indstillinger/betalinger → gult banner/"Opsæt webhook" → "Genopret webhook automatisk" (ét klik). Nøglerne røres ikke.
  • Hvor er min webhook-URL? — Vises efter oprettelse i trin 3-panelet og på succes-skærmen. Format: https://<slug>.holdstyring.dk/api/payments/webhooks/stripe?t=<slug> (oprettes automatisk i samme mode som nøglerne).
  • Kan jeg se de nøgler jeg har gemt? — Ja, maskeret (fx pk_test_••••Xy9Z) på /admin/indstillinger/betalinger og i wizard-formularerne. Hele Secret key vises aldrig igen.
  • Skal jeg kontakte support for MobilePay? — Nej, brug wizarden /admin/settings/mobilepay-setup — den er selvbetjening hele vejen.
  • Hvilke nøgler skal jeg bruge til Flatpay? — Privat API-nøgle (priv_..., Frisbii-dashboard → Indstillinger → API-nøgler) + webhook secret (Indstillinger → Webhooks). Webhook-URL/events registreres automatisk.
  • Hvad kan betales via Flatpay? — Drop-in, klippekort, abonnementer, gavekort, behandlinger, PT-pakker og sæsonhold med engangsbetaling (sæson-rater kræver Stripe). Flatpay-abonnementer kan ikke sættes på pause endnu.
  • Koster Flatpay ekstra for abonnementer? — Ja: løbende abonnementer kører via Frisbii og koster ca. 349 kr./md. + ca. 1% oven i kortraten (engangsbetalinger har ingen månedsafgift). Til rene medlemskaber er Stripe typisk billigere, da der ikke er nogen fast månedsafgift.
  • Hvorfor kan kunden ikke vælge Flatpay til abonnement m. rabatkode/senere opstart? — Flatpay kan ikke udskyde/reducere første træk. Fremtidig opstartsdato → Flatpay-valget skjules; rabatkode/venteliste → afvises med henvisning til kort/MobilePay. Intet halvt køb; rabatkode forbruges ikke.

Klar til at prøve det selv?

14 dages gratis prøveperiode. Ingen kreditkort. Ingen binding.

Opret dit studio

Eller se alle 53 guides