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

UPI Dominance

UPI traite plus de 10 milliards de transactions par mois. De nombreux clients indiens ne possèdent pas de cartes internationales.

Low Transaction Costs

UPI présente des frais de transaction quasi nuls. Excellent pour les transactions à volume élevé et faibles montants.

Subscription Support

Contrairement à la plupart des méthodes de paiement alternatives, 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 code QR ou saisie 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 UPI apparaisse lors du paiement :
  1. Le pays de facturation doit être l’Inde (IN)
  2. La devise doit être INR
  3. Pour les commerçants non indiens : Adaptive Currency doit être activée
Si vous êtes un commerçant non indien et que Adaptive Currency n’est pas activée, 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 Initiated (Day 0)

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

Pre-Debit Notification

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

48-Hour Window

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

Debit Completed (~48-51 hours)

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

Webhook Sent

Le webhook payment.succeeded est envoyé après le débit effectif, pas lors de l’initiation.
N’accordez pas d’avantages lors de l’initiation du prélèvement. Attendez le webhook payment.succeeded, qui arrive environ 48 à 51 heures après la date prévue du prélèvement.

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.activeMandat autoriséEnregistrer le début de l’abonnement
payment.succeeded~48h après la date de facturationAccorder/poursuivre l’accès
payment.failedDébit échouéInformer le client, suspendre l’accès
subscription.on_holdPaiement échouéInviter à mettre à jour le moyen 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
VisaRefusée470613121121212306/32123
MastercardSuccès540916266938103406/32123
MastercardRefusée510510510510510006/32123

Meilleures Pratiques

Concevez votre application pour gérer le délai entre l’initiation du prélèvement et le paiement effectif. Envisagez :
  • Des délais de grâce pour l’accès aux abonnements
  • Une communication claire aux clients sur le temps de traitement
  • Un traitement piloté par les webhooks, pas par une date
Les clients peuvent annuler les mandats via leurs applications bancaires à tout moment. Surveillez les webhooks subscription.on_hold et invitez les clients à se réabonner ou à mettre à jour leurs moyens de paiement.
Pour une tarification variable (par exemple à l’usage), réfléchissez à savoir si un mandat à la demande de 15 000 Rs est suffisant. Si les prélèvements risquent de dépasser ce montant, les clients devront réautoriser.
Pour les clients indiens, UPI devrait être l’option de paiement principale. De nombreux utilisateurs la préfèrent aux cartes en raison de la familiarité et d’une moindre friction.

Dépannage

Vérification :
  1. Pays de facturation défini sur IN ?
  2. Devise réglée sur INR ?
  3. Si commerçant non indien : Adaptive Currency activée ?
  4. upi_collect inclus dans allowed_payment_method_types ?
Solution : Vérifiez que l’adresse de facturation contient country: "IN" et billing_currency: "INR".
Cause : Le nouveau montant dépasse la limite du mandat existant (seuil de 15 000 Rs).Solution : Le client doit mettre à jour son moyen de paiement pour établir un nouveau mandat avec la limite appropriée.
Cause : Le client a peut-être annulé le mandat pendant la fenêtre de 48 heures, ou sa banque a refusé le débit.Solution : Le client doit réautoriser le mandat ou mettre à jour son moyen de paiement.
Cause : Des ralentissements de l’API bancaire peuvent prolonger le traitement de 2 à 3 heures supplémentaires.Solution : Cela est prévu. Concevez votre système pour gérer des délais variables allant jusqu’à environ 51 heures au total.
Cause : Cas exceptionnel dans les réglementations de la RBI — l’annulation du mandat pendant la fenêtre de traitement n’annule pas immédiatement l’abonnement.Solution : Le prélèvement suivant échouera et l’abonnement passera en on_hold. Surveillez les webhooks pour payment.failed.

Pages Connexes