Stripe Billing: setup abbonamenti
Stripe Billing trasforma Stripe in una piattaforma completa per abbonamenti SaaS, membership e pagamenti ricorrenti. Permette di gestire prodotti, prezzi, periodi di prova, sconti e cambio piano con poche chiamate API.
Modello a Prodotto e Prezzo
L'architettura di Billing si basa su due oggetti: Product e Price. Un Product rappresenta un'offerta (es. Piano Pro), mentre Price definisce quanto costa e con quale cadenza (mensile, annuale, una tantum). Un singolo Product può avere più Price (mensile vs annuale, EUR vs USD) e ciò semplifica i test A/B di pricing senza riconfigurare il catalogo.
Subscription, trial e proration
Una Subscription collega un Customer a uno o più Price. Stripe gestisce automaticamente rinnovi, fatture, retry su carte rifiutate (Smart Retries) e proration in caso di upgrade/downgrade. Il trial period è impostabile a livello di Subscription o di Price, e supporta sia trial con carta richiesta sia senza.
Gestione dunning e mancati pagamenti
Quando una subscription rinnova ma la carta viene rifiutata, Stripe avvia il dunning: invia email automatiche al cliente (configurabili in Settings -> Subscriptions), riprova l'addebito con Smart Retries (machine learning sceglie il momento ottimale entro 7-21 giorni) e infine cancella la sub se non si recupera. Configura le email con il tuo brand, includi link al Customer Portal per aggiornare la carta, e gestisci customer.subscription.deleted webhook per disattivare il servizio. Best practice: invia ulteriore email 3 giorni prima della cancellazione con offerta sconto retention.
Metered billing e usage-based pricing
Per servizi SaaS con pricing a consumo (es. API call, GB stoccaggio) usa Metered Subscription: crea un Price con recurring.usage_type='metered' e riporta usage via stripe.subscriptionItems.createUsageRecord. Stripe aggrega il consumo nel ciclo di fatturazione e genera l'invoice automatica. Supporta strategie billing: sum_of_usage (somma totale), most_recent (ultimo valore). Combinato con tiered pricing puoi modellare scaglioni (es. primi 1000 incl., poi 0,01 EUR/call). Particolarmente utile per AI/SaaS infrastructure pricing models.
Webhook chiave per Billing
Eventi Billing critici da gestire: invoice.created (nuova fattura generata, ancora non pagata), invoice.finalized (fattura inviata, addebito imminente), invoice.paid (pagamento riuscito, attiva fulfillment), invoice.payment_failed (fallimento, avvia dunning), customer.subscription.created/updated/deleted (stato sub), customer.subscription.trial_will_end (3 giorni prima fine trial, invia notifica conversione), invoice.upcoming (7 giorni prima rinnovo, opportunita' notify cliente importi). Best practice: handler idempotente per ogni evento, sync stato sub nel tuo DB con campo last_synced_at.
Quote API e preventivi B2B
Per vendite B2B con cicli sales lunghi, Stripe Quote API permette di creare preventivi formali: una Quote include line items, sconti, condizioni di pagamento, scadenza, branding personalizzato. Il cliente riceve email con link Stripe-hosted, accetta digitalmente, e il sistema converte automaticamente in Subscription o Invoice. Supporta multi-line item, custom fields, electronic signature, multi-currency. Riduce attriti vs PDF tradizionali e da' visibilità' real-time su accettazione preventivi. Particolarmente utile per Saas enterprise con annual contracts.
Migration da altri sistemi billing
Migrare da Recurly, Chargebee, Zuora o sistema custom a Stripe Billing richiede pianificazione: 1) Export Customer con metadata (id legacy, payment_method); 2) Card migration via PCI transfer (carte salvate trasferite come token Stripe); 3) Import Subscription con anchor date corretti per non duplicare addebito; 4) Webhook handler che gestisce sia evento Stripe nuovi sia eventuale tail legacy; 5) Run parallel 30-60 giorni per safety. Stripe offre Migration Service per merchant enterprise (volume > 1M EUR/anno billing) con team dedicato. Per business < 100 subscription attive, migration manuale via API è fattibile in 1-2 settimane. Test approfondito su edge case: trial in corso, sub paused, sub in dunning.
Strategia di pricing e psicologia consumer
Stripe Billing supporta strategie di pricing avanzate: 1) Anchor pricing (mostra prezzo annuale come 'risparmio del 20%'); 2) Decoy pricing (3 tier con middle attractive); 3) Free trial con/senza carta; 4) Money-back guarantee 30 giorni; 5) Promotional first month gratis. Stripe espone Coupon e PromotionCode per implementare queste tattiche senza codice custom. A/B test pricing via Stripe Billing è facilitato dalla possibilità di creare multiple Price per stesso Product. Monitor conversion + LTV per ogni variante. Best practice SaaS: tre tier (Basic/Pro/Enterprise) con featured middle plan. Annual discount 15-20% per migliorare cash flow e ridurre churn.
Procedura passo-passo
- Crea i prodotti dalla Dashboard in Products oppure via API stripe.products.create.
- Aggiungi i prezzi (Price) per ciascun prodotto definendo currency, recurring.interval e unit_amount.
- Configura le impostazioni globali Billing in Settings -> Billing: dunning, retry, email automatiche.
- Crea il Customer e collega un PaymentMethod tramite SetupIntent.
- Genera la Subscription via API o lascia che il Checkout in modalità subscription la crei.
- Abilita Customer Portal in Settings -> Billing -> Customer Portal per upgrade/downgrade self-service.
- Configura webhook customer.subscription.* e invoice.* per sincronizzare lo stato con il tuo database.
Errori comuni e come risolverli
- Cambio prezzo senza creare nuovo Price: i Price sono immutabili: crea sempre una nuova versione e archivia la vecchia.
- Trial senza carta sul Checkout: richiede payment_method_collection=if_required per evitare di obbligarne l'inserimento.
- Webhook invoice.paid non gestiti: lo stato dell'utente non si aggiorna a fine trial.
- Dimenticare proration_behavior: in caso di upgrade può addebitare importi non previsti.
Domande frequenti
D: Posso modificare il prezzo di un Price esistente?
R: No, i Price sono immutabili. Crea un nuovo Price e migra le subscription se serve.
D: Stripe gestisce le mancate riscossioni?
R: Sì, Smart Retries riprova automaticamente con strategia ottimizzata su carte rifiutate.
D: Come gestisco gli sconti?
R: Tramite Coupon e Promotion Code applicabili a Subscription o Checkout Session.
D: Posso fatturare in più valute?
R: Sì, crea Price multipli con currency diverse e il sistema sceglie quello giusto per il Customer.
Hai bisogno di aiuto?
Se vuoi integrare Stripe con il team di G Tech Group, scrivici tramite il modulo di contatto.