Langsung ke konten utama
India memiliki infrastruktur pembayaran yang unik didominasi oleh UPI (60%+ dari transaksi digital) dan kartu Rupay. Dodo Payments mendukung keduanya dengan kepatuhan penuh terhadap RBI untuk mandat langganan.

Mengapa Metode Pembayaran India Penting

UPI Dominance

UPI memproses lebih dari 10 miliar transaksi/bulan. Banyak pelanggan India tidak memiliki kartu internasional.

Low Transaction Costs

UPI memiliki biaya transaksi hampir nol. Sangat cocok untuk transaksi bervolume tinggi dengan nilai rendah.

Subscription Support

Berbeda dengan sebagian besar metode pembayaran alternatif, UPI dan Rupay mendukung pembayaran berulang melalui mandat RBI.

Metode yang Didukung

MetodeTipeLanggananJumlah Min
UPI CollectKode QR / VPAYa*₹1
Rupay KreditKartuYa*₹1
Rupay DebitKartuYa*₹1
*Langganan memerlukan mandat yang sesuai dengan RBI dengan aturan pemrosesan khusus.

Konfigurasi

Tipe Metode API

JenisDeskripsi
upi_collectUPI melalui kode QR atau entri VPA
creditKartu kredit termasuk Rupay
debitKartu debit termasuk Rupay

Contoh: Checkout Berfokus pada India

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

Persyaratan untuk UPI

Agar UPI muncul saat checkout:
  1. Negara penagihan harus India (IN)
  2. Mata uang harus INR
  3. Untuk pedagang non-India: Adaptive Currency harus diaktifkan
Jika Anda pedagang non-India dan Adaptive Currency tidak diaktifkan, UPI tidak akan tersedia bagi pelanggan Anda.

Langganan dengan Mandat RBI

Langganan metode pembayaran India beroperasi di bawah regulasi RBI (Reserve Bank of India) dengan persyaratan unik.

Cara Kerja Mandat RBI

Tipe Mandat

Jumlah LanggananTipe MandatBatas
Di Bawah Rs 15,000Mandat sesuai permintaanRs 15,000
Rs 15,000 atau lebihMandat jumlah tetapJumlah langganan yang tepat
Penting untuk perubahan rencana: Jika peningkatan mengakibatkan biaya melebihi batas mandat yang ada, biaya akan gagal dan pelanggan harus mengotorisasi ulang.

Penundaan Pemrosesan 48 Jam

Ini adalah perbedaan paling penting dari pembayaran menggunakan kartu internasional:
1

Charge Initiated (Day 0)

Pada tanggal pembaruan yang dijadwalkan, Dodo memulai pengenaan biaya ke bank.
2

Pre-Debit Notification

Pelanggan menerima pemberitahuan dari bank mereka tentang debit yang akan datang.
3

48-Hour Window

Pelanggan dapat membatalkan mandat selama periode ini melalui aplikasi perbankan mereka.
4

Debit Completed (~48-51 hours)

Setelah 48 jam (ditambah hingga 3 jam tambahan untuk pemrosesan bank), dana didebet.
5

Webhook Sent

payment.succeeded webhook dikirim setelah debit sebenarnya, bukan saat inisiasi.
Jangan berikan manfaat saat inisiasi pengenaan biaya. Tunggu webhook payment.succeeded, yang tiba sekitar 48-51 jam setelah tanggal pengenaan biaya yang dijadwalkan.

Menangani Jendela 48 Jam

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

Acara Webhook untuk Langganan India

PeristiwaKapanTindakan
subscription.createdMandat disetujuiCatat awal langganan
payment.succeeded~48 jam setelah tanggal pengenaan biayaBerikan/lanjutkan akses
payment.failedDebit gagalBeritahu pelanggan, jeda akses
subscription.on_holdPembayaran gagalMinta pembaruan metode pembayaran
subscription.activeDiaktifkan kembali setelah pembayaranPulihkan akses

Pengujian

ID Tes UPI

StatusUPI ID
Successsuccess@upi
Failurefailure@upi

Nomor Tes Kartu India

BrandSkenarioNomor KartuKadaluwarsaCVV
VisaSuccess457623891277145006/32123
VisaDeclined470613121121212306/32123
MastercardSuccess540916266938103406/32123
MastercardDeclined510510510510510006/32123

Praktik Terbaik

Bangun aplikasi Anda untuk menangani jeda antara inisiasi pengenaan biaya dan pembayaran aktual. Pertimbangkan:
  • Periode tenggang untuk akses langganan
  • Komunikasi yang jelas kepada pelanggan tentang waktu pemrosesan
  • Pemenuhan berbasis webhook, bukan berbasis tanggal
Pelanggan dapat membatalkan mandat melalui aplikasi bank mereka kapan saja. Pantau webhook subscription.on_hold dan minta pelanggan untuk berlangganan ulang atau memperbarui metode pembayaran.
Untuk harga variabel (misalnya berbasis penggunaan), pertimbangkan apakah mandat sesuai permintaan senilai Rs 15.000 sudah cukup. Jika pengenaan biaya mungkin melebihi ini, pelanggan perlu mengotorisasi ulang.
Untuk pelanggan India, UPI sebaiknya menjadi opsi pembayaran utama. Banyak pengguna lebih memilihnya dibandingkan kartu karena sudah familiar dan memiliki gesekan lebih rendah.

Pemecahan Masalah

Periksa:
  1. Negara penagihan diatur ke IN?
  2. Mata uang diatur ke INR?
  3. Jika pedagang non-India: Adaptive Currency diaktifkan?
  4. upi_collect termasuk dalam allowed_payment_method_types?
Solusi: Verifikasi alamat penagihan memiliki country: "IN" dan billing_currency: "INR".
Penyebab: Jumlah pengenaan biaya baru melebihi batas mandat yang ada (ambang batas Rs 15.000).Solusi: Pelanggan harus memperbarui metode pembayaran untuk membuat mandat baru dengan batas yang benar.
Penyebab: Pelanggan mungkin telah membatalkan mandat selama jendela 48 jam, atau bank mereka menolak debit.Solusi: Pelanggan perlu mengotorisasi ulang mandat atau memperbarui metode pembayaran.
Penyebab: Keterlambatan API bank dapat memperpanjang pemrosesan hingga 2-3 jam tambahan.Solusi: Ini diharapkan. Bangun sistem Anda untuk menangani keterlambatan variabel hingga sekitar 51 jam total.
Penyebab: Kasus tepi dalam regulasi RBI — pembatalan mandat selama jendela pemrosesan tidak serta-merta membatalkan langganan.Solusi: Pengenaan biaya berikutnya akan gagal dan langganan akan beralih ke on_hold. Pantau webhook untuk payment.failed.

Halaman Terkait