Nuove Funzionalità
1. Analisi a Livello di Prodotto
Ogni prodotto dispone ora di una dashboard analitica dedicata. Vai su Prodotti > [Seleziona un Prodotto] per accedere alle metriche dettagliate specifiche di quel prodotto, organizzate in cinque schede:
| Scheda | Cosa Ottieni |
|---|
| Panoramica | Ricavi totali, conteggio dei pagamenti riusciti, grafico della tendenza dei ricavi a 30 giorni (giornaliero o cumulativo) e tabella delle transazioni filtrabile |
| Clienti | Top 3 clienti ordinati per spesa con vista a podio, oltre a una tabella dettagliata dei clienti |
| Fidelizzazione | Tasso di abbandono clienti, tasso di abbandono dei ricavi e grafico a doppia linea per individuare schemi |
| Abbonati | Tutti gli abbonamenti per il prodotto con stato, data di inizio, prossima data di fatturazione e importo |
| MRR | Grafico a barre impilate del Ricavo Ricorrente Mensile con suddivisione in Nuovo MRR, MRR di Espansione, MRR Perduto e MRR Netto Nuovo |
Tutte le schede supportano un filtro temporale (impostato su Tutto il Tempo di default) per approfondire qualsiasi periodo.
Usa la scheda Fidelizzazione per individuare precocemente i prodotti con alto churn e la scheda MRR per verificare se i ricavi di espansione superano quelli persi mese dopo mese.
Scopri di più: Analisi a Livello di Prodotto
2. Supporto Verifi RDR su Dodo Payments
Dodo Payments ora supporta Visa Rapid Dispute Resolution (RDR) alimentato da Verifi – uno strumento automatizzato di prevenzione delle dispute che risolve le dispute Visa idonee prima che diventino chargeback formali. Quando un titolare di carta avvia una disputa, RDR la intercetta ed emette automaticamente un rimborso se la transazione è inferiore alla soglia USD configurata.
Perché È Importante
| Vantaggio | Impatto |
|---|
| Tasso di dispute inferiore | Le dispute risolte da RDR non vengono conteggiate ai fini della soglia Visa dello 0,9% |
| Nessuna commissione di disputa | Evita commissioni non rimborsabili da 15a25 per disputa |
| Zero overhead operativo | Nessuna raccolta di prove o scadenze di risposta |
| Migliore esperienza cliente | I titolari di carta ricevono rimborsi immediati |
| Protezione dell’account | Rimani fuori dal Visa Dispute Monitoring Program (VDMP) |
Superare il 0,9% di dispute Visa o 100 dispute al mese attiva il VDMP, con multe crescenti fino a oltre $50.000/mese. RDR ti aiuta a rimanere ben al di sotto di queste soglie.
Come Funziona
- Il titolare della carta avvia una disputa con la propria banca
- RDR intercetta la disputa prima che diventi un chargeback formale
- Se l’importo della transazione è pari o inferiore alla tua soglia, viene emesso automaticamente un rimborso
- La disputa si risolve all’istante e non viene conteggiata nel tuo tasso di dispute
Le transazioni rimborsate automaticamente tramite RDR appaiono come dispute perse nella dashboard di Dodo Payments. Questo è previsto: il rimborso è stato emesso automaticamente per evitare un chargeback formale.
Per abilitare Verifi RDR sul tuo account, contatta support@dodopayments.com per configurare la tua soglia.
Scopri di più: Documentazione Visa RDR
3. DodoPayments CLI
Presentiamo la nuovissima DodoPayments CLI (dodopayments-cli) – gestisci l’intero flusso di lavoro Dodo Payments direttamente dal terminale. Progettata per gli sviluppatori che preferiscono la linea di comando, la CLI ti consente di gestire prodotti, pagamenti, clienti, sconti, licenze, componenti aggiuntivi, rimborsi e perfino creare sessioni di checkout senza uscire dal tuo editor.
Installazione
npm install -g dodopayments-cli
Comandi Chiave
| Comando | Descrizione |
|---|
dodo login | Autenticati con la tua API key (apre il browser) |
dodo products list | Elenca tutti i prodotti |
dodo payments list | Elenca tutti i pagamenti |
dodo customers create | Crea un nuovo cliente |
dodo checkout new | Crea una sessione di checkout e ottieni l’URL |
dodo wh listen | Inoltra webhook di test live al tuo server locale tramite WebSocket |
dodo wh trigger | Invia payload webhook mock a qualsiasi endpoint |
Test dei Webhook
La CLI include due strumenti potenti per lo sviluppo:
dodo wh listen – Apre una connessione WebSocket per inoltrare webhook di test in tempo reale al tuo server locale, mantenendo gli header originali per test di verifica della firma
dodo wh trigger – Invia payload webhook mock in modo interattivo, supportando tutti e 22 i tipi di eventi tra abbonamenti, pagamenti, rimborsi, dispute e licenze
Il listener dei webhook funziona solo con una chiave API in modalità test. Assicurati di essere autenticato con una chiave in modalità test prima di usare dodo wh listen.
Scopri di più: Documentazione CLI
4. Restyling UI del Portale Clienti
Il Portale Clienti è stato completamente riprogettato con un’interfaccia pulita e unificata. Il portale rinnovato presenta una barra laterale di navigazione sinistra e sezioni organizzate, offrendo ai clienti un’esperienza self-service più intuitiva.
Novità
| Sezione | Funzionalità |
|---|
| Abbonamenti Attivi | Visualizza tutti gli abbonamenti attivi con dettagli del piano, ciclo di fatturazione e prossima data di pagamento |
| Metodi di Pagamento | Gestisci i metodi di pagamento salvati, aggiungi nuove carte e aggiorna i dettagli di pagamento |
| Storico Fatturazione | Visualizza le fatture passate con ricevute PDF scaricabili |
| Informazioni di Fatturazione | Modifica nome, email, numero di telefono e indirizzo di fatturazione |
| Dettagli dell’Abbonamento | Visualizza informazioni dettagliate sull’abbonamento con opzioni per annullare o modificare il piano |
| Modifiche al Piano | Effettua upgrade o downgrade tramite le Collezioni di Prodotti direttamente nel portale |
I clienti possono anche aggiornare i metodi di pagamento per gli abbonamenti attivi o riattivare quelli in sospeso a causa di pagamenti falliti – tutto dal portale rinnovato.
Il portale rinnovato è disponibile su https://customer.dodopayments.com/login/{business_id} per la modalità live e https://test.customer.dodopayments.com/login/{business_id} per la modalità test.
Scopri di più: Portale Clienti
5. Aggiorna Metodo di Pagamento in Inline Checkout
L’inline checkout supporta ora gli aggiornamenti del metodo di pagamento per gli abbonamenti. Quando un cliente deve aggiornare il metodo di pagamento (per un abbonamento attivo o per riattivare un abbonamento in sospeso), il flusso di aggiornamento può ora essere renderizzato direttamente all’interno del layout della tua pagina tramite l’inline checkout, offrendo un’esperienza incorporata e fluida.
Come Funziona
- Chiama l’API di Aggiornamento Metodo di Pagamento per ottenere un
payment_link:
const response = await client.subscriptions.updatePaymentMethod('sub_123', {
type: 'new',
return_url: 'https://example.com/return'
});
- Usa il
payment_link restituito come checkoutUrl nell’inline checkout:
DodoPayments.Checkout.open({
checkoutUrl: response.payment_link,
elementId: "dodo-inline-checkout"
});
Il frame inline renderizza solo il modulo di raccolta del metodo di pagamento, consentendo ai clienti di inserire i dati di una nuova carta o selezionare un metodo salvato senza lasciare la tua pagina.
Per gli abbonamenti in sospeso, il flusso di aggiornamento metodo di pagamento crea automaticamente un addebito per gli importi rimanenti. Monitora gli webhook payment.succeeded e subscription.active per confermare la riattivazione.
Scopri di più: Inline Checkout | Aggiornamenti Metodo di Pagamento per Abbonamenti
6. Supporto Prefill Codice Fiscale per le Sessioni di Checkout
Ora puoi precompilare il Codice Fiscale (es. partita IVA, numero GST) quando crei una sessione di checkout usando il parametro tax_id. Questo è ideale per transazioni B2B dove conosci già il numero di identificazione fiscale del cliente. Quando un Codice Fiscale è precompilato, il campo viene prepopolato e bloccato nel modulo di checkout.
const session = await client.checkoutSessions.create({
product_cart: [{ product_id: 'prod_123', quantity: 1 }],
customer: { customer_id: 'cus_123' },
billing_address: { country: 'DE' },
tax_id: 'DE999999999',
return_url: 'https://yoursite.com/return'
});
Il parametro tax_id richiede un billing_address con almeno un campo country. L’ammissibilità fiscale viene convalidata in tempo reale e le regole di inversione dell’addebito vengono applicate automaticamente per le transazioni B2B idonee.
Usa il flag funzionalità allow_customer_editing_tax_id per controllare se i clienti possono modificare il Codice Fiscale precompilato e allow_tax_id per alternare la visibilità del Codice Fiscale al checkout.
Scopri di più: Sessioni di Checkout - Codice Fiscale | Pagamenti B2B
7. Chiave di Licenza ed Email nell’URL di Ritorno
Dopo che un cliente completa il checkout, Dodo Payments ora aggiunge license_key e email come parametri query al tuo reindirizzamento return_url, oltre agli esistenti parametri payment_id/subscription_id e status.
Parametri Query Aggiunti
| Parametro | Tipo | Condizione |
|---|
payment_id | string | Sempre presente per pagamenti una tantum |
subscription_id | string | Sempre presente per pagamenti ricorrenti |
status | string | Sempre presente |
license_key | string | Presente se il prodotto ha le chiavi di licenza abilitate (separato da virgole per più chiavi) |
email | string | Presente se il cliente ha un’email registrata |
Esempi di URL di reindirizzamento:
# One-time payment with license key
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com
# Subscription with multiple license keys
https://yoursite.com/return?subscription_id=sub_xxx&status=active&license_key=LK-001,LK-002&email=customer%40example.com
Usa questi parametri query per visualizzare le chiavi di licenza o inviare subito un’email di conferma nella tua pagina di ritorno, senza bisogno di una chiamata API aggiuntiva.
Scopri di più: Sessioni di Checkout - URL di Ritorno | Chiavi di Licenza nell’URL di Ritorno
8. API per l’Aggiornamento dell’Email del Cliente
L’endpoint PATCH /customers/{customer_id} ora supporta l’aggiornamento programmatico degli indirizzi email dei clienti. Aggiorna email insieme a nome, numero di telefono e metadata in una singola chiamata API.
await client.customers.update('cus_123', {
email: 'newemail@example.com',
name: 'Updated Name'
});
Campi Aggiornabili
| Campo | Tipo | Descrizione |
|---|
email | string | null | Indirizzo email del cliente |
name | string | null | Nome visualizzato del cliente |
phone_number | string | null | Numero di telefono in formato internazionale |
metadata | object | null | Coppie chiave-valore personalizzate |
Gli aggiornamenti dell’email cliente sono disponibili anche tramite il Portale Clienti (self-service), la dashboard e la CLI tramite dodo customers update.
Scopri di più: API di Aggiornamento Cliente | Gestione Clienti
9. Rilascio dell’Adattatore Bun
Presentiamo @dodopayments/bun – un adattatore dedicato per il server nativo di Bun (Bun.serve()). Integra checkout, portale clienti e webhook con Bun in poche righe di codice.
Installazione
bun add @dodopayments/bun
Configurazione Rapida
import { Checkout, CustomerPortal, Webhooks } from "@dodopayments/bun";
Bun.serve({
routes: {
"/api/checkout": Checkout({
bearerToken: process.env.DODO_PAYMENTS_API_KEY!,
returnUrl: process.env.DODO_PAYMENTS_RETURN_URL!,
environment: process.env.DODO_PAYMENTS_ENVIRONMENT!,
}),
"/api/customer-portal": CustomerPortal({
bearerToken: process.env.DODO_PAYMENTS_API_KEY!,
environment: process.env.DODO_PAYMENTS_ENVIRONMENT!,
}),
"/api/webhooks": Webhooks({
webhookKey: process.env.DODO_PAYMENTS_WEBHOOK_KEY!,
onPaymentSucceeded: async (payload) => {
console.log("Payment succeeded:", payload.data.payment_id);
},
onSubscriptionActive: async (payload) => {
console.log("Subscription active:", payload.data.subscription_id);
},
}),
},
});
L’adattatore Bun supporta tutti e tre i flussi di checkout (statico, dinamico e basato su sessione), la generazione di sessioni del portale clienti e la gestione sicura dei webhook con verifica della firma e validazione Zod per 22 tipi di eventi.
L’adattatore Bun si unisce alla nostra famiglia di 11 adattatori di framework, tra cui Next.js, Nuxt, Express, Fastify, Hono, Astro, SvelteKit, Remix, TanStack Start, Better Auth e Convex.
Scopri di più: Documentazione Adattatore Bun | Panoramica Adattatori Framework