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

Dominasi UPI

UPI memproses 10B+ transaksi/bulan. Banyak pelanggan India tidak memiliki kartu internasional.

Biaya Transaksi Rendah

UPI memiliki biaya transaksi mendekati nol. Sangat baik untuk transaksi bernilai rendah dalam volume tinggi.

Dukungan Langganan

Tidak seperti 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

TipeDeskripsi
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 di checkout:
  1. Negara penagihan harus India (IN)
  2. Mata Uang harus INR
  3. Untuk pedagang non-India: Mata Uang Adaptif harus diaktifkan
Jika Anda adalah pedagang non-India dan Mata Uang Adaptif tidak diaktifkan, UPI tidak akan tersedia untuk 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

Pengisian Dimulai (Hari 0)

Pada tanggal pembaruan yang dijadwalkan, Dodo memulai pengisian dengan bank.
2

Pemberitahuan Pra-Debet

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

Jendela 48 Jam

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

Debit Selesai (~48-51 jam)

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

Webhook Dikirim

payment.succeeded webhook dikirim setelah debit aktual, bukan saat inisiasi.
Jangan memberikan manfaat pada saat inisiasi pengisian. Tunggu untuk webhook payment.succeeded, yang tiba ~48-51 jam setelah tanggal pengisian 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

AcaraKapanTindakan
subscription.createdMandat disetujuiCatat awal langganan
payment.succeeded~48h setelah tanggal pengisianBerikan/lanjutkan akses
payment.failedDebit gagalBeri tahu pelanggan, jeda akses
subscription.on_holdPembayaran gagalMinta pembaruan metode pembayaran
subscription.activeDiaktifkan kembali setelah pembayaranPulihkan akses

Pengujian

ID Tes UPI

StatusID UPI
Suksessuccess@upi
Gagalfailure@upi

Nomor Tes Kartu India

MerekSkenarioNomor KartuMasa BerlakuCVV
VisaSukses457623891277145006/32123
VisaDitolak470613121121212306/32123
MastercardSukses540916266938103406/32123
MastercardDitolak510510510510510006/32123

Praktik Terbaik

Bangun aplikasi Anda untuk menangani celah antara inisiasi pengisian dan pembayaran yang sebenarnya. 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 subscription.on_hold webhook dan minta pelanggan untuk mendaftar ulang atau memperbarui metode pembayaran.
Untuk harga variabel (misalnya, berbasis penggunaan), pertimbangkan apakah mandat sesuai permintaan senilai Rs 15,000 sudah cukup. Jika biaya mungkin melebihi ini, pelanggan perlu mengotorisasi ulang.
Untuk pelanggan India, UPI harus menjadi opsi pembayaran utama. Banyak pengguna lebih menyukainya daripada kartu karena familiaritas dan sedikit gesekan.

Pemecahan Masalah

Periksa:
  1. Negara penagihan diatur ke IN?
  2. Mata uang diatur ke INR?
  3. Jika pedagang non-India: Apakah Mata Uang Adaptif diaktifkan?
  4. upi_collect termasuk di allowed_payment_method_types?
Solusi: Verifikasi alamat penagihan memiliki country: "IN" dan billing_currency: "INR".
Penyebab: Jumlah pengisian baru melebihi batas mandat yang ada (ambang Rs 15,000).Solusi: Pelanggan harus memperbarui metode pembayaran untuk menetapkan 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 mereka.
Penyebab: Penundaan API bank dapat memperpanjang pemrosesan hingga 2-3 jam tambahan.Solusi: Ini diharapkan. Bangun sistem Anda untuk menangani penundaan variabel hingga ~51 jam total.
Penyebab: Kasus tepi dalam regulasi RBI — pembatalan mandat selama jendela pemrosesan tidak segera membatalkan langganan.Solusi: Pengisian berikutnya akan gagal dan langganan akan beralih ke on_hold. Pantau webhook untuk payment.failed.

Halaman Terkait