> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# v1.99.0 (25 Maggio 2026)

> Codici sconto cumulabili (fino a 20 per checkout, pagamento o abbonamento), sette nuove email di notifica ai clienti per rimborsi ed eventi del ciclo di vita degli abbonamenti, revisione della pagina di pagamento del checkout che aumenta i tassi di successo del 2–3%, rielaborazione del modulo prodotto con anteprima in tempo reale e salvataggio automatico, e redesign delle Business Settings

## Nuove Funzioni

### 1. **Codici Sconto Combinati**

Le sessioni di checkout, i pagamenti, gli abbonamenti e le modifiche ai piani ora accettano **fino a 20 codici sconto in una singola richiesta** tramite l'array `discount_codes`. I codici sono applicati **in ordine di array** — il primo codice idoneo riduce il prezzo base, il secondo riduce il prezzo già scontato, e così via — quindi puoi stratificare le campagne senza creare codici combinati su misura.

![Dialogo di Conferma Cambio Piano con più codici sconto combinati](https://mintcdn.com/dodopayments/Ehnri26kKx69Tfxe/images/changelog/v1.99.0/stacked-discounts.png?fit=max\&auto=format\&n=Ehnri26kKx69Tfxe\&q=85\&s=7a2606d7027de6e662cf9be6b7df8213)

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'pdt_abc', quantity: 1 }],
  discount_codes: ['WELCOME10', 'BLACKFRIDAY20'], // applied in this order
  customer: { email: 'user@example.com' },
  return_url: 'https://yoursite.com/return'
});
```

**Dove si applica**

| Superficie | Campo | Max codici |
| - | - | - |
| Sessioni di Checkout | `discount_codes` | 20 |
| Pagamenti | `discount_codes` | 20 |
| Abbonamenti | `discount_codes` | 20 |
| Modifiche Piano | `discount_codes` | 20 |

**Comportamento modifica piano**

| Valore `discount_codes` | Effetto |
| - | - |
| Non fornito | Gli sconti esistenti con `preserve_on_plan_change=true` sono mantenuti se applicabili al nuovo prodotto |
| `[]` (array vuoto) | Tutti gli sconti esistenti sono rimossi dall'abbonamento |
| `['CODE_A', 'CODE_B', ...]` | Sostituisce qualsiasi sconto esistente con questo set combinato, applicato in ordine di array |

**Forma della risposta**

L'intero set di sconti applicati è restituito sotto l'array `discounts` su pagamenti e abbonamenti — ogni voce include `discount_id`, `position`, e `cycles_remaining` (per abbonamenti). Il campo singolare ereditato `discount_id` è deprecato ma ancora presente per compatibilità con le versioni precedenti.

> [!NOTE]
>
> Il campo singolare `discount_code` è **deprecato** ma ancora pienamente supportato — le integrazioni esistenti continuano a funzionare senza modifiche. Non può essere combinato con `discount_codes` nella stessa richiesta. Consigliamo di migrare a `discount_codes` quando conveniente, anche per singoli codici, per sfruttare la combinazione e la forma della risposta più ricca.

Scopri di più: [Codici Sconto](https://docs.dodopayments.com/features/discount-codes.md) | [Sessione di Checkout](https://docs.dodopayments.com/developer-resources/checkout-session.md) | [Modifiche Piano](https://docs.dodopayments.com/developer-resources/subscription-upgrade-downgrade.md)

### 2. **Sette Nuove Email di Notifica Cliente**

Sette nuove email transazionali sono ora inviate automaticamente ai tuoi clienti, coprendo conferme di rimborso, traguardi del ciclo di vita degli abbonamenti, e fallimenti di pagamento. Ogni email è attivabile indipendentemente da **Impostazioni → Comunicazioni** nella sezione **Email Cliente**.

![Pannello impostazioni Email Cliente con interruttori per ogni email di notifica](https://mintcdn.com/dodopayments/Ehnri26kKx69Tfxe/images/changelog/v1.99.0/customer-notification-emails.png?fit=max\&auto=format\&n=Ehnri26kKx69Tfxe\&q=85\&s=44cad42723269d9728a9dae2a061613b)

**Iscrizione (attivato di default)**

| Email | Quando si attiva |
| - | - |
| **Rimborso Riuscito** | Un rimborso è stato elaborato con successo e i fondi sono in restituzione al cliente |
| **Fine Prova Abbonamento** | \~2 giorni prima della scadenza di una prova e dell'addebito del primo pagamento |
| **Abbonamento Annullato Immediatamente** | Un abbonamento è annullato con effetto immediato |
| **Abbonamento Annullato Alla Prossima Data di Fatturazione** | Un abbonamento è programmato per l'annullamento alla fine del periodo di fatturazione corrente |

**Cancellazione iscrizione (disattivato di default)**

| Email | Quando si attiva |
| - | - |
| **Pagamento Fallito** | Tentativo di pagamento fallito — attiva se vuoi che Dodo Payments notifichi direttamente il cliente invece di gestirlo nel tuo sistema |
| **Rinnovo Abbonamento Fallito** | Un pagamento per rinnovo abbonamento fallisce specificamente; si attiva invece di (non in aggiunta a) l'email generale di Pagamento Fallito per pagamenti di rinnovo |
| **Promemoria Rinnovo Imminente** | \~2 giorni prima di un rinnovo dell'abbonamento |

> [!TIP]
>
> Se gestisci la comunicazione con i clienti personalmente tramite webhook, lascia disattivate le email di cancellazione per evitare di inviare ai clienti notifiche duplicate per lo stesso evento.

> [!NOTE]
>
> Le email ai clienti sono separate dalle email di notifica inviate al tuo team. Disattivare un'email cliente non influisce sulle notifiche del team per lo stesso evento.

Scopri di più: [Preferenze Comunicazione](https://docs.dodopayments.com/features/communication-preferences.md)

## Miglioramenti

### 3. **Revisione della pagina di pagamento del checkout**

La pagina di pagamento del checkout è stata rielaborata in modo sostanziale da cima a fondo: layout più compatto, caricamento percepito più rapido, stati di convalida più chiari e UX dell’inserimento dei dati della carta perfezionata. Nel complesso, queste modifiche hanno aumentato i **tassi di successo osservati del checkout di circa il 2–3%** sul traffico globale.

![Pagina di pagamento del checkout precedente](https://mintcdn.com/dodopayments/Ehnri26kKx69Tfxe/images/changelog/v1.99.0/checkout-payment-before.png?fit=max\&auto=format\&n=Ehnri26kKx69Tfxe\&q=85\&s=cd86eb287a4688e14bb01e836382744f)

Before

![Pagina di pagamento del checkout riprogettata](https://mintcdn.com/dodopayments/Ehnri26kKx69Tfxe/images/changelog/v1.99.0/checkout-payment-after.png?fit=max\&auto=format\&n=Ehnri26kKx69Tfxe\&q=85\&s=4eb10926ab5a1a1c97ab4cbf16e78fb2)

After

Cosa è cambiato:

* **Interazioni con i campi più fluide** — autofocus, ordine di tabulazione più intelligente e navigazione da tastiera migliorata nel modulo della carta
* **Stati di errore e caricamento più chiari** — la convalida inline viene mostrata esattamente dove il cliente deve intervenire, sostituendo il precedente schema con un banner di errore per l’intero modulo
* **Rendering più rapido** — skeleton e hydration progressiva eliminano il breve sfarfallio dello stato vuoto sulle reti lente
* **Ottimizzazione per dispositivi mobili** — aree di tocco, comportamento dello scroll e gestione della tastiera ottimizzati specificamente per il checkout mobile, dove ora si concentra la maggior parte del traffico

> [!TIP]
>
> Non sono necessarie modifiche all’integrazione. Le sessioni di checkout esistenti utilizzeranno automaticamente la nuova pagina di pagamento.

### 4. **Rielaborazione del modulo prodotto**

I flussi di **creazione**, **modifica** e **duplicazione** dei prodotti sono stati ricostruiti da zero attorno a un’unica esperienza di modulo coerente.

![Modulo prodotto unificato con Dettagli di base, Media e descrizione, Prezzi e un’anteprima del checkout in tempo reale affiancata](https://mintcdn.com/dodopayments/Ehnri26kKx69Tfxe/images/changelog/v1.99.0/product-form.png?fit=max\&auto=format\&n=Ehnri26kKx69Tfxe\&q=85\&s=12693e04457400a4aa33063ef0d73221)

Punti salienti:

* **Anteprima in tempo reale** — scopri come appare il tuo prodotto nel checkout e nel Customer Portal mentre lo modifichi, affiancato al modulo
* **Salvataggio automatico** — le bozze vengono salvate automaticamente, quindi allontanarti dalla pagina o perdere la scheda non significa più perdere il lavoro svolto
* **Editor Markdown** — le descrizioni dei prodotti ora supportano un editor Markdown completo con rendering in tempo reale, anteprime dei link e controlli di formattazione inline
* **Parità del flusso di duplicazione** — la duplicazione di un prodotto apre lo stesso modulo unificato già compilato, invece di una finestra di dialogo semplificata, così puoi modificare ogni campo prima di salvare la copia

> [!TIP]
>
> Usa **Duplicate** per creare varianti regionali o con diversi livelli di prezzo di un prodotto esistente senza reinserire descrizioni, metadati o configurazione dell’evasione.

### 5. **Redesign della pagina Business Settings**

La pagina **Settings → Business** è stata riprogettata per rendere la configurazione più facile da consultare e più rapida da aggiornare. Le impostazioni sono ora raggruppate in sezioni più chiare, con testi esplicativi che descrivono l’impatto di ogni opzione prima di attivarla o disattivarla.

Non ci sono **modifiche comportamentali** alle impostazioni esistenti: sono migliorati solo il layout, il raggruppamento e le spiegazioni di contesto.

![Pagina Business Settings riprogettata con sezioni raggruppate per informazioni aziendali, brand, valuta, sicurezza e monitoraggio](https://mintcdn.com/dodopayments/Ehnri26kKx69Tfxe/images/changelog/v1.99.0/business-settings.png?fit=max\&auto=format\&n=Ehnri26kKx69Tfxe\&q=85\&s=7603e02f67bb05a590681400f1e3f4b5)

## Miglioramenti

* **L’override `credits_amount` ora viene propagato correttamente alle route GET delle sessioni di checkout e dei payment link** — quando una sessione di checkout o un payment link veniva creato con un override `credit_entitlements` specifico per il checkout, il recupero della sessione o del link tramite GET restituiva il valore predefinito `credits_amount` a livello di prodotto anziché il valore sovrascritto. Il problema è stato risolto.
* **Azione di rimborso disabilitata per i pagamenti completamente rimborsati** — il pulsante Refund di un pagamento viene ora disabilitato quando il pagamento è stato completamente rimborsato, con un tooltip che ne spiega il motivo. In precedenza, il pulsante rimaneva attivo e restituiva un errore solo dopo l’invio.
* Correzioni di bug minori e miglioramenti della stabilità in tutta la piattaforma


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.