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 Dominance

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

Low Transaction Costs

UPI hat nahezu keine Transaktionsgebühren. Ideal für Transaktionen mit hohem Volumen und geringem Wert.

Subscription Support

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 an der Kasse erscheint:
  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, steht UPI Ihren Kunden nicht zur Verfügung.

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

Charge Initiated (Day 0)

Am geplanten Verlängerungsdatum initiiert Dodo die Abbuchung bei der Bank.
2

Pre-Debit Notification

Der Kunde erhält eine Benachrichtigung von seiner Bank über die bevorstehende Abbuchung.
3

48-Hour Window

Der Kunde kann das Mandat in diesem Zeitraum über seine Banking-App widerrufen.
4

Debit Completed (~48-51 hours)

Nach 48 Stunden (plus bis zu 3 zusätzlichen Stunden für die Bankverarbeitung) werden die Gelder abgebucht.
5

Webhook Sent

payment.succeeded webhook wird nach der tatsächlichen Abbuchung gesendet, nicht bei der Initiierung.
Gewähren Sie keine Vorteile bei der Initiierung der Abbuchung. Warten Sie auf den payment.succeeded webhook, der ca. 48–51 Stunden nach dem geplanten Abbuchungsdatum 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

EventWhenAction
subscription.activeMandat autorisiertAbonnementbeginn aufzeichnen
payment.succeeded~48 h nach BelastungsdatumZugang gewähren/fortsetzen
payment.failedLastschrift fehlgeschlagenKunde benachrichtigen, Zugang pausieren
subscription.on_holdZahlung fehlgeschlagenAufforderung zur Aktualisierung der Zahlungsmethode
subscription.activeNach Zahlung reaktiviertZugang wiederherstellen

Tests

UPI-Test-IDs

StatusUPI ID
Successsuccess@upi
Failurefailure@upi

Indische Kartentestnummern

MarkeSzenarioKartennummerGültig bisCVV
VisaSuccess457623891277145006/32123
VisaDeclined470613121121212306/32123
MastercardSuccess540916266938103406/32123
MastercardDeclined510510510510510006/32123

Best Practices

Bauen Sie Ihre Anwendung so, dass sie die Lücke zwischen Abbuchungsinitiierung und tatsächlicher Zahlung abdeckt. Berücksichtigen Sie:
  • Kulanzzeiträume für den Abonnementzugang
  • Klare Kommunikation an Kunden über die Verarbeitungszeit
  • Webhook-gesteuerte Erfüllung, nicht datumsgesteuert
Kunden können Mandate jederzeit über ihre Banking-Apps kündigen. Überwachen Sie subscription.on_hold webhooks und fordern Sie Kunden auf, das Abonnement neu abzuschließen oder Zahlungsmethoden zu aktualisieren.
Bei variabler Preisgestaltung (z. B. nutzungsabhängig) prüfen Sie, ob ein Rs-15.000-On-Demand-Mandat ausreicht. Falls die Belastungen diesen Betrag überschreiten könnten, müssen Kunden erneut autorisieren.
Für indische Kunden sollte UPI die primäre Zahlungsoption sein. Viele Nutzer bevorzugen es gegenüber Karten aufgrund von Vertrautheit und geringerem Reibungswiderstand.

Fehlersuche

Überprüfen Sie:
  1. Ist das Rechnungsland auf IN gesetzt?
  2. Ist die Währung auf INR gesetzt?
  3. Falls nicht-indischer Händler: Ist Adaptive Currency aktiviert?
  4. Ist upi_collect in allowed_payment_method_types enthalten?
Lösung: Vergewissern Sie sich, dass die Rechnungsadresse country: "IN" und billing_currency: "INR" enthält.
Ursache: Neuer Betrag überschreitet das Limit des bestehenden Mandats (Schwelle 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 das Mandat im 48-Stunden-Fenster möglicherweise widerrufen oder seine Bank hat die Abbuchung abgelehnt.Lösung: Der Kunde muss das Mandat erneut autorisieren oder seine Zahlungsmethode aktualisieren.
Ursache: Verzögerungen durch die Bank-API können die Verarbeitung um 2-3 zusätzliche Stunden verlängern.Lösung: Dies ist zu erwarten. Bauen Sie Ihr System so, dass es variable Verzögerungen von insgesamt bis zu ca. 51 Stunden handhabt.
Ursache: Sonderfall in den RBI-Vorschriften – die Mandatskündigung während des Verarbeitungszeitfensters führt nicht sofort zur Kündigung des Abonnements.Lösung: Die nächste Abbuchung schlägt fehl und das Abonnement wechselt zu on_hold. Überwachen Sie Webhooks für payment.failed.

Verwandte Seiten