> ## 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.70.0 (24 dicembre 2025)

> Supporto per il checkout inline, utilizza metodi di pagamento esistenti per checkout istantanei, gestisci i piani di abbonamento dalla dashboard, genera link di pagamento brevi, salta le pagine di successo con redirect_immediately e abilita abbonamenti on-demand per tutte le aziende

## Nuove Funzionalità 🚀

1. **Checkout Inline - Esperienze di Checkout Completamente Incorporate (BETA)**

   Incorpora il checkout di Dodo Payments direttamente nel tuo sito web per un'esperienza di pagamento senza soluzione di continuità e con branding. A differenza del checkout a sovrapposizione che si apre come un modale, il checkout inline incorpora il modulo di pagamento direttamente nel layout della tua pagina.

   <Frame>
     <img src="https://mintcdn.com/dodopayments/HpxJAc8zNlxzewa_/images/inline-checkout/cover.png?fit=max&auto=format&n=HpxJAc8zNlxzewa_&q=85&s=99c1a92ef01680248a421d3f057b02cd" alt="Immagine di copertina del pagamento inline" style={{ maxHeight: '500px', width: 'auto' }} width="839" height="565" data-path="images/inline-checkout/cover.png" />
   </Frame>

   ### Vantaggi

   * **Completamente integrato**: Crea esperienze di checkout che si fondono perfettamente con il tuo sito web
   * **Riepiloghi d'ordine personalizzati**: Costruisci un'interfaccia utente personalizzata che si sincronizza con il checkout in tempo reale
   * **Massimo controllo**: Controllo totale sul layout e sul design del checkout
   * **Conformità PCI**: Dodo Payments gestisce in modo sicuro tutte le informazioni di pagamento sensibili
   * **Sincronizzazione in tempo reale**: Usa eventi SDK per mantenere la tua UI sincronizzata con lo stato del checkout

   ### Come Funziona

   Inizializza l'SDK con `displayType: 'inline'` e incorpora il checkout in un elemento contenitore:

   ```typescript theme={null}
   import { DodoPayments } from "dodopayments-checkout";

   // Initialize the SDK for inline mode
   DodoPayments.Initialize({
     mode: "test",
     displayType: "inline",
     onEvent: (event) => {
       if (event.event_type === "checkout.breakdown") {
         // Update your UI with real-time tax and total calculations
         const breakdown = event.data?.message;
       }
     },
   });

   // Open checkout in a specific container
   DodoPayments.Checkout.open({
     checkoutUrl: "https://test.checkout.dodopayments.com/session/cks_123",
     elementId: "dodo-inline-checkout" // ID of the container element
   });
   ```

   ### Caratteristiche Chiave

   * **Eventi di dettaglio in tempo reale**: Ricevi `checkout.breakdown` eventi mentre i clienti inseriscono i loro dati
   * **Riepiloghi personalizzati dell'ordine**: Crea la tua visualizzazione dei prezzi che si aggiorna in tempo reale
   * **Integrazione perfetta**: Il frame di checkout gestisce la raccolta dei pagamenti mentre tu controlli il layout
   * **Metodi dell'SDK**: Usa `open()`, `close()` e `isOpen()` per controllare il checkout programmaticamente

   <Check>
     Risultato: esperienze di checkout completamente integrate che rispecchiano il tuo brand e offrono il massimo controllo sul flusso di pagamento.
   </Check>

   <Tip>
     Usa il checkout inline quando desideri il massimo controllo sul design del checkout. Usa [overlay checkout](/developer-resources/overlay-checkout) per un'integrazione più rapida con modifiche minime alle pagine esistenti.
   </Tip>

   Scopri di più: [Guida al Checkout Inline](/developer-resources/inline-checkout)

2. **Crea pagamenti, abbonamenti e checkout utilizzando metodi di pagamento esistenti**\
   Snellisci i flussi di checkout sfruttando i metodi di pagamento salvati dei clienti esistenti. Il nuovo parametro `payment_method_id` ti consente di creare pagamenti, abbonamenti o sessioni di checkout usando il metodo di pagamento precedentemente salvato dal cliente.

   ### Vantaggi

   * **Checkout più veloce**: Salta la raccolta del metodo di pagamento per i clienti di ritorno
   * **Acquisti con un clic**: Abilita acquisti istantanei con metodi di pagamento salvati
   * **Gestione degli abbonamenti**: Crea facilmente abbonamenti utilizzando metodi di pagamento esistenti
   * **Miglioramento della conversione**: Riduci l'attrito del checkout per i clienti abituali

   ### Come Funziona

   Usa `payment_method_id` quando crei sessioni di checkout, pagamenti o abbonamenti:

   <Tabs>
     <Tab title="Checkout Sessions">
       ```javascript theme={null}
       const session = await client.checkoutSessions.create({
         product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
         customer: {
           customer_id: 'cus_123'
         },
         payment_method_id: 'pm_abc123',
         confirm: true
       });
       ```
     </Tab>

     <Tab title="One-Time Payments">
       ```javascript theme={null}
       const payment = await client.payments.create({
         product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
         customer: { customer_id: 'cus_123' },
         billing: { country: 'US' },
         payment_method_id: 'pm_abc123'
       });
       ```
     </Tab>

     <Tab title="Subscriptions">
       ```javascript theme={null}
       const subscription = await client.subscriptions.create({
         customer: { customer_id: 'cus_123' },
         billing: { country: 'US' },
         product_id: 'pdt_subscription',
         quantity: 1,
         payment_method_id: 'pm_abc123'
       });
       ```
     </Tab>
   </Tabs>

   <Warning>
     Quando usi `payment_method_id` nelle sessioni di checkout, `confirm` deve essere impostato su `true`, e deve essere fornito un esistente `customer_id`. Il metodo di pagamento verrà convalidato per verificarne l'idoneità rispetto alla valuta del pagamento.
   </Warning>

   <Info>
     Il metodo di pagamento deve appartenere al cliente e essere compatibile con la valuta del pagamento. Se la convalida fallisce, la richiesta restituirà un errore.
   </Info>

3. **Modifiche ai Piani di Abbonamento nella Dashboard con Aggiornamenti della Prossima Data di Fatturazione**

   Gestisci i piani di abbonamento direttamente dalla dashboard con un controllo migliorato. Ora puoi cambiare i piani di abbonamento e aggiornare la prossima data di fatturazione in un'unica azione, offrendoti completa flessibilità nella gestione degli abbonamenti.

   <Frame>
     <img src="https://mintcdn.com/dodopayments/vqwKWj9TjLp0w5lS/images/changelog/subscription-plan-changes.png?fit=max&auto=format&n=vqwKWj9TjLp0w5lS&q=85&s=23d2cf888e9d70316e3a110c10bb77c6" alt="Modifiche al piano di abbonamento nel dashboard" style={{ maxHeight: '500px', width: 'auto' }} width="1909" height="962" data-path="images/changelog/subscription-plan-changes.png" />
   </Frame>

   ### Caratteristiche della Dashboard

   * **Modifiche ai piani**: Aggiorna o riduci gli abbonamenti con un solo clic
   * **Controllo della data di fatturazione**: Aggiorna la prossima data di fatturazione quando cambi piano
   * **Opzioni di proration**: Scegli come gestire la proration quando cambi piano
   * **Anteprima visiva**: Vedi esattamente come le modifiche ai piani influenzano la fatturazione prima di confermare

   ### Casi d'Uso

   * **Supporto clienti**: Regola rapidamente i piani di abbonamento per le richieste dei clienti
   * **Aggiornamenti promozionali**: Aggiorna temporaneamente i clienti con date di fatturazione specifiche
   * **Migrazioni di piano**: Transizioni fluide dei clienti tra i livelli di abbonamento
   * **Allineamento della fatturazione**: Allinea le date di fatturazione su più abbonamenti

   <Check>
     Risultato: controllo completo sulla gestione degli abbonamenti direttamente dal dashboard, riducendo la necessità di chiamate API per aggiustamenti comuni degli abbonamenti.
   </Check>

   <Tip>
     Usa il dashboard per rapide modifiche al piano di abbonamento e l'API per la gestione programmatica degli abbonamenti nella tua applicazione.
   </Tip>

4. **Link Brevi per URL di Pagamento**\
   Genera link di pagamento più puliti e condivisibili con la nostra nuova funzionalità di link brevi. I link brevi forniscono URL di checkout accorciati con slug personalizzati, rendendoli più facili da condividere con i clienti o incorporare nel tuo sito web.

   <Frame>
     <img src="https://mintcdn.com/dodopayments/vqwKWj9TjLp0w5lS/images/changelog/short-links.png?fit=max&auto=format&n=vqwKWj9TjLp0w5lS&q=85&s=c5361cb37520128513ed5e3b1111fbb1" alt="Funzionalità di collegamenti brevi per URL di pagamento" style={{ maxHeight: '500px', width: 'auto' }} width="1915" height="962" data-path="images/changelog/short-links.png" />
   </Frame>

   ### Vantaggi

   * **URL più puliti**: Sostituisci i lunghi URL di pagamento con link brevi e brandizzati
   * **Maggiore fiducia**: Link dall'aspetto professionale che aumentano la fiducia dei clienti
   * **Condivisione più facile**: URL semplificati perfetti per SMS, email o social media
   * **Slug personalizzati**: Crea link brevi memorabili e brandizzati per i tuoi prodotti

   ### Come Funziona

   Abilita i link brevi quando crei sessioni di checkout o link di pagamento:

   <Tabs>
     <Tab title="Checkout Sessions">
       ```javascript theme={null}
       const session = await client.checkoutSessions.create({
         product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
         short_link: true,
         return_url: 'https://yourapp.com/success'
       });
       ```
     </Tab>

     <Tab title="Payment Links">
       ```javascript theme={null}
       const payment = await client.payments.create({
         product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
         short_link: true,
         return_url: 'https://yourapp.com/success'
       });
       ```
     </Tab>
   </Tabs>

   <Check>
     Risultato: un link di pagamento accorciato, più semplice da condividere e dall'aspetto più professionale, migliorando i tassi di conversione e la fiducia dei clienti.
   </Check>

   <Info>
     I link brevi sono gestiti nel tuo dashboard e possono essere visualizzati tramite la [List Short Links API](/api-reference/products/get-products-short-links).
   </Info>

5. **Flag `redirect_immediately` - Salta la pagina di successo del pagamento**\
   Controlla il flusso di checkout con il nuovo flag `redirect_immediately`. Una volta abilitato, i clienti vengono reindirizzati immediatamente dopo il completamento del pagamento, saltando la pagina di successo predefinita per un'esperienza più rapida e fluida.

   ### Casi d'Uso

   * **Flusso di checkout più veloce**: Riduci l'attrito saltando le pagine intermedie
   * **Pagine di successo personalizzate**: Reindirizza direttamente alla tua pagina di successo brandizzata
   * **Ottimizzazione mobile**: Migliora l'esperienza di checkout mobile con reindirizzamenti immediati
   * **Checkout incorporati**: Integra senza soluzione di continuità con flussi di checkout a sovrapposizione o incorporati

   ### Come Funziona

   Abilita reindirizzamenti immediati nelle sessioni di checkout, pagamenti o abbonamenti:

<Tabs>
  <Tab title="Checkout Sessions">
    ```javascript theme={null}
    const session = await client.checkoutSessions.create({
      product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
      feature_flags: {
        redirect_immediately: true
      },
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Tab>

  <Tab title="One-Time Payments">
    ```javascript theme={null}
    const payment = await client.payments.create({
      product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
      redirect_immediately: true,
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Tab>

  <Tab title="Subscriptions">
    ```javascript theme={null}
    const subscription = await client.subscriptions.create({
      customer: { customer_id: 'cus_123' },
      billing: { country: 'US' },
      product_id: 'pdt_subscription',
      quantity: 1,
      redirect_immediately: true,
      return_url: 'https://yourapp.com/success'
    });
    ```
  </Tab>
</Tabs>

<Tip>
  Usa `redirect_immediately: true` quando hai una pagina di successo personalizzata che offre un'esperienza utente migliore rispetto alla pagina di successo di pagamento predefinita.
</Tip>

<Note>
  Quando `redirect_immediately` è abilitato, i clienti vengono reindirizzati al tuo `return_url` immediatamente dopo il completamento del pagamento, saltando completamente la pagina di successo predefinita.
</Note>

6. **Abbonamenti On-Demand - Disponibili per Tutte le Aziende**\
   Gli abbonamenti on-demand sono ora abilitati per tutte le aziende, offrendoti un controllo di fatturazione flessibile per servizi basati su utilizzo e misurati.

   ### Cosa Abilita Questo

   * **Fatturazione basata su utilizzo**: Crea abbonamenti e addebita i clienti in base all'utilizzo effettivo
   * **Cicli di fatturazione flessibili**: Addebita i clienti su richiesta piuttosto che a intervalli fissi
   * **Servizi misurati**: Perfetto per utilizzo API, archiviazione, tempo di calcolo e altre risorse misurate
   * **Controllo manuale degli addebiti**: Crea addebiti manualmente quando necessario, offrendoti il pieno controllo sul momento della fatturazione

   ### Come Funziona

   Crea un abbonamento on-demand e addebita i clienti secondo necessità:

   ```javascript theme={null}
   // Create an on-demand subscription
   const subscription = await client.subscriptions.create({
     customer: { customer_id: 'cus_123' },
     billing: { country: 'US' },
     product_id: 'pdt_api_access',
     quantity: 1,
     on_demand: { mandate_only: true }
   });

   // Charge the customer when usage occurs
   await client.subscriptions.charge(subscription.subscription_id, {
     product_price: 4900,
     product_currency: 'USD',
     product_description: 'API usage for September: 1,000 requests'
   });
   ```

   <Check>
     Risultato: pieno controllo su quando e quanto addebitare ai clienti, perfetto per modelli di business basati sull'utilizzo.
   </Check>

   Scopri di più: [Abbonamenti On-Demand](/developer-resources/ondemand-subscriptions)

7. **Correzioni di Bug Generali e Miglioramenti**\
   Questa versione include miglioramenti delle prestazioni, rifiniture dell'interfaccia utente e risolve bug minori per un'esperienza più affidabile e semplificata.
