Dacă vinzi un serviciu cu abonament (mentenanță, contabilitate, software, cursuri), fiecare început de lună arată la fel: cineva deschide lista de abonați, emite facturile una câte una, le trimite pe email, apoi caută în extras cine a plătit. Prin automatizarea facturării înțelegem exact asta: emiterea, trimiterea și urmărirea plății se fac la termen, fără om, iar echipei îi rămân doar excepțiile.
Miza nu este doar timpul. Facturile emise târziu se încasează târziu. Când emiterea, plata și evidența încasării sunt legate, vezi în orice zi cât ai de primit și de la cine.
Ce înseamnă un abonament pentru sistem
Înainte de orice cod, descriem abonamentul ca pe o regulă: serviciul, prețul, moneda, data de început, intervalul (lunar, trimestrial, anual), ziua emiterii, termenul de plată și condiția de oprire. Par detalii, dar aici stau cele mai multe excepții: cel care a început la mijlocul lunii, cel care trece la un pachet mai mare, cel cu preț negociat.
Fiecare excepție primește o regulă, nu o notiță. La schimbarea pachetului în timpul perioadei, de pildă, poți factura diferența proporțional sau poți aplica noul preț de la următoarea emitere. Important este să alegi una, iar sistemul să o aplice la fel tuturor.
Aspectele fiscale (factură sau proformă înainte de plată, cursul la prețurile în valută, stornările) le stabilești cu contabilul, iar noi le transpunem în reguli.
Emiterea, plata cu cardul și reminderele
Nu emitem facturi într-un sistem paralel. Documentul se creează prin API (interfața prin care un program primește comenzi de la altul) acolo unde lucrează deja contabilitatea, iar transmiterea în sistemul e-Factura rămâne în sarcina acelui program.
Presupunem că ai câteva sute de abonați cu plată lunară. În ziua stabilită, sistemul parcurge abonamentele active și face singur acești pași:
- Emitere: factura se generează cu datele abonatului, perioada și termenul de plată, apoi pleacă pe email cu un link de plată cu cardul.
- Plată recurentă: dacă abonatul și-a dat acordul, suma se încasează automat de pe cardul salvat la procesatorul de plăți.
- Remindere: un mesaj înainte de scadență, unul la scadență și altele după, cu tonul ales de tine.
- Plăți eșuate: un card expirat sau fără fonduri înseamnă o nouă încercare și un mesaj cu link de actualizare.
- Suspendare: dacă așa prevede contractul, accesul la serviciu se restrânge după un număr de remindere, cu anunț prealabil.
Potrivirea încasărilor cu facturile
Plățile cu cardul se potrivesc singure: procesatorul confirmă tranzacția împreună cu referința facturii. Transferurile bancare sunt partea dificilă: oamenii plătesc două facturi într-o singură sumă, scriu la detalii altceva decât numărul facturii sau plătesc din contul altei firme.
Importăm extrasul de cont (fișierul exportat din internet banking sau, unde banca o permite, o conexiune directă) și căutăm pentru fiecare încasare factura potrivită după numărul din explicație, sumă, codul fiscal și numele plătitorului. Potrivirile sigure se marchează automat ca încasate. Cele nesigure apar într-o listă, cu sugestii, iar un coleg le confirmă.
Rezultatul este o situație a restanțelor la zi, pe vechime, fără să aștepți închiderea de lună.
Unelte și legături într-un proiect de automatizare facturare
Programul de facturare: multe dintre cele folosite în România oferă API (SmartBill și Oblio sunt două exemple), prin care se pot crea facturi și se pot înregistra încasări, uneori doar pe anumite abonamente. Dacă programul tău nu are API, discutăm despre import prin fișiere sau despre schimbarea lui.
Procesatorul de plăți: pentru încasări recurente se folosește tokenizarea, adică procesatorul păstrează datele cardului și îți dă un identificator cu care inițiezi plățile următoare. Prima plată o autentifică titularul la banca sa, iar pentru cele următoare contează acordul dat atunci, pe care îl păstrăm ca dovadă.
Restul este cod propriu, de obicei în PHP cu Laravel: evidența abonamentelor, sarcinile programate care pornesc emiterea și jurnalul fiecărei acțiuni. Jurnalul răspunde la o întrebare pe care o vei primi sigur: de ce a primit acest abonat această factură.
Factura dublă, factura după renunțare și alte greșeli de prevenit
Cea mai scumpă greșeală este factura dublă sau cea emisă după ce abonatul a renunțat. De aceea fiecare emitere are o cheie unică (abonament plus perioadă), iar sistemul refuză să emită a doua oară pentru aceeași pereche. Prima rulare o facem în regim de probă: lista facturilor care ar fi emise, verificată de tine, fără niciun document creat.
După pornire, câțiva indicatori simpli arată dacă sistemul își face treaba:
- Facturi emise la termen față de cele care au cerut intervenție manuală.
- Încasări potrivite automat față de cele confirmate de un om.
- Plăți recurente eșuate și câte dintre ele se recuperează după reîncercare.
Întrebări frecvente
Pot păstra programul de facturare pe care îl am?
Da, dacă are API sau măcar import de date. Preferăm să păstrăm programul cunoscut de contabilitate și să automatizăm în jurul lui.
Este sigur să încasez automat de pe cardul abonaților?
Datele cardului stau la procesatorul de plăți, nu la tine, iar încasarea se face doar pe baza acordului explicit al titularului. Textul acordului merită verificat cu un jurist.
De ce depinde durata unui astfel de proiect?
De numărul de tipuri de abonament și de excepții, de programul de facturare și de procesatorul ales, și de starea datelor despre abonați. Curățarea listei de abonați ia adesea mai mult decât programarea.
Aceasta este o descriere de proiect-tip: arată cum abordăm de obicei o astfel de lucrare și nu prezintă un proiect făcut pentru un client anume. Fiecare proiect real pornește de la situația firmei tale, iar etapele, termenele și prețul se stabilesc după discuția de început.