> ## 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.97.6 (7 maggio 2026)

> Lancio delle Autorizzazioni con cinque nuove integrazioni di adempimento (Discord, GitHub, Telegram, Framer, Notion), motivi di cancellazione dell'abbonamento nel portale clienti, soglia configurabile degli INR e-mandate, impostazione inclusiva delle commissioni di valuta adattiva, app Desktop Dodo Payments per macOS/Windows/Linux, pagamenti in stablecoin (USDC/USDP/USDG), importazione delle chiavi di licenza esistenti, require_phone_number per le sessioni di checkout e correzioni di bug

## Nuove funzionalità

### 1. **Autorizzazioni**

Dodo Payments ora include le **Autorizzazioni** unificate — un livello unico che alimenta la consegna automatica per ogni integrazione di adempimento. Un singolo prodotto può offrire più autorizzazioni per ogni acquisto riuscito o abbonamento attivo.

![Cruscotto delle autorizzazioni con l'elenco delle autorizzazioni a sinistra e l'attività di concessione a destra](https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/list.png?fit=max\&auto=format\&n=do-W-dMDGVB_xzr_\&q=85\&s=12a326205f64d1e71485bce46114d296)

**Cinque nuove integrazioni di piattaforma**

Fino ad ora, Dodo Payments forniva **chiavi di licenza** e **file digitali** automaticamente all'acquisto. Ora le autorizzazioni estendono tale ambito a cinque piattaforme aggiuntive — i clienti paganti possono ottenere l'accesso alla tua comunità, al tuo codice o al tuo contenuto nel momento in cui il pagamento viene confermato, senza adempimento manuale da parte tua:

| Integrazione | Cosa offre | Comportamento di revoca |
| - | - | - |
| **Discord** | Assegna un ruolo scelto nel tuo server Discord dopo che il cliente completa l'OAuth | Ruolo rimosso alla cancellazione/rimborso |
| **GitHub** | Aggiunge il cliente come collaboratore a un repository privato al livello di autorizzazione che scegli | Collaboratore rimosso alla cancellazione/rimborso |
| **Telegram** | Fornisce un invito una tantum per una chat o un canale privato tramite il tuo bot Telegram | Cliente estromesso dalla chat alla cancellazione/rimborso |
| **Framer** | Sblocca un link di remix di un modello di Framer protetto da un codice di accesso | Codice di accesso disattivato alla cancellazione/rimborso |
| **Notion** | Duplica una pagina modello di Notion nello spazio di lavoro del cliente dopo l'autorizzazione tramite OAuth | Pagina consegnata archiviata alla cancellazione/rimborso |

Queste si aggiungono alle integrazioni esistenti di **chiavi di licenza** (chiavi uniche con limiti di attivazione e scadenza) e **file digitali** (URL di download prefirmati per e-book, template, media), ora gestite attraverso lo stesso ciclo di vita della concessione.

**Cosa ottieni fuori dalla scatola**

| Capacità | Descrizione |
| - | - |
| **Template riutilizzabili** | Definisci una concessione una volta (limiti di attivazione, pacchetti di file, ruolo di Discord, permesso repo, ecc.) e collegala a qualsiasi prodotto |
| **Concessioni automatiche** | Emesse su `payment.succeeded` e `subscription.active`, idempotenti tra i rinnovi e le riattivazioni |
| **Revoca consapevole del ciclo di vita** | Revocata su `subscription.cancelled`, `subscription.on_hold`, `subscription.expired`, `refund.succeeded`, `subscription.plan_changed` o revoca manuale API/dashboard — con un `revocation_reason` popolato |
| **OAuth + flussi diretti della piattaforma** | OAuth per Discord, GitHub e Notion consenso degli abbonati; chiamate dirette alla piattaforma per Telegram, Framer e file digitali |
| **Rilevamento delle derive** | Rileva quando un ruolo Discord, un collaboratore di GitHub o una pagina di Notion va fuori sincronia a livello di piattaforma e revoca con `revocation_reason: platform_external` |
| **Crittografia a riposo** | Tutti i token delle piattaforme (OAuth, bot, installazioni app) memorizzati con AES-256-GCM |

**Webhook**

Quattro nuovi eventi di ciclo di vita si attivano per ogni concessione:

| Evento | Quando si attiva |
| - | - |
| `entitlement_grant.created` | Viene creata una nuova concessione per un cliente |
| `entitlement_grant.delivered` | Accesso del cliente fornito |
| `entitlement_grant.failed` | La consegna non è stata completata; ispeziona `error_code` e `error_message` |
| `entitlement_grant.revoked` | Accesso ritirato; ispeziona `revocation_reason` |

> [!TIP]
>
> Per nuove integrazioni, ascolta `entitlement_grant.delivered` piuttosto che `payment.succeeded`. Il successo del pagamento non significa che la consegna è terminata, in particolare per le integrazioni basate su OAuth.

Per saperne di più: [Autorizzazioni](https://docs.dodopayments.com/features/entitlements/introduction.md) | [Webhook di concessione delle autorizzazioni](https://docs.dodopayments.com/developer-resources/webhooks/intents/entitlement-grant.md)

### 2. **Motivi di cancellazione dell'abbonamento nel Portale Clienti**

Quando i clienti cancellano un abbonamento dal Portale Clienti, ora vengono invitati a condividere **perché stanno cancellando** prima di confermare. La ragione catturata viene memorizzata sull'abbonamento come `cancellation_feedback`, mostrata nei payload dell'API e del webhook, e disponibile sul cruscotto in modo che tu possa individuare i modelli di attrito a colpo d'occhio.

![Modalità di cancellazione del Portale Clienti con il menu a tendina 'Perché stai cancellando?' che mostra ragioni come Troppo costoso, Funzionalità mancanti e Altro](https://mintcdn.com/dodopayments/RlXcM7JO-E_w40Np/images/customer-portal/cancellation-reasons.png?fit=max\&auto=format\&n=RlXcM7JO-E_w40Np\&q=85\&s=979394da2a9aa3907cbf9f4e225f9a4b)

**Opzioni di ragione**

| Valore | Etichetta verso il cliente |
| - | - |
| `too_expensive` | Troppo costoso |
| `missing_features` | Funzionalità mancanti |
| `switched_service` | Passato a un altro servizio |
| `unused` | Non lo uso abbastanza |
| `customer_service` | Servizio clienti scadente |
| `low_quality` | Scarsa qualità |
| `too_complex` | Troppo complesso |
| `other` | Altro |

**Dove appare**

* **Subscription object**: Nuovo campo `cancellation_feedback` (uno dei valori sopra) e `cancellation_comment` (testo libero facoltativo), valorizzati quando il cliente annulla
* **`subscription.cancelled` webhook**: Entrambi i campi sono inclusi nel payload
* **API**: Passa `cancellation_feedback` e `cancellation_comment` a `PATCH /subscriptions/{subscription_id}` durante la pianificazione o l'esecuzione programmatica di un'annullamento

```typescript theme={null}
// Reading the captured feedback
const subscription = await client.subscriptions.retrieve('sub_123');
console.log(subscription.cancellation_feedback); // e.g., "too_expensive"
console.log(subscription.cancellation_comment);  // e.g., "Switching to a competitor"
```

> [!TIP]
>
> Combina `cancellation_feedback` con [Gestione Riscosso Abbonamento](https://docs.dodopayments.com/features/recovery/subscription-dunning.md) per personalizzare le tue email di riconquista — ad esempio, invia un codice sconto ai cancellatori `too_expensive` e un sondaggio 'cosa manca?' ai cancellatori `missing_features`.

Per saperne di più: [Portale Clienti](https://docs.dodopayments.com/features/customer-portal.md#cancelling-a-subscription) | [Webhook di abbonamento](https://docs.dodopayments.com/developer-resources/webhooks/intents/subscription.md)

### 3. **Importo minimo configurabile del mandato per INR E-Mandates**

Ora puoi configurare il **limite di mandato** per gli e-mandates INR sugli abbonamenti con carta indiana ricorrente. Precedentemente, ogni abbonamento con carta indiana sotto ₹15,000 utilizzava un mandato a richiesta fisso di ₹15,000. Ora puoi sovrascrivere questo limite a livello del commerciante — e per sessione di checkout o abbonamento se necessario.

L'importo del mandato registrato presso la banca del cliente è `max(mandate_min_amount_inr_paise, billing_amount)`, quindi questo valore funge da **tetto massimo di autorizzazione** mostrato al cliente ogni volta che la fattura è inferiore al limite.

```typescript theme={null}
// Per-subscription override
const subscription = await client.subscriptions.create({
  product_id: 'pdt_inr_monthly',
  customer: { email: 'customer@example.in' },
  billing: { country: 'IN' /* ... */ },
  mandate_min_amount_inr_paise: 2_000_000 // ₹20,000 ceiling for this subscription
});

// Or via a checkout session
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'pdt_inr_monthly', quantity: 1 }],
  mandate_min_amount_inr_paise: 2_000_000,
  return_url: 'https://yoursite.com/return'
});
```

**Priorità di risoluzione**

1. Sovrascrittura per richiesta (`mandate_min_amount_inr_paise` sulla sessione di checkout, pagamento o abbonamento)
2. Impostazione a livello di commerciante nelle impostazioni di business
3. Sistema predefinito di **₹15,000** (1,500,000 paise)

| Campo | Tipo | Gamma | Si applica a |
| - | - | - | - |
| `mandate_min_amount_inr_paise` | `integer` (Paise INR) | `>= 1` | Abbonamenti INR con carta indiana su connettori non-Airwallex |

> [!NOTE]
>
> Questa impostazione interessa solo gli e-mandates registrati per carte emesse in India (Visa, Mastercard, RuPay) su abbonamenti INR. Gli abbonamenti UPI seguono il loro flusso AutoPay e non sono interessati.

Per saperne di più: [Metodi di Pagamento in India](https://docs.dodopayments.com/features/payment-methods/india.md#mandate-types) | [Abbonamenti con Mandati RBI](https://docs.dodopayments.com/features/subscription.md#subscriptions-with-rbi-compliant-mandates)

### 4. **Impostazione di Business Inclusiva delle Commissioni di Valuta Adattiva**

Valuta Adattiva è la funzione che ti permette di addebitare i clienti nella loro valuta locale. Per impostazione predefinita, la **commissione di valuta adattiva del 2-4%** è a carico del cliente e aggiunta oltre il tuo prezzo mostrato. Con la nuova impostazione **Commissioni Inclusive**, puoi invertire questo: mantenere invariato il prezzo mostrato per il cliente e assorbire la commissione tu stesso.

**Dove configurare**

Vai a **Impostazioni → Business**, assicurati che **Prezzi Adattivi** sia attivato e attiva **Commissioni Inclusive** nella sezione Valuta Adattiva.

**Sovrascrittura per richiesta**

Puoi anche sovrascrivere l'impostazione predefinita del merchant per singoli pagamenti, addebiti di abbonamenti on-demand e modifiche ai piani utilizzando il booleano `adaptive_currency_fees_inclusive`:

```typescript theme={null}
const payment = await client.payments.create({
  product_cart: [{ product_id: 'pdt_abc', quantity: 1 }],
  customer: { customer_id: 'cus_123' },
  billing: { country: 'US' },
  adaptive_currency_fees_inclusive: true, // override business default
  return_url: 'https://yoursite.com/return'
});
```

| Modalità | Cliente vede | Commerciante si risolve |
| - | - | - |
| Esclusivo (predefinito) | Prezzo locale + tassa 2-4% in più | Prezzo base completo |
| Inclusivo | Prezzo locale (invariato) | Prezzo base meno la tassa 2-4% |

> [!NOTE]
>
> Le transazioni INR → INR sono sempre trattate come inclusive indipendentemente dall'impostazione aziendale o dalla sovrascrittura per richiesta.

Per saperne di più: [Valuta Adattiva](https://docs.dodopayments.com/features/adaptive-currency.md)

### 5. **App Desktop Dodo Payments**

L'app ufficiale **Dodo Payments Desktop** è ora generalmente disponibile per **macOS, Windows e Linux**. Esegui il tuo cruscotto pagamenti come un'app nativa veloce — senza bisogno di una scheda browser.

| Piattaforma | Download |
| - | - |
| macOS (Apple Silicon) | `Dodo.Payments_<version>_aarch64.dmg` |
| macOS (Intel) | `Dodo.Payments_<version>_x64.dmg` |
| Windows | `Dodo.Payments_<version>_x64-setup.exe` (o `.msi`) |
| Linux (Debian/Ubuntu) | `Dodo.Payments_<version>_amd64.deb` |
| Linux (Fedora/RHEL) | `Dodo.Payments-<version>-1.x86_64.rpm` |
| Linux (AppImage, auto-aggiornamento) | `Dodo.Payments_<version>_amd64.AppImage` |

**Cosa c'è dentro**

* **Piccolo binario nativo** — costruito con Tauri sul webview nativo del sistema, \~5 MB in totale (senza Chromium incluso)
* **Firmato e notarizzato** — le versioni di macOS sono firmate con Apple Developer ID e notarizzate, quindi senza avvisi di Gatekeeper
* **Aggiornamento automatico** — verifica ogni 4 ore e applica automaticamente aggiornamenti firmati da GitHub Releases (funziona su macOS, Windows e Linux AppImage)
* **Vassoio di sistema + barra menu** — nascondi nel vassoio su macOS, menù completi File/Modifica/Vista/Aiuto con scorciatoie da tastiera (`⌘⇧H` vai al cruscotto, `⌘L` copia URL corrente, `⌘⌥I` strumenti per sviluppatori)
* **Supporto deep-link** — i link di autenticazione magic-link si aprono direttamente nell'app
* **Multi-finestra** — apri più cruscotti uno accanto all'altro

> [!TIP]
>
> Preleva l'ultimo installer per la tua piattaforma dalla pagina [Rilasci App Desktop](https://github.com/dodopayments/dodo-desktop/releases/latest). Il repository è completamente open source.

### 6. **Pagamenti Stablecoin (USDC, USDP, USDG)**

Accetta **pagamenti stablecoin a livello globale** con regolamento in USD. I clienti pagano dal loro portafoglio stablecoin preferito sulla rete di loro scelta; ricevi fiat USD senza esposizione alla volatilità delle criptovalute, senza rimborsi e senza necessità di infrastrutture bancarie da parte del cliente.

**Valute e reti supportate**

| Stablecoin | Reti |
| - | - |
| **USDC** | Ethereum, Solana, Polygon, Base |
| **USDP** | Ethereum, Solana |
| **USDG** | Ethereum |

**Copertura**

| Dettaglio | Valore |
| - | - |
| Valuta di fatturazione | USD |
| Paesi supportati | Globale (esclusa l'India) |
| Abbonamenti | Non supportati (solo pagamenti una tantum) |
| Importo minimo | \$0.50 |
| Regolamento | USD |

**Configurazione**

Passa `crypto_currency` in `allowed_payment_method_types` quando crei una sessione di checkout:

```javascript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
  allowed_payment_method_types: ['crypto_currency', 'credit', 'debit'],
  return_url: 'https://example.com/success'
});
```

Al cliente viene mostrato un indirizzo di portafoglio e un codice QR con l'importo stablecoin calcolato al tasso di cambio in tempo reale; una volta che la blockchain conferma la transazione, il tuo webhook `payment.succeeded` si attiva e il cliente viene reindirizzato alla tua pagina di successo.

> [!NOTE]
>
> I pagamenti stablecoin sono irrevocabili per design — non ci sono rimborsi. Consigliamo sempre di offrire `credit` e `debit` come metodi di riserva per i clienti senza un portafoglio stablecoin.

Per saperne di più: [Pagamenti Stablecoin](https://docs.dodopayments.com/features/payment-methods/stablecoins.md)

### 7. **Importa Chiavi di Licenza Esistenti**

Ora puoi **importare chiavi di licenza da un altro sistema** in Dodo Payments usando la [API Crea Chiave di Licenza](https://docs.dodopayments.com/api-reference/licenses/create-license-key.md). Questo sblocca la migrazione senza interruzioni da qualsiasi fornitore esterno di chiavi di licenza, così i tuoi clienti esistenti possono continuare ad attivare, convalidare e disattivare le loro chiavi contro Dodo Payments senza nuova emissione.

```typescript theme={null}
const licenseKey = await client.licenseKeys.create({
  customer_id: 'cus_abc123',
  product_id: 'pdt_456',
  key: 'YOUR-EXISTING-LICENSE-KEY',
  activations_limit: 5,
  expires_at: '2026-12-31T23:59:59Z',
});
```

Le chiavi importate sono contrassegnate con `source: "import"` (rispetto a `source: "auto"` per le chiavi generate automaticamente al pagamento), in modo da poter distinguere l'inventario migrato dalle chiavi emesse organicamente quando si interroga `GET /license_keys`. Il `payment_id` sulle chiavi importate è `null` perché non sono collegate a una transazione Dodo Payments.

> [!WARNING]
>
> Le chiavi di licenza create o aggiornate tramite l'API non attivano notifiche email ai clienti. Se hai bisogno di notificare i clienti su una chiave importata, gestiscilo separatamente nella tua applicazione.

> [!TIP]
>
> Migrazione da Polar.sh o Lemon Squeezy? La [`dodo-migrate` CLI](https://docs.dodopayments.com/migrate-to-dodo) automatizza le importazioni in massa di prodotti, clienti, sconti e chiavi di licenza in un unico comando.

Per saperne di più: [Chiavi di Licenza](https://docs.dodopayments.com/features/license-keys.md#import-existing-license-keys-via-api) | [API Crea Chiave di Licenza](https://docs.dodopayments.com/api-reference/licenses/create-license-key.md)

### 8. **`require_phone_number` per le sessioni di checkout**

Obbliga i clienti a fornire un numero di telefono durante il checkout impostando `feature_flags.require_phone_number: true` quando crei una sessione di checkout. Il numero di telefono diventa un campo obbligatorio nel modulo di checkout, con la convalida del modulo che mostra "Il numero di telefono è obbligatorio" se il cliente lo lascia vuoto.

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'pdt_abc', quantity: 1 }],
  feature_flags: {
    allow_phone_number_collection: true,
    require_phone_number: true
  },
  return_url: 'https://yoursite.com/return'
});
```

| Flag | Predefinito | Comportamento |
| - | - | - |
| `allow_phone_number_collection` | `true` | Mostra il campo del numero di telefono al checkout |
| `require_phone_number` | `false` | Rende obbligatorio il campo del numero di telefono |

> [!WARNING]
>
> `require_phone_number: true` richiede `allow_phone_number_collection: true`. L'API rifiuta le sessioni in cui `require_phone_number` è vero mentre la raccolta del telefono è disabilitata.

> [!TIP]
>
> Utile per SaaS B2B, industrie regolamentate o qualsiasi flusso in cui hai bisogno di un canale di contatto verificato per supporto, revisione delle frodi o conformità.

Per saperne di più: [Funzionalità di checkout](https://docs.dodopayments.com/features/checkout.md) | [API Crea sessione di checkout](https://docs.dodopayments.com/api-reference/checkout-sessions/create.md)

## Correzioni di bug e miglioramenti

* Correzioni di bug minori e miglioramenti di stabilità in tutta la piattaforma


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