> ## 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 décembre 2025)

> Prise en charge d’Inline Checkout, utilisation des méthodes de paiement existantes pour des checkouts instantanés, gestion des plans d’abonnement depuis le dashboard, génération de liens de paiement courts, omission des pages de succès avec redirect_immediately et activation des abonnements à la demande pour toutes les entreprises

## Nouvelles fonctionnalités 🚀

1. **Inline Checkout - Expériences de checkout entièrement intégrées (BETA)**

   Intégrez le checkout Dodo Payments directement à votre site pour une expérience de paiement fluide et personnalisée à votre marque. Contrairement à l’overlay checkout, qui s’ouvre sous forme de fenêtre modale, Inline Checkout intègre directement le formulaire de paiement à la mise en page de votre site.

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

   ### Avantages

   * **Entièrement intégré** : créez des expériences de checkout qui s’intègrent parfaitement à votre site
   * **Récapitulatifs de commande personnalisés** : créez une interface personnalisée synchronisée avec le checkout en temps réel
   * **Contrôle maximal** : contrôlez entièrement la mise en page et le design du checkout
   * **Conforme PCI** : Dodo Payments gère de manière sécurisée toutes les informations de paiement sensibles
   * **Synchronisation en temps réel** : utilisez les événements du SDK pour maintenir votre interface synchronisée avec l’état du checkout

   ### Fonctionnement

   Initialisez le SDK avec `displayType: 'inline'` et intégrez le checkout dans un élément conteneur :

   ```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
   });
   ```

   ### Fonctionnalités clés

   * **Événements de détail en temps réel** : recevez les événements `checkout.breakdown` lorsque les clients saisissent leurs informations
   * **Récapitulatifs de commande personnalisés** : créez votre propre affichage des prix, mis à jour en temps réel
   * **Intégration fluide** : le cadre de checkout gère la collecte du paiement tandis que vous contrôlez la mise en page
   * **Méthodes du SDK** : utilisez `open()`, `close()` et `isOpen()` pour contrôler le checkout par programmation

   <Check>
     Résultat : des expériences de checkout entièrement intégrées, adaptées à votre marque et offrant un contrôle maximal du parcours de paiement.
   </Check>

   <Tip>
     Utilisez Inline Checkout lorsque vous souhaitez contrôler au maximum le design du checkout. Utilisez [overlay checkout](/developer-resources/overlay-checkout) pour une intégration plus rapide avec un minimum de modifications des pages existantes.
   </Tip>

   En savoir plus : [Guide Inline Checkout](/developer-resources/inline-checkout)

2. **Créer des paiements, des abonnements et des checkouts avec des méthodes de paiement existantes**\
   Simplifiez les parcours de checkout en utilisant les méthodes de paiement enregistrées de clients existants. Le nouveau paramètre `payment_method_id` vous permet de créer des paiements, des abonnements ou des sessions de checkout avec la méthode de paiement précédemment enregistrée d’un client.

   ### Avantages

   * **Checkout plus rapide** : ignorez la collecte de la méthode de paiement pour les clients récurrents
   * **Achats en un clic** : activez les achats instantanés avec les méthodes de paiement enregistrées
   * **Gestion des abonnements** : créez facilement des abonnements avec des méthodes de paiement existantes
   * **Meilleur taux de conversion** : réduisez les obstacles lors du checkout pour les clients récurrents

   ### Fonctionnement

   Utilisez `payment_method_id` lors de la création de sessions de checkout, de paiements ou d’abonnements :

   <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>
     Lors de l’utilisation de `payment_method_id` dans les sessions de checkout, `confirm` doit être défini sur `true`, et un `customer_id` existant doit être fourni. L’éligibilité de la méthode de paiement sera validée selon la devise du paiement.
   </Warning>

   <Info>
     La méthode de paiement doit appartenir au client et être compatible avec la devise du paiement. Si la validation échoue, la requête renverra une erreur.
   </Info>

3. **Modification des plans d’abonnement dans le dashboard avec mise à jour de la prochaine date de facturation**

   Gérez directement les plans d’abonnement depuis le dashboard avec un contrôle renforcé. Vous pouvez désormais modifier les plans d’abonnement et mettre à jour la prochaine date de facturation en une seule action, ce qui vous offre une flexibilité totale pour la gestion des abonnements.

   <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="Subscription plan changes in dashboard" style={{ maxHeight: '500px', width: 'auto' }} width="1909" height="962" data-path="images/changelog/subscription-plan-changes.png" />
   </Frame>

   ### Fonctionnalités du dashboard

   * **Modification des plans** : augmentez ou réduisez le niveau des abonnements en un seul clic
   * **Contrôle de la date de facturation** : mettez à jour la prochaine date de facturation lors de la modification des plans
   * **Options de proratisation** : choisissez la manière de gérer la proratisation lors de la modification des plans
   * **Aperçu visuel** : voyez exactement comment les modifications de plan affectent la facturation avant de confirmer

   ### Cas d’utilisation

   * **Assistance client** : ajustez rapidement les plans d’abonnement selon les demandes des clients
   * **Mises à niveau promotionnelles** : mettez temporairement les clients à niveau avec des dates de facturation spécifiques
   * **Migration de plans** : faites passer facilement les clients d’un niveau d’abonnement à un autre
   * **Alignement de la facturation** : alignez les dates de facturation de plusieurs abonnements

   <Check>
     Résultat : un contrôle complet de la gestion des abonnements depuis le dashboard, réduisant le besoin d’appels API pour les ajustements courants des abonnements.
   </Check>

   <Tip>
     Utilisez le dashboard pour modifier rapidement les plans d’abonnement, et l’API pour gérer les abonnements par programmation dans votre application.
   </Tip>

4. **Liens courts pour les URLs de paiement**\
   Générez des liens de paiement plus propres et plus faciles à partager grâce à notre nouvelle fonctionnalité de liens courts. Les liens courts fournissent des URLs de checkout raccourcies avec des slugs personnalisés, ce qui facilite leur partage avec les clients ou leur intégration à votre site.

   <Frame>
     <img src="https://mintcdn.com/dodopayments/vqwKWj9TjLp0w5lS/images/changelog/short-links.png?fit=max&auto=format&n=vqwKWj9TjLp0w5lS&q=85&s=c5361cb37520128513ed5e3b1111fbb1" alt="Short links feature for payment URLs" style={{ maxHeight: '500px', width: 'auto' }} width="1915" height="962" data-path="images/changelog/short-links.png" />
   </Frame>

   ### Avantages

   * **URLs plus propres** : remplacez les longues URLs de paiement par des liens courts personnalisés à votre marque
   * **Confiance renforcée** : des liens professionnels qui inspirent confiance aux clients
   * **Partage facilité** : des URLs simplifiées, idéales pour les SMS, les e-mails ou les réseaux sociaux
   * **Slugs personnalisés** : créez des liens courts mémorables et personnalisés à votre marque pour vos produits

   ### Fonctionnement

   Activez les liens courts lors de la création de sessions de checkout ou de liens de paiement :

   <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>
     Résultat : un lien de paiement raccourci, plus facile à partager et plus professionnel, améliorant les taux de conversion et la confiance des clients.
   </Check>

   <Info>
     Les liens courts sont gérés dans votre dashboard et peuvent être consultés via l’[API List Short Links](/api-reference/products/get-products-short-links).
   </Info>

5. **Indicateur `redirect_immediately` - Ignorer la page de succès du paiement**\
   Contrôlez le parcours de checkout avec le nouvel indicateur `redirect_immediately`. Lorsqu’il est activé, les clients sont redirigés immédiatement après la finalisation du paiement, ce qui permet d’ignorer la page de succès par défaut pour une expérience plus rapide et plus fluide.

   ### Cas d’utilisation

   * **Parcours de checkout plus rapide** : réduisez les obstacles en ignorant les pages intermédiaires
   * **Pages de succès personnalisées** : redirigez directement vers votre page de succès personnalisée à votre marque
   * **Optimisation mobile** : améliorez l’expérience de checkout mobile grâce aux redirections immédiates
   * **Checkouts intégrés** : intégrez facilement les parcours de checkout overlay ou intégrés

   ### Fonctionnement

   Activez les redirections immédiates dans les sessions de checkout, les paiements ou les abonnements :

<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>
  Utilisez `redirect_immediately: true` lorsque vous disposez d’une page de succès personnalisée offrant une meilleure expérience utilisateur que la page de succès du paiement par défaut.
</Tip>

<Note>
  Lorsque `redirect_immediately` est activé, les clients sont redirigés vers votre `return_url` immédiatement après la finalisation du paiement, en ignorant entièrement la page de succès par défaut.
</Note>

6. **Abonnements à la demande - disponibles pour toutes les entreprises**\
   Les abonnements à la demande sont désormais activés pour toutes les entreprises, vous offrant un contrôle flexible de la facturation pour les services basés sur l’utilisation et les services avec métrage.

   ### Ce que cela permet

   * **Facturation basée sur l’utilisation** : créez des abonnements et facturez les clients selon leur utilisation réelle
   * **Cycles de facturation flexibles** : facturez les clients à la demande plutôt qu’à intervalles fixes
   * **Services avec métrage** : idéal pour l’utilisation d’API, le stockage, le temps de calcul et les autres ressources mesurées
   * **Contrôle manuel des prélèvements** : créez manuellement des prélèvements lorsque nécessaire et contrôlez entièrement le moment de la facturation

   ### Fonctionnement

   Créez un abonnement à la demande et facturez les clients selon vos besoins :

   ```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>
     Résultat : contrôlez entièrement le moment et le montant facturé aux clients, idéal pour les modèles économiques basés sur l’utilisation.
   </Check>

   En savoir plus : [Abonnements à la demande](/developer-resources/ondemand-subscriptions)

7. **Correctifs généraux et améliorations**\
   Cette version inclut des améliorations des performances, des finitions de l’interface utilisateur et la résolution de bugs mineurs pour une expérience plus fiable et plus fluide.
