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 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 valeurcheckout_url renvoyée.
Créer une session de paiement
- Node.js SDK
- Python SDK
- cURL
Rediriger vers le paiement
Après avoir créé une session, redirigez le client vers la valeurcheckout_url :
Payment Links
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ètresession, 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 :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.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’indicateurdisable... correspondant sur true :
Exemple de lien de paiement statique
Liens de paiement dynamiques (obsolètes)
Pour les intégrations existantes qui utilisent des liens de paiement dynamiques, transmettezpayment_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.
- Node.js SDK
- Python SDK
- Go SDK
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’environnementDODO_PAYMENTS_WEBHOOK_KEY.
Voici un exemple utilisant Next.js :
app/api/webhooks/dodo/route.ts
Événements à écouter
Dans un flux de paiement ponctuel, écoutez au minimum les événements suivants :
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, transmettezbilling_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 valeurpayment_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.