09 — Billing & betaling: MobilePay, abonnement + Dinero
Status: DISKUSSIONSOPLÆG — til fælles gennemgang. Selve tekniske valg er ikke endeligt besluttet, men kravene nedenfor (§1) er ufravigelige og styrer resten.
Hvor det hører til (lag): delsystem under Website OS (
07-website-os-multi-tenant-arkitektur.md); tæt koblet til modul-systemet (08-modul-system.md) viatenant_modules-entitlements. Kommerciel model i../administration/forretningsmodel-og-pricing.md; drifts-/økonomioverblik iinterne-systemer.md.Holdt som særskilt dokument fra modul-systemet, så billing kan opdateres uafhængigt. Bygger på webresearch juli 2026 — gebyrer/produkter skifter, verificér før beslutning.
1. Ufravigelige krav (fastlagt)
- MobilePay skal understøttes som betalingsmåde — både engangs (opsætningsgebyr) og tilbagevendende månedligt abonnement (recurring).
- Kunde-konfiguration (hvilke moduler/abonnement en kunde har) skal styres og holdes i sync med billing.
- Håndtér både engangs- og månedlige subscription-betalinger.
- Synlig relation ind til Dinero — betalinger og fakturaer skal kunne ses/bogføres i Dinero.
- Levér fakturaer (med moms) til brug i kundernes moms-/regnskab.
- Internationale kunder skal kunne understøttes — ud over danske kunder (kort/Apple Pay/PayPal/SEPA + multi-currency). Se §6.
2. Den afgørende konsekvens: Stripe er ude, dansk motor ind
Stripe kan IKKE lave recurring MobilePay — hos Stripe er MobilePay kun engangsbetaling ("Recurring payments: No"). Da månedligt MobilePay-abonnement er et ufravigeligt krav (§1.1), er Stripe udelukket som primær motor. Kravet peger entydigt mod en dansk motor.
| Motor | Engangs MobilePay | Recurring MobilePay | Fuld faktura/abonnement | Native Dinero |
|---|---|---|---|---|
| Frisbii (Reepay/Billwerk+) | ✅ | ✅ | ✅ (motor) | ✅ |
| Quickpay | ✅ | ✅ | ❌ (kun gateway — byg selv) | ❌ |
| Stripe | ✅ | ❌ | ✅ | ✅ (men uden recurring MobilePay) |
| OnPay | ✅ | ⚠️ kun kort-token (ikke ægte MobilePay-mandat) | ❌ | – |
| Nexi Checkout | ✅ | ❌ | – | – |
3. Anbefaling: Frisbii (Reepay/Billwerk+) som billing-motor
Den eneste kombination der samtidig opfylder alle de ufravigelige krav med mindst udvikling for et 2-mands-team:
- ✅ Engangs MobilePay (opsætningsgebyr) + recurring MobilePay (Vipps MobilePay Recurring)
- ✅ Kort (Dankort/Visa/Mastercard) som alternativ betalingsmåde
- ✅ Fuld abonnementsmotor (proration, retries, dunning) — vi slipper for at bygge charge-scheduling selv
- ✅ Native Dinero-integration → faktura + bogføring + moms oprettes automatisk ved fornyelse
- ⚠️ Betalingsservice: historisk understøttet via Reepay/Nets — verificér i den konkrete Frisbii-aftale
Alternativ (kun hvis transaktionsgebyr skal minimeres og I har udviklingskapacitet): Quickpay som gateway (recurring MobilePay ✅, billigere pr. transaktion) — men I skal selv bygge fakturering + abonnementslogik OG selv løse Dinero-bogføring (ingen native connector). Dårligt bytte for et 2-mands-team der vil have Dinero-automatik. Derfor: Frisbii er førstevalget.
4. MobilePay recurring — sådan virker det (vigtige detaljer)
- Ny platform: "MobilePay Subscriptions" udfases og erstattes af Vipps MobilePay Recurring (fælles nordisk platform). Migrering kører merchant-for-merchant april → ~sep 2026; legacy kan bruges til udgangen af 2026. → Byg direkte mod nye Vipps MobilePay Recurring, ikke legacy.
- Mandat-model: kunden godkender en agreement én gang i MobilePay-app'en. Derefter opretter motoren (Frisbii) charges mod aftalen. Bemærk: charges oprettes ikke af MobilePay selv — billing-motoren står for at trække hver måned (én af grundene til at bruge en motor frem for en ren gateway).
- Gebyr (DK, størrelsesorden): ~0,99 % + 1 DKK pr. transaktion (planlagt 0,89 % + 1 DKK fra 2027), oveni Frisbiis egne motor-/gateway-gebyrer. Ingen oprettelses-/månedsgebyr på selve MobilePay. Verificér i jeres egen aftale.
5. Relation til Dinero (krav §4–§5)
- Frisbii/Billwerk+ → Dinero er en native integration: ved hver abonnements-fornyelse oprettes fakturaen automatisk i Dinero og bogføres, med momslinjer (25 %). Det er den reneste vej til kravet om synlig Dinero-relation + fakturaer til moms-regnskab.
- Momshåndtering: billing-motoren sender fakturalinjer inkl. moms; Dinero bogfører på de rigtige momskonti og står for momsafregning. Faktura til kunden udstedes fra Dinero-siden, drevet af motorens fornyelsesdata.
- Hvem fakturerer hvem (afklaring): vi fakturerer vores kunder (SMV'erne) for website-abonnement + moduler → det sker i vores ét Dinero. Kundens faktura fra os er deres udgiftsbilag med moms i deres eget regnskab. (Hvis et modul senere skal lade en kunde fakturere sine egne slutkunder, er det en modul-funktion — en anden sag end denne SaaS-fakturering. Se åbent spørgsmål 4.)
6. Betalingsmetoder & international dækning (Frisbii)
Verificeret mod Frisbii/Billwerk+ docs (juli 2026). Bekræftelse: Frisbii + Dinero dækker både danske kunder (MobilePay) og internationale kunder (kort/Apple Pay/PayPal/SEPA) i samme setup.
Metoder og recurring-status:
| Metode | Engangs | Recurring | Note |
|---|---|---|---|
| Kort: Visa, Mastercard, Dankort, Maestro, JCB, UnionPay, Discover | ✅ | ✅ | Internationale kort kræver rette acquirer (Clearhaus/Frisbii Pay; Nets alene = kun Dankort-scope) |
| American Express / Diners | ✅ | ✅ | ⚠️ Kræver separat acquiring-aftale (ikke i standard Clearhaus/Nets) |
| Apple Pay | ✅ | ✅ | Wallet til recurring internationalt |
| Google Pay | ✅ | ⚠️ | Dokumenteret kun engangs hos Frisbii — verificér før recurring loves |
| PayPal | ✅ | ✅ | Recurring internationalt |
| SEPA Direct Debit | ✅ | ✅ | EUR/SEPA-zonen (ikke globalt) |
| MobilePay (DK) · Vipps (NO) · Swish (SE) | ✅ | ✅ (MobilePay/Vipps) | Nationale — virker IKKE for internationale kunder |
| Betalingsservice (DK) | – | (verificér) | National; bekræft recurring-status i Frisbii-aftalen |
| Klarna, iDEAL, Bancontact, Trustly m.fl. | ✅ | ❌ | Kun engangs |
- Multi-currency: 140+ valutaer; DKK + EUR/USD/GBP side om side. Men: ét abonnement = én valuta (valutaskift kræver at abonnementet udløbes og genoprettes).
- Rollefordeling: danske kunder = MobilePay (+ kort); internationale kunder = kort/Apple Pay/PayPal/SEPA. MobilePay-kravet (§1) gælder de danske kunder — internationale falder tilbage på kort/wallets.
International moms (kort — kræver revisor): Frisbii understøtter reverse charge (EU B2B) og OSS (EU B2C); ikke-EU typisk 0 %. VIES-validering af momsnummer er ikke bekræftet indbygget — antag at vi selv validerer og markerer kunden. Momskoderne (EU B2B reverse charge / EU B2C OSS-satser / ikke-EU 0 %) skal konfigureres korrekt i Dinero, og mapping mellem Frisbii og Dinero sættes op. Ikke fuldautomatisk — afklar med revisor.
7. Samlet dataflow
[Admin: kunde til-/fravælger modul · eller onboarding (opsætningsgebyr)]
│
▼
[tenant_modules — ÉN kilde til sandhed] ← modul-registret (doc 08) leverer billing_sku + pris
(a) flipper feature-flag (doc 08)
(b) opdaterer abonnement i billing-motoren (dette dok.)
│
▼
[Frisbii — billing-motor / system of record]
• engangs (opsætningsgebyr) + månedlige abonnementslinjer pr. modul
• proration · moms 25 % · dunning/retry
│ opkrævning
▼
[Betaling] MobilePay (engangs + recurring) · kort · (Betalingsservice — verificér)
│ faktura + betalingsstatus
▼
[Dinero] automatisk faktura + bogføring + moms + revisorvenligt arkiv (native integration)
8. Åbne spørgsmål — til diskussion
- Frisbii vs. Quickpay: Frisbii = mindst udvikling + native Dinero (anbefalet); Quickpay = billigere/transaktion men byg-selv fakturering + ingen Dinero-connector. Bekræft valg → ADR.
- Betalingsservice hos Frisbii: aktuel status i konkret aftale (tilvalg for lav-churn ud over MobilePay/kort)?
- Migreringstiming: går vi live under Vipps MobilePay-migreringen (apr–sep 2026), byg mod ny Recurring-API.
- Multi-tenant Dinero: bekræft at vi fakturerer i vores ét Dinero (ikke i mange kunders separate regnskaber) — det er antagelsen; verificér før build.
- Fejlet betaling → modul-suspend: hvornår suspenderes modulet efter fejlet MobilePay/kort-træk? (kobler entitlements i doc 08 tilbage til betalingsstatus).
- Opsætningsgebyr: fast beløb, og opkræves det via MobilePay engangs ved onboarding?
- Gebyrer + moms/kontoplan: verificér aktuelle satser (Vipps MobilePay + Frisbii) og afklar kontoplan/momskoder med revisor.
- Amex/Diners: skal vi tilbyde dem? (kræver separat acquiring-aftale). Google Pay recurring: verificér før vi lover det til abonnement.
- Acquirer til internationale kort: Clearhaus vs. Frisbii Pay. International moms: reverse charge/OSS/ikke-EU + VIES — momskode-opsætning i Dinero + revisor.
9. Næste skridt
- Beslut Frisbii vs. Quickpay (åbent spm. 1) → ADR.
- Opret Vipps MobilePay-aftale (Merchant Serial Number) + kobl til billing-motoren.
- Byg den tynde billing-adapter (interface) så motoren kan skiftes uden at røre modul-koden.
- Aktivér native Dinero-integration; test faktura + moms + bogføring ved fornyelse.
- Afklar moms/kontoplan med revisor.
Kilder
- Vipps MobilePay — Recurring API guide · Recurring Merchant API · Migration til én platform · pricing
- Stripe — MobilePay (Recurring: No)
- Frisbii — Vipps MobilePay Recurring · Dinero ↔ Billwerk+/Frisbii (native) · Reepay ↔ Dinero (IEX)
- Frisbii — betalingsmetoder (checkout) · multi-currency · acquiring-aftaler · Clearhaus · e-invoicing/moms (reverse charge, OSS)
- Quickpay — MobilePay Subscriptions
- Dinero developer-portal · FAQ (auth/Pro/limits)
Udarbejdet 2026-07-18 som diskussionsoplæg. Krav i §1 er ufravigelige; øvrige valg fanges som ADR i adr/ når truffet.