One-Time
Subscriptions
Usage-Based
Créer un produit
Créez des produits depuis le tableau de bord ou via l’API. Choisissez le modèle tarifaire en amont — One-Time, Subscription ou Usage-Based — puis configurez les détails. Le modèle tarifaire est immuable ; créez un nouveau produit si vous avez besoin d’un autre modèle.1
Name and Description
Indiquez un titre clair et une description concise axée sur la valeur. Le Markdown est pris en charge dans les descriptions.

2
Pricing Model and Price
Sélectionnez le modèle tarifaire :
- One-Time : prix fixe payé une seule fois.
- Subscription : prix récurrent avec intervalle et essai facultatif.
- Usage-Based : prix calculé à partir d’événements mesurés.
- Price : Montant de base et devise. Vous pouvez définir le prix de base dans toute devise prise en charge par Dodo Payments, à l’exception des produits Pay What You Want, dont la devise de base doit être USD, GBP ou EUR. USD, GBP, EUR et INR sont épinglées en haut du sélecteur de devises pour un accès rapide.
- Discount Applicable (%) : Pourcentage de remise facultatif affiché lors du checkout et sur les factures. Vous pouvez saisir jusqu’à deux décimales, par exemple
10.5. Dans l’API, définissez la remise en points de base avecdiscount_bps:1050correspond donc à 10,5 %. L’ancien champdiscountest obsolète et arrondit à un pourcentage entier. - Pour les abonnements, définissez Repeat every (par exemple, 1 mois ou 1 an), Trial days et un Trial amount facultatif pour un essai payant. Un prix d’abonnement non nul doit respecter le minimum d’abonnement dans la devise utilisée pour le paiement du client : $1.00 pour USD. Les devises autres que USD, EUR et GBP doivent également représenter au moins $1.00. Un prix exactement égal à $0 est également pris en charge, et vous pouvez permettre aux clients de commencer un abonnement à $0 sans carte ; consultez Card-Optional at Zero Price. Les montants négatifs ne sont pas pris en charge.
Lorsque Adaptive Currency est activé, les clients dont la devise ne correspond pas à votre devise de base sont facturés dans leur devise locale. Vous pouvez ainsi définir les prix dans la devise la mieux adaptée à votre marché. Lorsqu’il est désactivé, ils paient dans votre devise de base.
3
Product Media
Téléchargez des images pour présenter le produit lors du paiement et sur les factures. Formats pris en charge : PNG, JPG et WebP, jusqu’à 3 Mo. Réorganisez ou remplacez les images à tout moment.
4
Automated Entitlements
Dans la section Entitlements, associez une exécution qui s’active automatiquement après le paiement :
- License Keys : Émettre et valider des clés uniques.
- Digital Files : Accorder un accès sécurisé aux fichiers.
- Feature Flags : Déverrouiller une fonctionnalité vérifiée par votre application.
- Platform Access : Accorder l’accès à Discord, GitHub, Telegram, Figma, Framer ou Notion.
Variantes et options tarifaires
Au lieu de créer des variantes sous un même produit, créez des produits distincts pour chaque option tarifaire (par exemple, Monthly et Yearly). Regroupez-les ensuite dans une Product Collection afin de présenter toutes les options lors d’un même paiement et d’activer le changement de plan dans le Customer Portal.
Pourquoi cette approche ?
- Modèles tarifaires clairs : chaque produit possède un modèle tarifaire unique et bien défini (ponctuel, par abonnement ou basé sur l’utilisation).
- APIs prévisibles : intégrations plus simples, sans logique de variantes imbriquées.
- Rapports simplifiés : suivez le chiffre d’affaires et les indicateurs par produit, sans agrégation des variantes.
- Paiement flexible : affichez plusieurs produits côte à côte afin que les clients puissent les comparer et faire leur choix.
Fonctionnement des Product Collections
- Créer des produits : configurez des produits individuels pour chaque plan (par exemple, Starter Monthly, Starter Annual, Pro Monthly, Pro Annual).
- Regrouper dans une collection : ajoutez les produits associés à une Product Collection.
- Paiement unifié : les clients voient toutes les options lors d’un même paiement et sélectionnent leur plan préféré.
- Changement de plan : les clients peuvent passer à un plan supérieur ou inférieur entre les produits d’une même collection via le Customer Portal.
Product Collections
Gérer les produits
Vous pouvez gérer les produits via le dashboard ou par programmation via l’API. L’API offre un contrôle complet sur la création, la mise à jour, la récupération, l’importation d’images et l’archivage des produits.Gestion via le dashboard
- Update : modifiez à tout moment le nom, la description, les images, le prix, les champs et les avantages (le modèle tarifaire est immuable).
- Archive : masquez un produit des nouveaux achats sans perturber les clients existants. Vous pourrez le désarchiver ultérieurement.
- Drafts : un produit en cours est enregistré comme brouillon afin que vous puissiez y revenir plus tard. Les brouillons sont conservés séparément pour le mode test et le mode réel ; un produit inachevé dans un mode ne se retrouve donc jamais dans l’autre. Utilisez Clear Draft pour le supprimer et recommencer.
Gestion via l’API
Les instructions suivantes vous permettent de créer, mettre à jour, gérer et récupérer des produits, notamment en important des images.Creating a Product
Creating a Product
Envoyez une requête
POST vers l’endpoint /products avec des détails tels que le nom, la description, le prix, la devise et l’indication précisant s’il s’agit d’un produit récurrent.Pour les produits récurrents, définissez l’objet price sur un prix récurrent (type: recurring_price) et indiquez payment_frequency_interval et subscription_period_interval (Day, Week, Month ou Year), ainsi que leurs nombres correspondants.Create Product API
Updating a Product
Updating a Product
Envoyez une requête
PATCH vers l’endpoint /products/{product_id}. Vous pouvez mettre à jour des propriétés telles que le nom, le prix et la description tout en conservant les autres détails inchangés.Vérifiez que le product_id dans l’endpoint correspond à un produit existant.Update Product API
Retrieving Products
Retrieving Products
Récupérez la liste des produits enregistrés dans votre compte à l’aide d’une requête
GET vers l’endpoint /products. Vous pouvez ainsi récupérer les détails des produits, y compris les produits actifs et archivés.Retrieve Products API
Uploading Product Images
Uploading Product Images
Associez une image à un produit en la téléversant vers AWS S3 à l’aide d’une URL pré-signée fournie par l’API. Commencez par demander une URL de téléversement d’image à l’endpoint
/products/{product_id}/images, puis utilisez l’URL fournie pour téléverser l’image dans les 60 secondes.Une fois l’URL pré-signée reçue de l’API, importez l’image à l’aide de la méthode PUT. Cela garantit un accès sécurisé et temporaire à AWS S3 pour importer l’image.Bibliothèques prises en charge pour l’importation vers S3 :- Node.js :
axios,node-fetch - Python :
requests,boto3 - Go :
net/http - PHP :
GuzzleHttp - Ruby :
rest-client
200 OK, indiquant que l’image a bien été enregistrée.Upload Product Image API
Archiving a Product
Archiving a Product
Masquez définitivement un produit des nouveaux achats sans le supprimer à l’aide d’une requête
DELETE vers l’endpoint /products/{id}.Archive Product API
Unarchiving a Product
Unarchiving a Product
Restaurez un produit archivé en envoyant une requête
POST vers l’endpoint /products/{product_id}/unarchive. Le produit est ainsi réactivé et de nouveau disponible.Unarchive Product API
Checkout and Fulfillment
Checkout and Fulfillment
Créez des flux de paiement ou d’abonnement à partir de produits et automatisez leur exécution grâce aux avantages et aux webhooks.
Checkout Sessions
Payment Webhooks
Subscription Webhooks
Bonnes pratiques
- Commencez par la clarté : créez un produit distinct pour chaque option tarifaire (Monthly ou Yearly).
- Utilisez les essais avec discernement : associez les essais à l’onboarding pour favoriser l’activation.
- Automatisez l’exécution : utilisez les avantages et les webhooks pour effectuer la livraison instantanément.
- Ajoutez des métadonnées : stockez les identifiants de votre système pour le rapprochement.