Zum Hauptinhalt springen
Indien hat eine einzigartige Zahlungsinfrastruktur, die von UPI (über 60 % der digitalen Transaktionen) und Rupay-Karten dominiert wird. Dodo Payments unterstützt beides mit voller RBI-Konformität für Abonnementmandate.

Warum Zahlungsmethoden in Indien wichtig sind

UPI-Dominanz

UPI verarbeitet über 10 Mrd. Transaktionen pro Monat. Viele indische Kunden haben keine internationalen Karten.

Niedrige Transaktionskosten

UPI hat nahezu keine Transaktionsgebühren. Ideal für hochvolumige, niedrigwertige Transaktionen.

Abonnementunterstützung

Im Gegensatz zu den meisten alternativen Zahlungsmethoden unterstützen UPI und Rupay wiederkehrende Zahlungen über RBI-Mandate.

Unterstützte Methoden

MethodeTypAbonnementsMindestbetrag
UPI CollectQR-Code / VPAJa*₹1
Rupay KreditKarteJa*₹1
Rupay DebitKarteJa*₹1
*Abonnements erfordern RBI-konforme Mandate mit speziellen Verarbeitungsregeln.

Konfiguration

API-Methodenarten

TypBeschreibung
upi_collectUPI über QR-Code oder VPA-Eingabe
creditKreditkarten einschließlich Rupay
debitDebitkarten einschließlich Rupay

Beispiel: Indien-fokussierter Checkout

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'
});

Voraussetzungen für UPI

Damit UPI im Checkout angezeigt wird:
  1. Rechnungsland muss Indien sein (IN)
  2. Währung muss INR sein
  3. Für nicht-indische Händler: Adaptive Currency muss aktiviert sein
Wenn Sie ein nicht-indischer Händler sind und Adaptive Currency nicht aktiviert ist, wird UPI Ihren Kunden nicht zur Verfügung stehen.

Abonnements mit RBI-Mandaten

Indische Zahlungsmethoden-Abonnements unterliegen den Vorschriften der RBI (Reserve Bank of India) mit speziellen Anforderungen.

Wie RBI-Mandate funktionieren

Mandatsarten

AbonnementbetragMandatsartLimit
Unter 15.000 RsBedarfsmandatRs 15.000
15.000 Rs oder mehrFestbetragsmandatGenau den Abonnementbetrag
Wichtig für Planänderungen: Wenn ein Upgrade zu einer Gebühr führt, die das vorhandene Mandatslimit überschreitet, schlägt die Gebühr fehl und der Kunde muss erneut autorisieren.

Die 48-Stunden-Bearbeitungsverzögerung

Dies ist der wichtigste Unterschied zu internationalen Kartenzahlungen:
1

Gebühr eingeleitet (Tag 0)

Am geplanten Erneuerungsdatum leitet Dodo die Gebühr bei der Bank ein.
2

Vor-Debit-Benachrichtigung

Der Kunde erhält eine Benachrichtigung von seiner Bank über das bevorstehende Debit.
3

48-Stunden-Fenster

Der Kunde kann das Mandat während dieses Zeitraums über seine Banking-App stornieren.
4

Debit abgeschlossen (~48-51 Stunden)

Nach 48 Stunden (plus bis zu 3 zusätzliche Stunden für die Bearbeitung durch die Bank) werden die Mittel debitiert.
5

Webhook gesendet

payment.succeeded webhook wird nach dem tatsächlichen Debit gesendet, nicht bei der Initiierung.
Gewähren Sie keine Vorteile bei der Gebühreneinleitung. Warten Sie auf den payment.succeeded Webhook, der ca. 48-51 Stunden nach dem geplanten Gebührentermin eintrifft.

Umgang mit dem 48-Stunden-Fenster

// 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);
  }
}

Webhook-Ereignisse für indische Abonnements

EreignisWannAktion
subscription.createdMandat autorisiertAbonnementstart aufzeichnen
payment.succeeded~48h nach GebührenterminZugang gewähren/fahren
payment.failedDebit fehlgeschlagenKunden benachrichtigen, Zugang pausieren
subscription.on_holdZahlung fehlgeschlagenAufforderung zur Aktualisierung der Zahlungsmethode
subscription.activeNach Zahlung reaktiviertZugang wiederherstellen

Tests

UPI-Test-IDs

StatusUPI-ID
Erfolgsuccess@upi
Fehlerfailure@upi

Indische Kartentestnummern

MarkeSzenarioKartennummerAblaufCVV
VisaErfolg457623891277145006/32123
VisaAbgelehnt470613121121212306/32123
MastercardErfolg540916266938103406/32123
MastercardAbgelehnt510510510510510006/32123

Best Practices

Bauen Sie Ihre Anwendung so, dass die Lücke zwischen Gebühreneinleitung und tatsächlicher Zahlung berücksichtigt wird. Denken Sie an:
  • Kulanzfristen für den Abonnementzugang
  • Klare Kommunikation an die Kunden über die Bearbeitungszeit
  • Webhook-gesteuerte Erfüllung, nicht terminbasierte
Kunden können Mandate jederzeit über ihre Bank-Apps stornieren. Überwachen Sie subscription.on_hold Webhooks und fordern Sie die Kunden auf, sich erneut anzumelden oder Zahlungsmethoden zu aktualisieren.
Für variable Preisgestaltung (z. B. nutzungsbasiert) prüfen Sie, ob ein Rs 15.000 Bedarfsmandat ausreichend ist. Wenn Gebühren über diesem Betrag liegen könnten, müssen die Kunden erneut autorisieren.
Für indische Kunden sollte UPI die primäre Zahlungsmethode sein. Viele Benutzer ziehen es aufgrund von Vertrautheit und geringerem Aufwand den Karten vor.

Fehlersuche

Überprüfen:
  1. Ist das Rechnungsland auf IN eingestellt?
  2. Ist die Währung auf INR eingestellt?
  3. Wenn nicht-indischer Händler: Ist Adaptive Currency aktiviert?
  4. Ist upi_collect in allowed_payment_method_types enthalten?
Lösung: Stellen Sie sicher, dass die Rechnungsadresse country: "IN" und billing_currency: "INR" hat.
Ursache: Neuer Betrag überschreitet das vorhandene Mandatslimit (Schwelle von Rs 15.000).Lösung: Der Kunde muss die Zahlungsmethode aktualisieren, um ein neues Mandat mit dem richtigen Limit zu erstellen.
Ursache: Der Kunde hat möglicherweise das Mandat während des 48-Stunden-Fensters storniert oder seine Bank hat die Abbuchung abgelehnt.Lösung: Der Kunde muss das Mandat erneut autorisieren oder seine Zahlungsmethode aktualisieren.
Ursache: Verzögerungen in der Bank-API können die Bearbeitung um 2-3 zusätzliche Stunden verlängern.Lösung: Das ist zu erwarten. Gestalten Sie Ihr System so, dass es variable Verzögerungen von bis zu ~51 Stunden insgesamt verarbeitet.
Ursache: Grenzfall in den RBI-Vorschriften — die Stornierung des Mandats während des Verarbeitungsfensters führt nicht sofort zur Stornierung des Abonnements.Lösung: Die nächste Gebühr wird fehlschlagen und das Abonnement wird in on_hold übergehen. Überwachen Sie Webhooks für payment.failed.

Verwandte Seiten