Passer au contenu principal
Page de paiement
Le checkout Dodo Payments est un parcours de paiement optimisé pour la conversion et conforme à l’échelle mondiale, conçu pour les produits numériques et les entreprises SaaS. Il prend en charge plusieurs devises, langues, taxes, remises, modules complémentaires et workflows de conformité adaptés aux entreprises.

Checkout Sessions API

Créez des sessions de checkout hébergées de manière programmatique.

Preview Checkout

Calculez les prix et les taxes avant de créer une session.

Payment Methods

Méthodes de paiement prises en charge et options de configuration.

Devise Adaptative

La Devise Adaptative permet aux clients de payer dans leur devise locale préférée, améliorant ainsi la confiance et les taux de conversion.

Comment ça fonctionne

  1. Activer : Activez la devise adaptative depuis Paramètres → Business
  2. Sélectionner : Les clients peuvent changer de devise directement à la caisse
  3. Convertir : Les prix sont convertis dynamiquement en utilisant les taux de change en temps réel
  4. Afficher : Le montant final à payer est affiché de manière transparente avant le paiement
Sélecteur de devises à la caisse

Adaptive Currency

En savoir plus sur les devises prises en charge, les frais de conversion et la gestion des remboursements.

Paiement Multilingue

Dodo Payments prend en charge plusieurs langues sur la page de paiement, permettant aux clients de finaliser leurs paiements dans une langue avec laquelle ils sont à l’aise.
Sélecteur de langue à la caisse

Points Clés

  • Sélecteur de langue disponible directement lors du paiement
  • Texte de l’interface utilisateur, étiquettes et messages système sont localisés
  • Améliore l’accessibilité et la conversion internationale

Langues prises en charge

La page de paiement prend en charge 21 langues :
LanguageCode
Arabicar
Catalanca
Chinesezh
Dutchnl
Englishen
Frenchfr
Germande
Hebrewhe
Indonesianid
Italianit
Japaneseja
Koreanko
Malayms
Polishpl
Portuguesept
Romanianro
Russianru
Spanishes
Swedishsv
Thaith
Turkishtr
Vous pouvez forcer une langue spécifique sur le checkout en définissant le paramètre force_language lors de la création d’une session de checkout. Consultez l’API des sessions de checkout pour plus de détails.

Calcul automatique des taxes

Les taxes sont calculées automatiquement en fonction de l’adresse de facturation du client, garantissant la conformité aux exigences de la TPS, de la TVA et des taxes de vente sans configuration manuelle.

Fonctionnement du calcul des taxes

1

Location Detection

Les règles fiscales sont appliquées selon le pays du client (et la région lorsque cela est applicable).
2

Dynamic Updates

Le montant des taxes se met à jour automatiquement lorsque :
  • le pays change
  • l’adresse est mise à jour
3

Transparent Display

Le détail final des taxes est affiché clairement avant le paiement.
Le calcul des taxes est entièrement automatisé. Aucune configuration manuelle n’est requise pour les biens numériques standard et les produits SaaS.

Prise en charge de l’identification fiscale des entreprises

Pour les entreprises enregistrées, le checkout permet aux clients de saisir leur numéro d’identification fiscale (par exemple, numéro de TVA/TVH).

Que se passe-t-il lorsqu’un identifiant fiscal est saisi

  • L’éligibilité fiscale est validée en temps réel
  • Les exonérations fiscales ou règles d’autoliquidation applicables sont appliquées
  • Le montant des taxes se met instantanément à jour dans le checkout
Entrée de l'identifiant fiscal de l'entreprise à la caisse
Cela est particulièrement utile pour les services SaaS B2B et les services numériques où les clients professionnels peuvent bénéficier d’exonérations fiscales.

Codes de réduction

Les clients peuvent appliquer les codes promotionnels ou de réduction que vous avez créés dans le tableau de bord directement sur la page de paiement.

Expérience de checkout

  1. Le client saisit le code de réduction
  2. La réduction est validée instantanément
  3. Le prix mis à jour et les économies sont clairement affichés
Entrée du code de réduction à la caisse

Intégration API

Pré-appliquez un ou plusieurs codes de réduction empilés ou activez le champ de saisie de réduction :
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  discount_codes: ['WELCOME20'], // Pre-apply one or more codes (max 20, applied in order)
  feature_flags: {
    allow_discount_code: true // Show discount input field
  },
  return_url: 'https://yoursite.com/return'
});
discount_codes accepte un tableau de jusqu’à 20 codes qui s’empilent dans l’ordre. Le champ unique discount_code est obsolète mais fonctionne toujours — les intégrations existantes n’ont pas besoin de changer immédiatement. Migrez vers discount_codes lorsque cela est pratique pour utiliser l’empilement et la forme de réponse enrichie.

Discount Codes

Découvrez comment créer et gérer les codes de réduction.

Validate Discount by Code

Recherchez et validez les réductions en utilisant les noms de code.

Collection d’adresses intelligentes

Le processus de paiement prend en charge une saisie d’adresse flexible pour une finalisation plus rapide.

Options disponibles

OptionDescription
Google Address AutofillSélection rapide avec autocomplétion
Manual EntryContrôle total pour les adresses complètes
Country SelectionInfluence la logique fiscale et de conformité
Minimal AddressCollecte uniquement le pays (et le code postal si nécessaire pour la taxe) — voir Mode Adresse Minimale
La collecte d’adresses équilibre la rapidité, la précision, et la couverture mondiale pour maximiser la conversion tout en assurant la conformité.

Mode Adresse Minimale

Pour une conversion maximale, activez la collecte d’adresses minimales pour réduire les frictions au moment du paiement. Lorsque minimal_address est défini à true, le paiement ne collecte que :
  • Pays — toujours requis pour la détermination fiscale
  • Code postal — uniquement dans les régions où c’est nécessaire pour la taxe de vente, la TVA ou le calcul de la TPS
Tous les autres champs d’adresse (rue, ville, état) sont ignorés, accélérant ainsi considérablement la finalisation du paiement.
Mode adresse minimale affichant uniquement les champs pays et code postal au paiement
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  minimal_address: true,
  return_url: 'https://yoursite.com/return'
});
La collecte d’adresses complètes reste le choix par défaut. Activez minimal_address pour les produits numériques et les flux SaaS où les informations de facturation complètes ne sont pas requises.

Minimal Address Reference

Voir la référence complète du paramètre minimal_address dans le guide de l’API des sessions de paiement.

Collecte du Numéro de Téléphone

Contrôlez si le champ du numéro de téléphone apparaît lors du paiement — et s’il est requis — en utilisant les indicateurs de fonctionnalité de la session de paiement.
IndicateurPar défautComportement
allow_phone_number_collectiontrueAffiche le champ du numéro de téléphone sur le formulaire de paiement
require_phone_numberfalseRend le champ du numéro de téléphone obligatoire (la validation du formulaire impose une valeur non vide)
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
  feature_flags: {
    allow_phone_number_collection: true,
    require_phone_number: true
  },
  return_url: 'https://yoursite.com/return'
});
require_phone_number: true nécessite allow_phone_number_collection: true. L’API rejette les sessions où la collecte du téléphone est désactivée alors que le numéro de téléphone est requis.
Utilisez require_phone_number pour le SaaS B2B, les industries réglementées ou tout flux où vous avez besoin d’un canal de contact vérifié pour le support, la révision de la fraude ou la conformité.

Champs Personnalisés

Collectez des informations supplémentaires auprès des clients lors du paiement en définissant des champs de formulaire personnalisés. Cela est utile pour recueillir des données comme le nom de l’entreprise, la taille de l’équipe, la source de recommandation ou toute autre information spécifique à votre activité.

Types de Champs Disponibles

TypeDescription
textEntrée de texte sur une ligne
numberEntrée numérique
emailAdresse e-mail avec validation
urlURL avec validation
dateSélecteur de date
dropdownSélectionnez parmi les options prédéfinies
booleanBascule Oui/Non

Exemple

const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  custom_fields: [
    {
      key: 'company_name',
      label: 'Company Name',
      field_type: 'text',
      required: true
    },
    {
      key: 'team_size',
      label: 'Team Size',
      field_type: 'dropdown',
      required: true,
      options: ['1-10', '11-50', '51-200', '200+']
    }
  ],
  return_url: 'https://yoursite.com/return'
});
Les réponses des clients sont automatiquement incluses dans les charges utiles des webhooks (payment.succeeded, subscription.active) et les réponses API via le tableau custom_field_responses. Vous pouvez définir jusqu’à 5 champs personnalisés par session de paiement.

Custom Fields Guide

En savoir plus sur la configuration des champs personnalisés et l’accès aux réponses.

Politique de Confidentialité & Acceptation des Conditions

Pour garantir la transparence légale et de conformité :
Cela aide à respecter les exigences mondiales de protection des consommateurs et de confidentialité des données, y compris la conformité au RGPD.

Paiement de Collection

Les Collections de Produits permettent une expérience de paiement unifiée où les clients peuvent voir et sélectionner plusieurs produits associés (par exemple, des plans Starter, Pro, Enterprise) en un seul paiement.

Comment Cela Fonctionne

  1. Tous les produits affichés : Les clients voient chaque produit actif de la collection
  2. Premier produit pré-sélectionné : Le premier produit de la collection est automatiquement sélectionné
  3. Comparer les options : Les clients peuvent comparer les prix et les fonctionnalités avant de choisir
  4. Sélection unique : Après avoir sélectionné un produit, le paiement se poursuit avec le flux de paiement standard

Création d’un Paiement de Collection

const session = await client.checkoutSessions.create({
  product_collection_id: 'pdc_abc123',
  product_cart: [], // Required: pass an empty array for collection checkout
  return_url: 'https://yoursite.com/return'
});
Lorsque vous utilisez product_collection_id, transmettez un tableau product_cart vide. Les codes de réduction ne peuvent pas être pré-appliqués lors de la création de la session.

Product Collections

Apprenez à créer et à gérer des collections de produits pour des expériences de paiement unifiées.

Configuration de la Session de Paiement

Contrôlez le comportement de paiement avec l’API des Sessions de Paiement :
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  customer: {
    email: 'customer@example.com',
    name: 'Jane Doe'
  },
  billing_currency: 'EUR', // Set specific currency
  discount_codes: ['PROMO10'],
  feature_flags: {
    allow_discount_code: true
  },
  return_url: 'https://yoursite.com/return',
  cancel_url: 'https://yoursite.com/pricing', // Optional: where to redirect on cancel
  metadata: {
    order_ref: 'ORD-12345'
  }
});
Après le paiement, les clients sont redirigés vers votre return_url avec des paramètres de requête ajoutés automatiquement — incluant payment_id ou subscription_id, status, email, et license_key (le cas échéant). Voir le guide des Sessions de Paiement pour la liste complète.

Checkout Sessions API

Référence complète de l’API pour les sessions de paiement.

Checkout Integration Guide

Guide étape par étape pour intégrer le paiement.

Personnalisation du Thème de Paiement

Personnalisez l’apparence de la page de paiement pour correspondre à votre marque en utilisant le paramètre customization.theme_config lors de la création d’une session de paiement via l’API. Configurez les couleurs, polices, rayons de bordure et texte des boutons pour les modes clair et sombre.
Page de paiement avec thème personnalisé

Design & Theme Customization

Configurez visuellement les thèmes depuis le tableau de bord avec des thèmes préconstruits, typographies, couleurs, et aperçu en direct.
Cette section couvre la configuration du thème côté serveur avec customization.theme_config. Si vous utilisez le SDK de Paiement (paiement superposé ou intégré), voir les sections de personnalisation de thème dans Paiement Superposé ou Paiement Intégré qui utilisent des propriétés camelCase (par exemple, bgPrimary au lieu de bg_primary).

Options de Configuration du Thème

PropriétéDescription
lightConfiguration des couleurs pour le mode clair
darkConfiguration des couleurs pour le mode sombre
font_primary_urlURL pour la police principale
font_secondary_urlURL pour la police secondaire
font_sizeTaille de police : xs, sm, md, lg, xl, 2xl
font_weightPoids de la police : normal, medium, bold, extraBold
radiusRayon de bordure pour les éléments UI (par exemple, 4px, 0.5rem, 8px)
pay_button_textTexte personnalisé pour le bouton de paiement (par exemple, « Terminer l’achat », « S’abonner maintenant »)

Configuration des Couleurs (Mode Clair/Sombre)

Chaque mode (light et dark) prend en charge les propriétés de couleur suivantes :
PropriétéDescription
bg_primaryCouleur de fond principale
bg_secondaryCouleur de fond secondaire
text_primaryCouleur de texte principale
text_secondaryCouleur de texte secondaire
text_placeholderCouleur de texte de l’espace réservé
text_errorCouleur de texte des erreurs
text_successCouleur de texte de succès
border_primaryCouleur de bordure principale
border_secondaryCouleur de bordure secondaire
button_primaryCouleur de fond du bouton principal
button_primary_hoverCouleur de survol du bouton principal
button_secondaryCouleur de fond du bouton secondaire
button_secondary_hoverCouleur de survol du bouton secondaire
button_text_primaryCouleur de texte du bouton principal
button_text_secondaryCouleur de texte du bouton secondaire
input_focus_borderCouleur de la bordure focus de l’entrée
Tous les champs de couleur acceptent les formats de couleur CSS standards :
  • Hex : #fff, #ffffff, #ffffffff
  • RGB/RGBA : rgb(255, 255, 255), rgba(255, 255, 255, 0.5)
  • HSL/HSLA : hsl(120, 100%, 50%), hsla(120, 100%, 50%, 0.5)
  • Couleurs nommées : red, blue, transparent

Exemple

const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  customization: {
    theme_config: {
      // Custom fonts
      font_primary_url: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap',
      font_size: 'md',
      font_weight: 'medium',
      radius: '8px',
      pay_button_text: 'Complete Purchase',
      
      // Light mode colors
      light: {
        bg_primary: '#ffffff',
        bg_secondary: '#f5f5f5',
        text_primary: '#1a1a1a',
        text_secondary: '#666666',
        button_primary: '#0066ff',
        button_primary_hover: '#0052cc',
        button_text_primary: '#ffffff',
        border_primary: '#e0e0e0'
      },
      
      // Dark mode colors
      dark: {
        bg_primary: '#1a1a1a',
        bg_secondary: '#2d2d2d',
        text_primary: '#ffffff',
        text_secondary: '#a0a0a0',
        button_primary: '#3385ff',
        button_primary_hover: '#4d99ff',
        button_text_primary: '#ffffff',
        border_primary: '#404040'
      }
    }
  },
  return_url: 'https://yoursite.com/return'
});
Vous n’avez pas besoin de spécifier toutes les propriétés de couleur. Toutes les propriétés non spécifiées utiliseront les valeurs de thème par défaut.
Dernière modification le 9 juin 2026