codexier.

SaaS och MVP

Prenumerationsbetalning för SaaS med Stripe

Av CodexierPublicerad 5 min läsning

Betalningen är den del av en SaaS-produkt som grundare skjuter upp och sedan bygger om två gånger. Stripe tar bort det mesta av rörmokeriet, men besluten om abonnemang, provperioder, misslyckade betalningar och moms är fortfarande era, och de är svåra att ändra när kunderna väl ligger på dem. Den här guiden går igenom upplägget vi använder för svenska SaaS-produkter, i den ordning besluten bör fattas.

Produkter, priser och abonnemang

Börja med prissidan och arbeta baklänges. Varje abonnemang blir en produkt; varje abonnemangs månads- och årsalternativ blir priser på den produkten. Håll funktionerna per abonnemang i er egen kod, kopplade till pris-id:t, inte i Stripes metadata. Platser är ett antal på prenumerationsraden; förbrukning som API-anrop eller meddelanden är ett mätt pris som rapporteras till Stripe i slutet av varje period. Skapa aldrig priser i farten från applikationen, och radera aldrig ett pris med aktiva prenumeranter; arkivera det och skapa ett nytt när ni ändrar prissättningen.

Provperioder och uppgraderingar

En provperiod är en prenumeration i provstatus, och Stripe konverterar den automatiskt när perioden tar slut. Beslutet ni måste fatta är om kortet ska samlas in från början. Provperioder med kort konverterar i högre grad per registrering men ger färre registreringar; kortfria gör tvärtom och kräver att ni jagar betaluppgifter innan perioden tar slut.

  • Skicka en påminnelse några dagar innan en provperiod övergår i betalning. Oavsett reglerna om automatisk förlängning är det den enskilt största minskaren av chargebacks.
  • Uppgraderingar slår igenom direkt med proportionering; nedgraderingar vid periodens slut. Stripe stöder båda, men ni måste bestämma och skriva det i villkoren.
  • Byte från månad till år ska tillgodoräkna den oanvända månaden; testa detta i sandlådan eftersom fakturan ser förvirrande ut första gången.
  • Registrera varje abonnemangsändring i er egen databas via webhooken för uppdaterad prenumeration så att funktionerna byts i samma ögonblick som debiteringen.

Misslyckade betalningar och påminnelser

Kort går ut, gränser nås, banker nekar. Ofrivilligt bortfall från misslyckade betalningar är oftast större än grundare tror och till största delen möjligt att rädda. Stripes smarta omförsök lägger nya försök vid de tidpunkter som troligast lyckas; ert jobb är kommunikationen runt dem och regeln för vad som händer i slutet.

HändelseStripe görNi bestämmer
Första misslyckandetMarkerar fakturan som öppen och schemalägger ett omförsökMejla kunden med en länk för att uppdatera kortet
Omförsök under några veckorFörsöker debitera igen enligt schemaTon och antal påminnelser; behåll åtkomsten under omförsöken
Kort som snart går utKan uppdatera kortuppgifter automatiskt hos vissa utgivareOm kunden ändå ska varnas i förväg
Slutligt misslyckandeAvslutar, pausar eller lämnar prenumerationen obetald, enligt er inställningRespittid, datalagring och hur återaktivering fungerar

Välj paus eller obetald i stället för avslut för B2B-kunder. En missad betalning på ett företag är oftast ett administrativt problem, inte ett beslut att lämna.

Fakturor och svensk moms

Varje debitering skapar en faktura i Stripe, och för svenska kunder måste det dokumentet uppfylla mervärdesskattelagens krav på fakturainnehåll: ert organisationsnummer och momsregistreringsnummer, kundens uppgifter, fakturanummer och datum, momssats och momsbelopp. Stripes fakturamall kan innehålla allt detta när den är konfigurerad. Själva momsen beror på vem kunden är och var.

  • Konsumenter och företag i Sverige: svensk moms med normalskattesatsen på programvarutjänster.
  • Företag i andra EU-länder med validerat momsnummer: ingen moms, med texten om omvänd skattskyldighet på fakturan. Stripe Tax validerar numret och tillämpar regeln.
  • Konsumenter i andra EU-länder: deras lands sats, redovisad via OSS hos Skatteverket.
  • Kunder utanför EU: oftast ingen svensk moms; kontrollera mottagarlandets regler för importerade digitala tjänster.

Stripe Tax sköter satsberäkningen och bevisinsamlingen, men lämnar inte in något. Er redovisningskonsult behöver fortfarande en rapport över försäljning per land och momshantering varje period, så exportera den från Stripe och kom överens om formatet före lansering, inte vid första momsdeklarationen.

Kundportal för självservice

Stripes kundportal låter prenumeranter uppdatera kort, ladda ner fakturor, byta abonnemang och säga upp utan att mejla er. Slå på den från dag ett med en länk inne i appen. Bestäm vilka åtgärder som ska tillåtas: de flesta SaaS-produkter tillåter kortuppdatering och fakturanedladdning utan villkor, tillåter byten mellan självbetjäningsnivåer och leder uppsägningar genom en kort orsaksenkät. Varje ärende portalen tar hand om är ett ni inte besvarar klockan nio en söndagskväll.

När ni inte behöver det här: en produkt med en handfull kunder på årsfakturor sköts bättre genom att skicka fakturor från Fortnox och registrera betalningar för hand tills volymen motiverar automation. När självregistrering är modellen är betalningen en del av vad vi bygger i ett uppdrag inom MVP-utveckling, och ett kostnadsfritt samtal är snabbaste sättet att kolla vilka av besluten ovan ni redan fattat. Paketpriserna finns på prissidan.

Vanliga frågor

Ska jag använda Stripe Checkout eller bygga ett eget betalformulär?

Använd Checkout eller den hostade betalsidan om ni inte har ett specifikt skäl att låta bli. Den hanterar stark kundautentisering, kortlagring och lokalisering, och det är vad de flesta användare känner igen. Ett eget formulär är mer jobb att bygga och hålla regelrätt, och konverterar sällan bättre.

Kan jag erbjuda fakturabetalning i stället för kort till svenska företag?

Ja. Prenumerationer i Stripe kan ställas in att skicka en faktura med förfallodatum och bankuppgifter i stället för att debitera ett kort. Många svenska B2B-kunder förväntar sig det. Kombinera det med en längre respittid, eftersom överföringar tar dagar och ekonomiavdelningar kör dem i omgångar.

Vad måste min egen databas lagra om betalningen?

Stripes kund- och prenumerations-id, aktuellt pris-id, status och periodens slutdatum, allt uppdaterat från webhooks. Lagra inte kortnummer och kopiera inte Stripes fakturadata; länka till portalen i stället. Behandla Stripe som sanningskälla och er tabell som en cache.

Ska ni sätta upp betalning för en ny SaaS?

Ta med prissidan, även som utkast. På femton minuter kan vi mappa den till produkter och priser i Stripe, flagga momsfallen ni kommer att stöta på och säga vilka beslut som ska låsas före första kunden.

Boka ett kostnadsfritt 15-minuterssamtal