Skip to main content

Checkout Sessions

Créez une page de paiement sécurisée et hébergée pour les paiements ponctuels et les abonnements.

Payment Links

Partagez une URL pour collecter des paiements sans code.

Webhooks

Écoutez les événements de paiement et traitez les commandes.

API Reference

Documentation complète des endpoints et tests en direct.

Prérequis

Avant de commencer, vous avez besoin des éléments suivants :
  • Un compte Dodo Payments.
  • Au moins un produit. Créez-le dans Products depuis le tableau de bord. Un produit d’abonnement dont le prix est différent de zéro doit être proposé à 1 ouplus,ouaˋl’eˊquivalentdanssadevise.Lesabonnementsaˋ0ou plus, ou à l’équivalent dans sa devise. Les abonnements à 0 sont également pris en charge.
  • Une clé API. Créez-la dans Developer → API Keys et stockez-la dans la variable d’environnement DODO_PAYMENTS_API_KEY. Créez la clé en mode test pendant le développement : les exemples de cette page utilisent le mode test, et une clé de mode test fonctionne uniquement avec le mode test. Consultez Authentication.

Choisir un parcours d’intégration

Overlay checkout et inline checkout fonctionnent uniquement dans une page web. Dans une application mobile native, créez la session de paiement sur votre serveur et ouvrez sa valeur checkout_url avec un SDK de paiement mobile. Pour qu’un agent de programmation crée cette intégration pour vous, installez le Agent Plugin.

Checkout Sessions

Créez une expérience de paiement sécurisée et hébergée. Vous créez une session sur votre serveur, puis redirigez le client vers la valeur checkout_url renvoyée.
Chaque valeur checkout_url fonctionne une seule fois et expire après 24 heures, ou après 15 minutes lorsque vous transmettez confirm: true. Avec confirm: true, vous devez également fournir chaque champ obligatoire. Créez une nouvelle session pour chaque client et chaque tentative de paiement.

Créer une session de paiement

Rediriger vers le paiement

Après avoir créé une session, redirigez le client vers la valeur checkout_url :
Pour une personnalisation avancée, consultez le guide complet Checkout Sessions et l’API Reference.
Un lien de paiement est une URL qui ouvre la page de paiement pour un produit, ce qui vous permet de collecter des paiements sans écrire de code. Les paramètres de requête préremplissent les informations du client et contrôlent le formulaire de paiement. Lorsqu’un client ouvre le lien, le paiement stocke les paramètres dans une session et raccourcit l’URL en un paramètre session, afin qu’un actualisation de la page les conserve.

Liens de paiement statiques

Un lien de paiement statique est une URL que vous créez une fois et partagez plusieurs fois. L’URL de base est la suivante :
Ajoutez des paramètres de requête pour personnaliser le paiement :
integer
défaut:"1"
Nombre d’articles à acheter.
string
requis
Les liens de paiement utilisent redirect_url. L’API Checkout Sessions utilise return_url dans le même but.URL vers laquelle rediriger après le paiement. Dodo Payments ajoute les détails du paiement en tant que paramètres de requête, par exemple https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.com. Si le produit fournit des clés de licence, un paramètre license_key est également ajouté, avec plusieurs clés séparées par des virgules.
string
Spécifie la devise du paiement. Par défaut, il s’agit de la devise du pays de facturation.
boolean
défaut:"true"
Affiche ou masque le sélecteur de devise.
boolean
défaut:"true"
Affiche ou masque la section des remises. Définissez cette valeur sur false pour empêcher les clients de saisir des codes promotionnels.
number
Fixe le montant facturé, dans les unités monétaires principales, par exemple 12.5 pour 12,50 $. Fonctionne uniquement avec les produits Pay What You Want et est ignoré s’il est inférieur au prix minimal du produit.
paymentAmount utilise les unités monétaires principales (12.5 correspond à 12,50 ).Lechamp‘productcart[].amount‘del’APICheckoutSessionsutiliselapluspetiteuniteˊmoneˊtaire(‘1250‘correspondaˋ12,50). Le champ `product_cart[].amount` de l’API Checkout Sessions utilise la plus petite unité monétaire (`1250` correspond à 12,50 ). Consultez Dynamic Pricing.
string
Champs de métadonnées personnalisés, par exemple metadata_orderId=123.

Préremplir les informations du client

Ajoutez les champs du client en tant que paramètres de requête pour simplifier le paiement :
string
Nom complet du client (ignoré si firstName ou lastName est fourni).
string
Prénom du client.
string
Nom de famille du client.
string
Adresse e-mail du client.
string
Pays du client (code ISO 3166-1 alpha-2).
string
Adresse postale.
string
Ville.
string
État ou province.
string
Code postal ou ZIP.

Désactiver les champs du formulaire

Pour empêcher les clients de modifier les informations préremplies, désactivez un champ en fournissant sa valeur et en définissant l’indicateur disable... correspondant sur true :

Exemple de lien de paiement statique

La désactivation des champs empêche les modifications accidentelles et garantit la cohérence des données.

Liens de paiement dynamiques (obsolètes)

Les endpoints POST /payments et POST /subscriptions sont obsolètes. Pour les nouvelles intégrations, utilisez plutôt Checkout Sessions.
Pour les intégrations existantes qui utilisent des liens de paiement dynamiques, transmettez payment_link: true à Create One-Time Payment ou Create Subscription pour créer un lien. Les exemples ci-dessous créent un lien de paiement ponctuel. Pour les abonnements, consultez le Subscription Integration Guide.

Webhooks

Les webhooks indiquent à votre serveur qu’un paiement a réussi ou échoué, afin que vous puissiez traiter la commande.

Créer un endpoint webhook

Accédez à Developer → Webhooks dans le tableau de bord et ajoutez l’URL de votre endpoint. Copiez le secret de signature de l’endpoint dans la variable d’environnement DODO_PAYMENTS_WEBHOOK_KEY. Voici un exemple utilisant Next.js :
app/api/webhooks/dodo/route.ts
Notre implémentation des webhooks suit la spécification Standard Webhooks.

Événements à écouter

Dans un flux de paiement ponctuel, écoutez au minimum les événements suivants :
Traitez toujours la commande lors de la réception de payment.succeeded depuis le webhook, et non lors de la redirection du navigateur. La redirection peut ne pas être reçue si le client ferme l’onglet, tandis que le webhook est réessayé jusqu’à réception d’un accusé.
Si vous vendez des produits avec des clés de licence, gérez également license_key.created. Pour obtenir la liste complète des événements, notamment ceux liés aux abonnements, aux droits, aux crédits, à la récupération et aux relances de paiement, consultez le Webhook Event Guide. Pour obtenir un exemple complet avec Next.js et TypeScript, consultez le dépôt de démonstration et son déploiement en direct.

Devise et adresse de facturation

Pour facturer dans une devise précise, transmettez billing_currency et billing_address.country lors de la création de la session de paiement. Si vous les omettez, Adaptive Currency sélectionne la devise et le pays à partir de l’adresse IP du client, qui peuvent ne pas correspondre à la devise dans laquelle vous souhaitez facturer. Les montants Pay What You Want sont exprimés dans la devise de base du produit, qui doit être USD, GBP ou EUR. Pour collecter un montant fixe dans une autre devise, utilisez Adaptive Currency, qui convertit votre prix de base selon les taux de change actuels, ou Localized Pricing, qui définit un prix fixe pour chaque devise. Localized Pricing ne fonctionne pas avec Pay What You Want.

Achat récurrent en un clic

Pour facturer un client existant avec un moyen de paiement enregistré, transmettez sa valeur payment_method_id avec confirm: true. payment_method_id est accepté uniquement lorsque confirm vaut true, et vous devez également transmettre la valeur customer_id du client existant. Comme confirm vaut true, vous devez également transmettre une valeur billing_address complète. La session débite directement le moyen de paiement enregistré et ne renvoie donc aucune valeur checkout_url. Utilisez les webhooks pour savoir si le paiement a réussi.

Pages associées

Checkout Sessions

Guide complet avec des options de personnalisation avancées.

Overlay Checkout

Intégrez le paiement sous forme de fenêtre modale sur votre page.

Inline Checkout

Intégrez directement le paiement dans la mise en page de votre page.

Subscription Integration

Configurez la facturation récurrente.

Webhook Event Guide

Liste complète de tous les événements webhook.

API Reference

Documentation de l’API Checkout Sessions.
Dernière modification le 26 septembre 2026