> ## 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.112.0 (5 agosto 2026)

> I codici sconto ora supportano sconti di importo, pianificazione, regole di idoneità dei clienti e opzioni per valuta, insieme a un'esperienza nativa per i webhooks completamente ricostruita con avvisi via email — oltre a Cash App Pay per gli abbonamenti, SEPA Direct Debit per i pagamenti una tantum in EUR, messaggi di errore di pagamento più chiari per i clienti, webhooks per i payout, la modifica autonoma dell'email di accesso, un'impostazione che consente ai clienti di annullare autonomamente i propri abbonamenti e un filtro per valuta nell'elenco dei pagamenti.

## Nuove funzionalità

### 1. **Codici sconto: sconti di importo, pianificazione e regole di idoneità**

I codici sconto non sono più limitati alle percentuali. Ora un codice può detrarre un importo fisso, iniziare secondo una pianificazione, avere prezzi diversi per valuta e limitare chi può riscattarlo.

**Sconti di importo**

Imposta `type` su `flat` per detrarre un importo fisso invece di una percentuale. La detrazione viene applicata al carrello nel suo complesso, anziché a ogni singola riga.

| Tipo        | Valore API   | Comportamento                                                           |
| ----------- | ------------ | ----------------------------------------------------------------------- |
| Percentuale | `percentage` | Riduce il prezzo di una percentuale, con un eventuale limite per valuta |
| Importo     | `flat`       | Detrarre un importo fisso, applicato al carrello nel suo complesso      |

<Frame>
  <img src="https://mintcdn.com/dodopayments/Rh05LkBeJE32G3qq/images/discount-codes/discount-flat-discount-option.png?fit=max&auto=format&n=Rh05LkBeJE32G3qq&q=85&s=38ce7f39a1ccbd26c61718f685fc4e71" alt="Editor del codice sconto con il tipo Importo selezionato, che mostra una detrazione fissa di 500 INR" style={{ maxHeight: '500px', width: 'auto' }} width="3474" height="1968" data-path="images/discount-codes/discount-flat-discount-option.png" />
</Frame>

**Opzioni per valuta**

`currency_options` consente a un singolo codice di comportarsi correttamente con ogni valuta in cui vendi. Ogni voce definisce, per una singola valuta, lo sconto massimo (la detrazione stessa per un codice di tipo Importo, un limite per un codice Percentuale) e il valore minimo del carrello. Uno sconto di tipo Importo richiede almeno un'opzione di valuta con un valore predefinito risolvibile; le opzioni per valuta restano facoltative per gli sconti Percentuale.

**Idoneità dei clienti**

`customer_eligibility` controlla chi può riscattare un codice:

| Valore       | Chi può riscattarlo                                    |
| ------------ | ------------------------------------------------------ |
| `any`        | Qualsiasi cliente. È il valore predefinito.            |
| `first_time` | Clienti che non hanno mai effettuato acquisti da te.   |
| `existing`   | Clienti che hanno già effettuato acquisti da te.       |
| `specific`   | Solo i clienti che aggiungi all'allow list del codice. |

<Frame>
  <img src="https://mintcdn.com/dodopayments/Rh05LkBeJE32G3qq/images/discount-codes/discount-restriction.png?fit=max&auto=format&n=Rh05LkBeJE32G3qq&q=85&s=3c01240807a7ca2f13b33a9f4cf4ce43" alt="Menu a discesa dell'idoneità dei clienti con le opzioni Qualsiasi, Prima volta, Esistente e Cliente specifico" style={{ maxHeight: '500px', width: 'auto' }} width="2832" height="830" data-path="images/discount-codes/discount-restriction.png" />
</Frame>

Gestisci l'allow list dalla dashboard oppure tramite i nuovi endpoint: `GET /discounts/{discount_id}/customers` per elencare i clienti associati, `POST /discounts/{discount_id}/customers` per associarli e `DELETE /discounts/{discount_id}/customers/{customer_id}` per rimuoverne uno.

<Warning>
  Un codice `specific` inizia con **zero** clienti idonei e rifiuta ogni riscatto finché non associ dei clienti.
</Warning>

**Pianificazione e limiti per cliente**

Imposta `starts_at` per pianificare il lancio futuro di un codice — se lo lasci non impostato, il codice rimane attivo immediatamente e deve precedere strettamente `expires_at`. Usa `per_customer_usage_limit` per limitare la frequenza con cui un singolo cliente può riscattare un codice, come limite separato che non può superare il valore complessivo di `usage_limit`.

<Info>
  Il valore minimo del carrello viene sempre calcolato sui prezzi originali del carrello, mai sul totale parziale durante una combinazione di sconti. L'ordine di applicazione degli sconti non cambia quindi il fatto che il minimo sia stato raggiunto.
</Info>

Scopri di più: [Sconti](/features/discount-codes) | [Crea sconto](/api-reference/discounts/create-discount)

### 2. **Un'esperienza webhooks ricostruita**

La sezione webhooks della dashboard è stata ricostruita come esperienza nativa, sostituendo il portale incorporato. Ora tutto si trova all'interno della dashboard, con tabelle, filtri e navigazione coerenti, e funziona correttamente sui dispositivi mobili.

* **Endpoint** — crea e modifica gli endpoint in un pannello laterale, seleziona i tipi di evento da un albero ricercabile e visualizza immediatamente il tasso di errore delle ultime 24 ore.
* **Attività e log** — monitora nel tempo i tentativi di consegna nel grafico **Attività di consegna**, consulta i messaggi consegnati e apri una pagina di **dettagli del messaggio** per esaminare il payload e ogni tentativo di consegna, con relativo codice di risposta e durata. Ogni tentativo può essere riprodotto da lì.
* **Catalogo degli eventi** — consulta tutti i tipi di evento inviati da Dodo Payments, con il relativo schema e un payload di esempio.
* **Panoramica dell'endpoint** — statistiche di consegna delle ultime 24 ore, il signing secret da visualizzare o ruotare e la **Cronologia delle riproduzioni**.
* **Test** — invia un evento di esempio a un endpoint per verificare il tuo ricevitore prima di andare live.
* **Avanzate** — limita la velocità di consegna, gestisci le intestazioni personalizzate inviate con ogni richiesta a quell'endpoint e modifica la relativa trasformazione.
* **Riproduzione in blocco** — su un endpoint, recupera i messaggi non riusciti, riproduci quelli che non sono mai stati inviati oppure riproduci un intervallo filtrato.
* **Avvisi via email** — una nuova scheda **Impostazioni** in cui puoi elencare gli indirizzi a cui inviare un'email quando le consegne a un endpoint iniziano a non riuscire. Separa più indirizzi con virgole e lascia il campo vuoto per disattivare gli avvisi.

<Info>
  Questa modifica riguarda solo la dashboard. I tuoi endpoint esistenti, signing secret, verifica delle firme, nomi degli eventi e payload non cambiano — non è necessario alcun intervento sull'integrazione.
</Info>

Scopri di più: [Webhooks](/developer-resources/webhooks) | [Eventi webhook](/developer-resources/webhooks/intents/webhook-events-guide)

### 3. **Cash App Pay per gli abbonamenti**

Ora Cash App Pay può supportare un abbonamento ricorrente, non solo un pagamento una tantum. È disponibile nei checkout statunitensi con addebito in USD, insieme alle opzioni di pagamento con carta già esistenti.

Scopri di più: [Wallet digitali](/features/payment-methods/digital-wallets)

### 4. **SEPA Direct Debit**

SEPA Direct Debit è ora disponibile in tutta l'Eurozona e consente ai clienti di pagare direttamente dal proprio conto bancario invece di usare una carta. È offerto nei checkout in EUR per i pagamenti una tantum.

<Warning>
  SEPA Direct Debit non è istantaneo. Un pagamento richiede **6 giorni lavorativi** per essere confermato, quindi non considerare l'autorizzazione come avvenuto regolamento — completa l'ordine solo quando il pagamento raggiunge lo stato succeeded.
</Warning>

Scopri di più: [Metodi di pagamento europei](/features/payment-methods/europe)

### 5. **Messaggi di errore di pagamento più chiari**

Quando un pagamento non va a buon fine, tu e il cliente visualizzate ora un testo scritto appositamente invece del testo grezzo del processore. Ogni errore viene ricondotto a una tassonomia di **46 codici di errore unificati**, ciascuno associato a due destinatari:

* **Tu** visualizzi un titolo e un'azione consigliata sul pagamento, così sai se chiedere al cliente di riprovare, contattare la banca o usare un'altra carta. `error_message` sull'oggetto Payment ora contiene questo testo ogni volta che `error_code` è un codice unificato riconosciuto.
* **Il cliente** visualizza una spiegazione in linguaggio semplice nella schermata di errore del checkout, nel Customer Portal e nelle email di dunning — ad esempio, *"Il codice di sicurezza della tua carta (CVC) non sembra corretto. Inseriscilo nuovamente e riprova."*

<Warning>
  Per i rifiuti sensibili alle frodi — `FRAUDULENT`, `LOST_CARD`, `STOLEN_CARD` e `PICKUP_CARD` — il cliente visualizza sempre un messaggio generico, così il vero motivo non viene mai divulgato. Tu visualizzi comunque il motivo reale, contrassegnato da un avviso che indica di non condividerlo.
</Warning>

Scopri di più: [Errori delle transazioni](/api-reference/transaction-failures) | [Pagamenti](/features/transactions/payments) | [Ottieni dettagli del pagamento](/api-reference/payments/get-payments-1)

### 6. **Consenti ai clienti di annullare autonomamente i propri abbonamenti**

**Consenti l'annullamento dell'abbonamento** è ora un'impostazione di primo livello nella scheda **Abbonamenti** delle impostazioni della dashboard, applicata end-to-end. Quando la disattivi, il Customer Portal disabilita il pulsante di annullamento e l'API rifiuta l'annullamento avviato dal cliente con un `403` — sia per l'annullamento immediato sia per il flusso "annulla alla prossima data di fatturazione". In precedenza l'impostazione nascondeva solo il pulsante, quindi un cliente determinato poteva comunque annullare tramite l'API.

L'impostazione è **abilitata per impostazione predefinita**. I tuoi annullamenti tramite merchant API e dashboard non sono mai interessati e un cliente può sempre revocare un annullamento già pianificato.

Scopri di più: [Customer Portal](/features/customer-portal) | [Abbonamenti](/features/subscription)

### 7. **Webhooks dei payout**

Ora ricevi webhooks per i tuoi payout, così puoi riconciliarli nei tuoi sistemi contabili senza eseguire polling.

| Evento               | Si attiva quando                                                                               |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| `payout.created`     | Viene creato un payout, dal ciclo automatico o fuori ciclo                                     |
| `payout.in_progress` | Arriva la data di scadenza del payout e inizia l'elaborazione                                  |
| `payout.on_hold`     | Il payout viene sospeso o sottoposto a revisione                                               |
| `payout.success`     | Il payout sul tuo conto bancario viene regolato                                                |
| `payout.failed`      | Il payout non va a buon fine e l'importo e le commissioni vengono riaccreditati sul tuo wallet |

<Note>
  `payout.created` veniva precedentemente emesso come `payout.not_initiated`. Se un endpoint esistente filtra in base a `payout.not_initiated`, aggiorna il filtro a `payout.created` affinché continui a trovare le corrispondenze. Il campo `status` del payload continua a riportare `not_initiated` in questa fase.
</Note>

Scopri di più: [Webhooks dei payout](/developer-resources/webhooks/intents/payout) | [Processo dei payout](/features/payouts/payout-structure)

### 8. **Modifica l'email di accesso dalla dashboard**

Ora puoi modificare l'indirizzo email con cui accedi, senza contattare l'assistenza. La scheda Account è stata riprogettata e include una nuova sezione **Modifica email**, con un pulsante **Modifica email** che avvia il processo.

La verifica si svolge in due passaggi: inviamo un codice al tuo indirizzo **attuale** per confermare la tua identità, quindi un secondo codice al tuo indirizzo **nuovo** per confermare che ne hai il controllo. Dopo aver verificato entrambi:

* Da quel momento accedi con il nuovo indirizzo. Il precedente non funziona più per password, magic link e codici inviati via email.
* Gli eventuali identity provider collegati, come l'accesso con Google o GitHub, vengono scollegati e devono essere ricollegati.
* La password, le attività, l'accesso del team e lo stato di verifica non cambiano.
* Un avviso viene inviato al precedente indirizzo, così una modifica imprevista non passa mai inosservata.

Scopri di più: [Il mio account](/miscellaneous/accounts)

### 9. **Analisi: nuovi widget e perfezionamenti**

Sulla base della ricostruzione di Analytics v3, questa release aggiunge nuove visualizzazioni e perfeziona quelle esistenti.

* **I ricavi per paese sono ora visualizzati in una mappa coropletica a larghezza completa**, con l'elenco dei paesi ordinati accanto; la scheda può essere condivisa come le altre.
* **Grafici delle tendenze ridisegnati** con puntatore a croce al passaggio del mouse, pillola della data scorrevole sull'asse x e tooltip compatto.
* **Nuovi intervalli preimpostati** — **Ultimi 30 giorni** sostituisce Ultime 4 settimane e **Ultimi 6 mesi** si aggiunge all'elenco.
* **I tuoi filtri vengono mantenuti.** L'intervallo preimpostato e la modalità di confronto ora persistono per attività e ti seguono sui diversi dispositivi, invece di essere ripristinati ai valori predefiniti a ogni sessione.
* **I clienti principali vengono identificati per nome**, con l'email come fallback.
* I ricavi per paese ora restituiscono fino ai **primi 150** paesi.

Scopri di più: [Analisi della dashboard](/features/analytics-and-reporting)

## Miglioramenti e correzioni di bug

### 10. **Filtra i pagamenti per valuta**

`GET /payments` accetta un parametro di query **`currency`** facoltativo, così puoi elencare solo i pagamenti regolati in una determinata valuta — ad esempio `GET /payments?currency=EUR`. Lo stesso filtro è disponibile nella tabella Payments della dashboard.

Scopri di più: [Elenca pagamenti](/api-reference/payments/get-payments)

### 11. **Finestra per la risposta alle contestazioni estesa a 10 giorni**

Ora hai **10 giorni** per rispondere a una contestazione dopo la sua creazione, rispetto ai 4 precedenti. Il conto alla rovescia della contestazione nella dashboard e la scadenza per la risposta restituita dall'API riflettono entrambi la finestra più lunga.

Scopri di più: [Contestazioni](/features/transactions/disputes)

### 12. **Moduli più chiari per i conti bancari dei payout**

Aggiungere un conto bancario per i payout è meno ambiguo. Le etichette dei campi, le descrizioni e i tooltip ora si adattano al tipo di attività, così il nome del titolare del conto e quello del beneficiario non risultano più duplicati per le ditte individuali. Selezionando **Altro** come banca puoi digitare liberamente il nome, il codice bancario nazionale cinese è indicato come **CNAPS** e la pagina dei payout rimane visibile in modalità test, così puoi raggiungere i conti collegati da entrambe le modalità.

Scopri di più: [Processo dei payout](/features/payouts/payout-structure)

### Altre correzioni e miglioramenti

* **I crediti derivanti dal cambio di piano vengono stornati quando un pagamento non va a buon fine.** I crediti di prorata emessi durante il cambio del piano di un abbonamento non rimangono più presenti se il pagamento risultante non va a buon fine.
* **Le fatture delle prove a pagamento mostrano l'addebito della prova**, non il prezzo ricorrente normale.
* **Gli sconti percentuali rispettano il valore minimo del carrello**, calcolato sul prezzo base anziché sul totale parziale; inoltre, il timeout del blocco dello sconto ora restituisce un codice di errore distinto invece di un `503` generico.
* **L'eliminazione di un metodo di pagamento già rimosso ora va a buon fine** invece di restituire un errore, rendendo la chiamata idempotente in modo sicuro.
* **Corretta la valuta utilizzata per la soglia minima del mandato in India** durante l'aggiornamento del metodo di pagamento di un abbonamento.
* **Le voci del registro crediti oltre i limiti consentiti** vengono rifiutate con un `400` tipizzato invece di fallire in un secondo momento.
* **I prodotti Pay-what-you-want supportano un importo fisso** nei link di checkout condivisi e gli ID delle entitlement vengono mostrati nel pannello dei dettagli dell'entitlement.
* Correzioni di Analytics: serie del valore nel tempo, add-on inclusi nell'MRR, nessun confronto tra periodi negli intervalli complessivi, serie che si interrompono al bucket attuale ed etichette più chiare per intervalli e confronti.
* Correzioni di bug minori e miglioramenti della stabilità in tutta la piattaforma.
