Menționez din capul locului că această postare prezintă experiența noastră și observațiile din practică, fără a avea pretenția că este cel mai bun mod de lucru. Totuși, am încercat mai multe variante de implementare a facturării lunare și exemplul de mai jos este cel care ni s-a părut cel mai logic.
Deși pare banal, procesul de facturare în SaaS este unul extrem de complex. L-am implementat atât în BizToGo, cât și în alte aplicații web: sisteme de online learning, platforme de marketing și newslettere, platforme de management al pacienților pentru clinici medicale etc.
Majoritatea aplicațiilor web de pe piață sunt proiectate pe modelul american. Contabilitatea este mult mai simplă decât cea românească, iar noi a trebuit să găsim o soluție pentru a concilia momentul emiterii facturii, al încasării și al impozitării.
O scurtă lecție de fiscalitate, în limbaj non-contabil
În România, atunci când emitem o factură, suma se contabilizează la cifra de afaceri. Dacă factura este purtătoare de TVA și se aplică sistemul TVA la încasare, atunci se amână plata TVA-ului din momentul emiterii până la momentul încasării. Totuși, chiar dacă factura nu este încasată în 90 de zile, suntem obligați să achităm TVA-ul către stat.
Dacă firma emitentă nu este plătitoare de TVA, aceasta datorează impozit fie la suma emisă, fie ca procent din profitul contabil. Practic, orice factură emisă presupune și obligații fiscale, chiar dacă este sau nu încasată.
Din experiență, există mereu facturi care nu se încasează cu lunile. Unele nu se încasează niciodată. De aceea, scopul nostru a fost ca impozitarea să fie cât mai apropiată de momentul încasării, ceea ce a însemnat emiterea facturii fiscale exact la încasare.
Acest lucru se realizează prin emiterea unei facturi proforme, care nu are valoare contabilă, dar pe baza căreia se generează factura fiscală la încasare.
Facturarea abonamentelor
În sistemele SaaS, abonamentul este cel care definește perioada de acces și beneficiile.
În cel mai simplu mod de lucru, avem următorul proces:
- clientul alege pachetul
- se emite proforma
- clientul achită proforma
- se emite factura fiscală
- se actualizează data de expirare a abonamentului (se extinde cu o lună, un an etc.)
- cu o săptămână (sau o perioadă definită) înainte de data de expirare, se emite o nouă proformă
- se reia procesul de la pasul 3.
Upgrade și downgrade
Problemele apar atunci când clientul decide să facă o modificare la abonament. În acest caz, se activează opțiunea nouă începând cu ziua curentă. Aici intervin calcule astfel încât nici clientul, nici furnizorul să nu piardă bani.
În cazul upgrade-ului, soluția noastră a fost următoarea:
- calculăm câte zile au fost utilizate din planul curent
- determinăm valoarea perioadei neconsumate
- calculăm costul zilnic pentru abonamentul nou
- echivalăm cu suma rămasă din abonamentul curent
- scădem această valoare din prețul abonamentului nou
- clientul achită doar diferența.
Posibile probleme la modificarea abonamentelor
În practică, am întâlnit diverse situații, pe care le-am tratat în funcție de context și de proiect.
- Clientul nu achită proforma în ziua emiterii
Acest lucru poate însemna fie refuzul tacit al noului abonament, fie o amânare de plată. Clientul nostru, cel pentru care am dezvoltat soluția SaaS, a fost cel care a decis.
Tehnic, am folosit două abordări:
- un script care șterge proforma generată și, eventual, generează o proformă de prelungire pentru abonamentul curent, dacă suntem în perioada de facturare a prelungirii
- un script de recalculare, în fiecare zi, a sumei de plătit, în funcție de perioada rămasă.
2. Se face downgrade și suma de compensat e mai mare decât costul abonamentului curent
Din nou, clientul a fost cel care a decis. Posibilități:
- Acolo unde au fost costuri la terți (platforme de trimitere de mailuri, API-uri pentru AI etc.), nu s-a restituit suma deja achitată
- În funcție de clientul final, compensarea s-a făcut în afara aplicației
- Au fost aplicații unde s-a alocat noul abonament pe o perioadă mai lungă
- Sau pur și simplu nu s-a restituit nicio sumă.
Toate aceste variante sunt legale, dacă sunt specificate în Termenii și condițiile aplicației și sunt acceptate de client.
3. Există extraopțiuni care nu sunt incluse în noul abonament
Probabil e redundant, dar clientul decide și în acest caz!
De fapt, acesta este esența aplicațiilor dezvoltate la comandă: clientul își definește procesul de lucru, iar noi îl implementăm. Rolul nostru, ca dezvoltatori, este să propunem variante și să oferim analize din punct de vedere tehnic.
Concluzii
Un avantaj major pentru client este să aibă un tool care reflectă procesele reale din business. Aceasta este, de fapt, valoarea pe care o aducem: economisirea timpului și eficientizarea activităților.
Toate procesele pe care le implementăm, inclusiv cel de facturare – descris mai sus, au ca scop automatizarea acțiunilor, astfel încât intervenția umană să fie minimă și doar acolo unde este necesară.

