01Ce face Stripe la fiecare perioadă de facturare
Când creezi un abonament, documentația Stripe spune că Stripe generează facturile, încearcă să încaseze plata și ține evidența stării abonamentului pe toată durata lui. Când abonamentul se încasează automat, prima factură rămâne deschisă 23 de ore. Dacă plătește clientul în intervalul ăsta, abonamentul devine activ. Dacă nu, expiră, iar factura se anulează. De acolo, fiecare perioadă de facturare aduce o factură nouă și o încasare de pe metoda de plată salvată. Site-ul tău nu conduce bucla asta. Ascultă. Stripe trimite evenimente webhook, de exemplu invoice.paid și invoice.payment_failed, pentru că cea mai mare parte a activității unui abonament e asincronă, iar site-ul trebuie să verifice că fiecare eveniment vine într-adevăr de la Stripe. Aici se încurcă mulți. Adevărul despre facturare e la Stripe. Site-ul ține o copie, pe care o ține la zi evenimentele.
- Stripe creează factura, încearcă încasarea și mută abonamentul între stările lui
- Prima factură a unui abonament încasat automat: 23 de ore ca să plătească clientul, altfel expiră și factura se anulează
- Site-ul tău află ce s-a întâmplat din evenimente webhook, pentru că cea mai mare parte a activității unui abonament e asincronă
- Verifică semnătura fiecărui eveniment înainte să acționezi
02Ce se întâmplă când o plată eșuează
Cardurile expiră și sunt refuzate. Documentația Stripe spune că Stripe Billing poate reîncerca automat plățile eșuate ale abonamentelor. Recomandă Smart Retries, cu o setare implicită recomandată de 8 încercări în 2 săptămâni, iar în loc de asta poți seta reguli proprii, cu cel mult trei reîncercări. Unele refuzuri nu se pot reîncerca. Dacă banca emitentă returnează un cod de refuz definitiv, de pildă card pierdut sau furat, Stripe nu poate executa o reîncercare până nu primești o metodă de plată nouă. Cât timp plățile eșuează, abonamentul stă în starea past_due. Când reîncercările se termină, alegi din Dashboard ce urmează: anulezi abonamentul, îl marchezi neplătit, îl lași past due sau, dacă e eligibil, îl pui pe pauză. Ghidul Stripe pentru webhook-uri spune să anunți clientul când abonamentul devine past_due și să retragi accesul când devine anulat sau neplătit. Stripe poate trimite și emailurile: unul după fiecare plată eșuată cu cardul, un reminder înainte de reînnoire și unul cu o lună înainte să expire cardul salvat, fiecare activat din Dashboard. Emailurile au un link către o pagină unde clientul își poate schimba metoda de plată.
- Smart Retries: setare implicită recomandată de 8 încercări în 2 săptămâni; regulile proprii permit cel mult trei reîncercări
- Refuzurile definitive, de pildă un card pierdut sau furat, așteaptă o metodă de plată nouă
- După ultima reîncercare alegi: anulare, neplătit, past due sau pauză
- Emailurile pentru plată eșuată, reînnoire și card care expiră sunt comutatoare în Dashboard-ul Stripe
- Hotărăște în scris cât timp păstrează un membru accesul cât plata e past due
03Ce pot face membrii fără să te întrebe pe tine
Portalul de clienți Stripe le permite clienților să-și actualizeze datele de facturare și metodele de plată, să schimbe sau să anuleze abonamentele și să vadă și să descarce facturile. Îl activezi din Dashboard. Printre limbile suportate e și româna, iar sesiunile din portal sunt temporare. Are limite. Dacă un abonament are mai multe produse, facturare pe consum, perioade de probă sau facturi trimise spre plată, clientul îl poate anula din portal, dar nu îl poate modifica. Portalul nu poate fi afișat nici într-un iframe. Sunt cererile care altfel ajung în inboxul tău. Nu am măsurat câte mesaje de suport economisește, așa că nu dăm nicio cifră.
- Portalul se activează din Dashboard-ul Stripe
- Clienții își schimbă metoda de plată și datele de facturare, anulează imediat sau la sfârșitul perioadei și își văd facturile
- Româna e printre limbile suportate
- Limite: nu poate fi afișat într-un iframe, iar abonamentele cu perioade de probă sau mai multe produse se pot anula acolo, dar nu se pot modifica
04Când rămâi pe varianta gata făcută
Dacă ai puțini membri și un singur preț, s-ar putea să nu ai nevoie de nicio construcție custom. Dashboard-ul Stripe poate crea abonamente, poate trimite emailurile de mai sus și poate găzdui portalul de clienți. Începe de acolo. O platformă custom își merită banii când membrii au nevoie de cont, de o zonă privată sau când ceva de la tine trebuie să se schimbe odată cu facturarea: acces care se pornește și se oprește, rapoarte încărcate pentru un membru, o listă pentru echipa ta. SunVolt Club are zonă de membru și rapoarte încărcate, dar studiul de caz nu spune că accesul urmează starea facturării. La PROOF48 o astfel de lucrare nu face parte din oferta de 48 de ore, care acoperă un site de până la aproximativ cinci pagini sau un landing page, la 500 până la 2.500 EUR. O platformă de membri e un proiect mai mare sau custom. Scopul și prețul se stabilesc separat, termenii noștri spun că poate cere un avans stabilit de comun acord, iar aplicațiile web în general pornesc de la 5.000 EUR. Planul AUTOMATE, 2.997 EUR pe lună, include două automatizări custom pe lună și nu merită banii doar pentru facturare. Articolul acoperă doar încasarea cu cardul prin Stripe. Regulile românești de facturare nu intră aici: citește articolul nostru despre e-Factura și întreabă contabilul. Un reminder pe WhatsApp sau la telefon pentru un membru cu cardul respins ar fi o lucrare custom, la cerere. Nu am verificat taxele Stripe pentru articolul ăsta, așa că citește pagina lor de prețuri înainte să decizi.
- Puțini membri, un singur preț: folosește Dashboard-ul Stripe, emailurile lui și portalul, și oprește-te acolo
- O construcție custom își merită banii când accesul, datele membrilor sau uneltele echipei depind de starea facturării
- Nu e oferta de 48 de ore (un site de până la aproximativ cinci pagini sau un landing page, 500 până la 2.500 EUR): proiectele mai mari sau custom se stabilesc și se cotează separat și pot cere un avans stabilit de comun acord
- AUTOMATE, 2.997 EUR pe lună, nu merită banii doar pentru facturare
Un abonament anual plătit, live, cu checkout Stripe și webhook-uri verificate prin semnătură
SunVolt Club este programul de membri al SunVolt Energy UAB, o companie de energie solară. PROOF48 a construit platforma care îl vinde și îl administrează: un abonament anual de 99 EUR, live pe club.sunvoltenergy.eu, în română și engleză. Studiul de caz listează un checkout Stripe pentru abonamentul anual, cu webhook-uri verificate prin semnătură, o zonă de membru cu autentificare, resetare de parolă și administrarea contului, și o zonă de administrare pentru gestionarea membrilor și încărcarea rapoartelor lor energetice. Nu spune cum sunt făcute reînnoirile, reîncercările sau un portal de clienți, așa că nu pretindem nimic din ele aici. Nu publicăm numărul de membri sau încasările SunVolt, pentru că sunt informațiile lor.
Vezi lucrarea: SunVolt ClubÎntrebări, cu răspuns
Am nevoie de o construcție custom ca să-mi facturez membrii?
Nu ca să începi. Dashboard-ul Stripe poate crea abonamente, poate trimite emailuri pentru plată eșuată și reînnoire și poate găzdui un portal de clienți. O construcție custom contează când propriul tău site trebuie să reacționeze la starea facturării, de pildă pornind și oprind accesul membrilor.
Ce se întâmplă cu un membru al cărui card este respins?
Conform documentației Stripe, abonamentul trece în past_due, iar Stripe poate reîncerca, cu o setare implicită recomandată de 8 încercări în 2 săptămâni. După ultima reîncercare, abonamentul urmează setarea ta: anulat, neplătit, past due sau pe pauză. Cât timp păstrează membrul accesul până atunci e decizia ta.
Poate PROOF48 să trimită un reminder pe WhatsApp când o plată eșuează?
Nu în planul AUTOMATE, care acoperă chatul de pe site, DM, email, programări și CRM. Un reminder pe WhatsApp sau la telefon ar fi o lucrare custom, evaluată la cerere.
Acoperă articolul ăsta facturarea românească și e-Factura?
Nu. Pentru articolul ăsta am citit doar documentația Stripe. Verifică obligațiile tale de facturare cu contabilul.
Unde se încadrează PROOF48
Automatizarea facturării abonamentelor înseamnă că Stripe rulează factura, încasarea și reîncercările, iar site-ul tău reacționează la evenimentele lui: acces pornit cât abonamentul e activ, oprit când e anulat sau neplătit. Începe cu Dashboard-ul Stripe, emailurile lui și portalul de clienți. Construiește custom doar când accesul sau datele membrilor depind de facturare. PROOF48 a construit pentru SunVolt Club o platformă de membri cu checkout Stripe, iar o platformă de membri se stabilește și se cotează separat.
Cosmin Tiu · Fondator, PROOF48
Cosmin lucrează în marketing online și dezvoltare software din 2018, iar din ianuarie 2023 construiește zilnic cu AI. Scrie și acum cod de la zero în fiecare zi, în Python, React, Rust și C#. PROOF48 livrează site-uri de prezentare în 48 de ore și facturează după, așa că fiecare opinie de pe acest blog a fost plătită în lucrări reale, nu în teorie.