Passer au contenu principal
L’Inde dispose d’une infrastructure de paiement unique dominée par l’UPI (plus de 60 % des transactions numériques) et les cartes Rupay. Dodo Payments prend en charge les deux avec une conformité totale à la RBI pour les mandats d’abonnement.

Pourquoi les Méthodes de Paiement en Inde Comptent

Dominance de l'UPI

L’UPI traite plus de 10 milliards de transactions par mois. De nombreux clients indiens n’ont pas de cartes internationales.

Frais de Transaction Faibles

L’UPI a des frais de transaction presque nuls. Excellent pour des transactions de faible valeur en volume élevé.

Support des Abonnements

Contrairement à la plupart des autres méthodes de paiement, l’UPI et Rupay prennent en charge les paiements récurrents via les mandats de la RBI.

Méthodes Pris en Charge

MéthodeTypeAbonnementsMontant Min
UPI CollectQR code / VPAOui*₹1
Rupay CréditCarteOui*₹1
Rupay DébitCarteOui*₹1
*Les abonnements nécessitent des mandats conformes à la RBI avec des règles de traitement spéciales.

Configuration

Types de Méthodes API

TypeDescription
upi_collectUPI via QR code ou saisie de VPA
creditCartes de crédit y compris Rupay
debitCartes de débit y compris Rupay

Exemple : Checkout axé sur l’Inde

const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_123', quantity: 1 }],
  allowed_payment_method_types: [
    'upi_collect',
    'credit',
    'debit'
  ],
  billing_currency: 'INR',
  customer: {
    email: 'customer@example.in',
    name: 'Priya Sharma',
    phone_number: '+919876543210'
  },
  billing_address: {
    country: 'IN',
    zipcode: '560001'
  },
  return_url: 'https://example.com/success'
});

Exigences pour l’UPI

Pour que l’UPI apparaisse au moment du paiement :
  1. Pays de facturation doit être l’Inde (IN)
  2. Monnaie doit être l’INR
  3. Pour les commerçants non indiens : Monnaie Adaptative doit être activée
Si vous êtes un commerçant non indien et que la Monnaie Adaptative n’est pas activée, l’UPI ne sera pas disponible pour vos clients.

Abonnements avec Mandats de la RBI

Les abonnements par méthode de paiement indienne fonctionnent selon les règlements de la RBI (Réserve Bank of India) avec des exigences uniques.

Comment Fonctionnent les Mandats de la RBI

Types de Mandats

Montant de l’AbonnementType de MandatLimite
En dessous de Rs 15,000Mandat à la demandeRs 15,000
Rs 15,000 ou plusMandat à montant fixeMontant exact de l’abonnement
Important pour les changements de plan : Si une mise à niveau entraîne un montant dépassant la limite du mandat en cours, le paiement échouera et le client devra réautoriser.

Le Délai de Traitement de 48 Heures

C’est la principale différence par rapport aux paiements par carte internationale :
1

Charge Initiée (Jour 0)

À la date de renouvellement prévue, Dodo initie la charge auprès de la banque.
2

Notification Pré-Débit

Le client reçoit une notification de sa banque concernant le prochain débit.
3

Fenêtre de 48 Heures

Le client peut annuler le mandat durant cette période via son application bancaire.
4

Débit Complété (~48-51 heures)

Après 48 heures (plus jusqu’à 3 heures supplémentaires pour le traitement bancaire), les fonds sont débités.
5

Webhook Envoyé

payment.succeeded le webhook est envoyé après le débit réel, et non à l’initiation.
Ne pas accorder de bénéfices lors de l’initiation de la charge. Attendez le webhook payment.succeeded, qui arrive ~48-51 heures après la date de charge prévue.

Gestion de la Fenêtre de 48 Heures

// DON'T do this:
async function handleSubscriptionRenewal(subscription) {
  // ❌ Bad: Granting access immediately when charge is initiated
  grantPremiumAccess(subscription.customer_id);
}

// DO this:
async function handlePaymentWebhook(event) {
  if (event.type === 'payment.succeeded') {
    // ✅ Good: Only grant access after payment is confirmed
    grantPremiumAccess(event.data.customer_id);
  }
  
  if (event.type === 'payment.failed') {
    // Handle failed payment (mandate cancelled, insufficient funds)
    revokePremiumAccess(event.data.customer_id);
  }
}

Événements Webhook pour les Abonnements Indiens

ÉvénementQuandAction
subscription.createdMandat autoriséEnregistrer le début de l’abonnement
payment.succeeded~48h après la date de chargeAccorder/continuer l’accès
payment.failedDébit échouéInformer le client, suspendre l’accès
subscription.on_holdPaiement échouéDemander une mise à jour du mode de paiement
subscription.activeRéactivé après paiementRestaurer l’accès

Tests

Identifiants de Test UPI

StatutID UPI
Succèssuccess@upi
Échecfailure@upi

Numéros de Test de Cartes Indiennes

MarqueScénarioNuméro de CarteExpirationCVV
VisaSuccès457623891277145006/32123
VisaRejeté470613121121212306/32123
MastercardSuccès540916266938103406/32123
MastercardRejeté510510510510510006/32123

Meilleures Pratiques

Construisez votre application pour gérer le délai entre l’initiation de la charge et le paiement réel. Pensez à :
  • Périodes de grâce pour l’accès aux abonnements
  • Communication claire aux clients concernant le temps de traitement
  • Remplissage basé sur les webhooks, et non sur les dates
Les clients peuvent annuler les mandats via leurs applications bancaires à tout moment. Surveillez les webhooks subscription.on_hold et incitez les clients à se réabonner ou à mettre à jour leurs modes de paiement.
Pour la tarification variable (par exemple, basée sur l’utilisation), considérez si un mandat à la demande de Rs 15,000 est suffisant. Si les frais pourraient dépasser cela, les clients devront réautoriser.
Pour les clients indiens, l’UPI devrait être l’option de paiement principale. De nombreux utilisateurs préfèrent l’UPI aux cartes en raison de la familiarité et de la moindre friction.

Dépannage

Vérifiez :
  1. Pays de facturation défini sur IN?
  2. Monnaie définie sur INR?
  3. Si commerçant non indien : Monnaie Adaptative activée ?
  4. upi_collect inclus dans allowed_payment_method_types?
Solution : Vérifiez que l’adresse de facturation a country: "IN" et billing_currency: "INR".
Cause : Le montant de la nouvelle charge dépasse la limite de mandat existante (seuil de Rs 15,000).Solution : Le client doit mettre à jour le mode de paiement pour établir un nouveau mandat avec la limite correcte.
Cause : Le client a peut-être annulé le mandat durant la fenêtre de 48 heures, ou sa banque a rejeté le débit.Solution : Le client doit réautoriser le mandat ou mettre à jour son mode de paiement.
Cause : Les retards de l’API bancaire peuvent prolonger le traitement de 2 à 3 heures supplémentaires.Solution : C’est attendu. Concevez votre système pour gérer des retards variables jusqu’à ~51 heures au total.
Cause : Cas particulier dans les règlements de la RBI — l’annulation de mandat durant la fenêtre de traitement n’annule pas immédiatement l’abonnement.Solution : La prochaine charge échouera et l’abonnement passera en on_hold. Surveillez les webhooks pour payment.failed.

Pages Connexes