> ## 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.81.0 (6 febbraio 2026)

> Analisi di terze parti, personalizzazione tema checkout, impedire cambio piano su errore di pagamento e API ledger del saldo

## Nuove funzionalità

### 1. **Supporto per Analisi di Terze Parti**

Monitora il comportamento dei clienti su Storefront, Checkout e Customer Portal con Google Analytics 4, Google Tag Manager e Meta Pixel. Aggiungi i tuoi ID di tracciamento in **Impostazioni → Analisi** per iniziare a raccogliere eventi e-commerce.

**Piattaforme supportate**

| Platform           | ID Format              |
| ------------------ | ---------------------- |
| Google Analytics 4 | `G-XXXXXXXXXX`         |
| Google Tag Manager | `GTM-XXXXXXX`          |
| Meta Pixel         | Numeric (10-20 digits) |

**Eventi tracciati**

Eventi come `purchase`, `add_payment_info`, `view_item` e `view_item_list` vengono inviati automaticamente alle tue piattaforme di analisi mentre i clienti navigano e completano gli acquisti.

<Check>
  Supportato su Storefront, Checkout ospitato, Checkout overlay/inline e Customer Portal.
</Check>

Per saperne di più: [Third-Party Analytics](/features/analytics)

### 2. **Personalizzazione del Tema del Checkout**

Personalizza l’aspetto del checkout tramite il parametro `customization.theme_config` quando crei le sessioni di checkout. Configura colori, font, raggio dei bordi e testo dei pulsanti per modalità chiara e scura.

**Opzioni di configurazione**

| Property           | Description                            |
| ------------------ | -------------------------------------- |
| `light` / `dark`   | Schemi di colori per ciascuna modalità |
| `font_primary_url` | URL del font personalizzato            |
| `font_size`        | `xs`, `sm`, `md`, `lg`, `xl`, `2xl`    |
| `radius`           | Raggio dei bordi (es. `8px`)           |
| `pay_button_text`  | Testo personalizzato del pulsante      |

```typescript theme={null}
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'pdt_123', quantity: 1 }],
  customization: {
    theme_config: {
      radius: '8px',
      pay_button_text: 'Complete Purchase',
      light: { button_primary: '#0066ff', text_primary: '#1a1a1a' },
      dark: { button_primary: '#3385ff', text_primary: '#ffffff' }
    }
  },
  return_url: 'https://yoursite.com/return'
});
```

Per saperne di più: [Checkout Theme Customization](/features/checkout#checkout-theme-customization)

### 3. **Impedire il Cambio Piano in Caso di Errore di Pagamento**

Il nuovo parametro `on_payment_failure` per i cambi piano di abbonamento controlla il comportamento quando il pagamento fallisce.

| Mode             | Behavior                                                                                |
| ---------------- | --------------------------------------------------------------------------------------- |
| `prevent_change` | Mantieni l’abbonamento sul piano corrente fino al successo del pagamento                |
| `apply_change`   | Applica subito il cambio piano indipendentemente dall’esito del pagamento (predefinito) |

```typescript theme={null}
await client.subscriptions.changePlan('sub_123', {
  product_id: 'pdt_pro',
  quantity: 1,
  proration_billing_mode: 'prorated_immediately',
  on_payment_failure: 'prevent_change'
});
```

<Tip>
  Usa `prevent_change` per aggiornamenti critici in cui vuoi assicurarti del pagamento prima di concedere l’accesso a funzionalità premium.
</Tip>

Per saperne di più: [Handling Payment Failures](/developer-resources/subscription-upgrade-downgrade#handling-payment-failures)

## Aggiornamenti API

### API del Ledger del Saldo

Nuovo endpoint `GET /balances/ledger` per recuperare le voci del ledger del tuo account con filtraggio e paginazione.

| Parameter                           | Description                                               |
| ----------------------------------- | --------------------------------------------------------- |
| `created_at_gte` / `created_at_lte` | Filtra per intervallo di date                             |
| `event_type`                        | Filtra per `payment`, `refund`, `dispute`, `payout`, ecc. |
| `currency`                          | Filtra per codice valuta                                  |
| `reference_object_id`               | Filtra per ID specifico di pagamento/rimborso/disputa     |

Per saperne di più: [Balance Ledger API](/api-reference/balance-ledger/list-ledger-entries)

### Risposta di Pagamento: `refund_status`

Aggiunto il campo `refund_status` alla risposta `GET /payments/{payment_id}` per verificare rapidamente se un pagamento è stato rimborsato senza interrogare separatamente l'endpoint dei rimborsi.
