インドの決済方法が重要な理由
UPI Dominance
UPIは月間100億件以上の取引を処理します。多くのインドの顧客は国際カードを持っていません。
Low Transaction Costs
UPIの取引手数料はほぼゼロです。取引量が多く、取引単価が低い場合に最適です。
Subscription Support
ほとんどの代替決済方法とは異なり、UPIおよびインド発行のすべてのカード(Visa、Mastercard、Rupayなど)は、RBI mandateによる継続課金に対応しています。
対応している方法
*サブスクリプションには、特別な処理ルールを伴うRBI準拠のmandateが必要です。48時間の処理遅延は、インド発行のすべてのカードとUPIに適用されます。
設定
API Method Types
例:インド向けCheckout
UPIの要件
UPIをCheckoutに表示するには、次の条件を満たす必要があります。- Billing countryがインドであること(
IN) - CurrencyがINRであること
- インド国外のMerchantの場合:Adaptive Currencyが有効になっていること
RBI Mandateによるサブスクリプション
インドの決済方法を使用するサブスクリプションは、RBI(Reserve Bank of India)の規制に基づいて運用され、独自の要件があります。RBI Mandateの仕組み
Mandateの種類
顧客の銀行に登録される金額は
max(mandate_floor, billing_amount)です。そのため、floorを下回る金額を請求する場合、floorは実質的に顧客に表示される承認上限となります。
**プラン変更に関する重要事項:**アップグレードによって既存のmandate上限を超える請求が発生する場合、請求は失敗し、顧客は再承認する必要があります。
設定可能なMandate Floor
INR e-mandateのmandate floorは、mandate_min_amount_inr_paiseフィールド(INR paise単位 — 1 INR = 100 paise)で設定できます。システムのデフォルトである₹15,000は、次の3つのレベルで上書きできます。
適用の優先順位:リクエスト単位の上書き → Merchant設定 → システムデフォルト。
floorを高く設定すると、顧客に再承認を求めることなく、後からより高額な単発請求(たとえばプランのアップグレードや従量課金による超過料金)に対応できます。floorを低く設定すると、顧客の承認額を実際の請求額に近づけられますが、将来の変動請求に対応する余裕は小さくなります。
48時間の処理遅延
これは国際カード決済との最も重要な違いです。1
Charge Initiated (Day 0)
スケジュールされた更新日に、Dodoが銀行に請求を開始します。
2
Pre-Debit Notification
顧客は、今後予定されている引き落としについて銀行から通知を受け取ります。
3
48-Hour Window
顧客はこの期間中、銀行アプリからmandateをキャンセルできます。
4
Debit Completed (~48-51 hours)
48時間後(銀行の処理にさらに最大3時間かかる場合があります)に、資金が引き落とされます。
5
Webhook Sent
payment.succeeded webhookは、開始時ではなく実際の引き落とし後に送信されます。48時間の猶予期間の処理
インドのサブスクリプション向けWebhookイベント
テスト
UPIテストID
インドのカードテスト番号
ベストプラクティス
Plan for the 48-hour delay
Plan for the 48-hour delay
請求開始から実際のPaymentまでの間隔に対応できるよう、アプリケーションを構築してください。次の点を検討します。
- サブスクリプションアクセスの猶予期間
- 処理時間について顧客に明確に伝えること
- 日付ではなくwebhookを起点としたfulfillment
Handle mandate cancellations
Handle mandate cancellations
顧客はいつでも銀行アプリからmandateをキャンセルできます。
subscription.on_hold webhookを監視し、再度サブスクライブするかPayment methodを更新するよう顧客に促してください。Set appropriate mandate amounts
Set appropriate mandate amounts
変動価格(例:従量課金)では、Rs 15,000のオンデマンドmandateで十分かどうかを検討してください。請求額がこれを超える可能性がある場合、顧客は再承認する必要があります。
Offer UPI prominently
Offer UPI prominently
インドの顧客には、UPIを主要な決済オプションにすることを推奨します。多くのユーザーは、使い慣れていて手間が少ないため、カードよりもUPIを好みます。
トラブルシューティング
UPI not appearing at checkout
UPI not appearing at checkout
確認事項:
- Billing countryが
INに設定されていますか? - Currencyが
INRに設定されていますか? - インド国外のMerchantの場合:Adaptive Currencyが有効になっていますか?
upi_collectがallowed_payment_method_typesに含まれていますか?
country: "IN"とbilling_currency: "INR"が含まれていることを確認してください。Subscription charge failed after upgrade
Subscription charge failed after upgrade
**原因:**新しい請求額が既存のmandate上限(Rs 15,000のしきい値)を超えています。**解決策:**顧客はPayment methodを更新し、正しい上限で新しいmandateを設定する必要があります。
Subscription on hold but customer claims they didn't cancel
Subscription on hold but customer claims they didn't cancel
**原因:**顧客が48時間の期間中にmandateをキャンセルしたか、銀行が引き落としを拒否した可能性があります。**解決策:**顧客はmandateを再承認するか、Payment methodを更新する必要があります。
Payment deduction delayed beyond 48 hours
Payment deduction delayed beyond 48 hours
**原因:**銀行APIの遅延により、処理にさらに2〜3時間かかる場合があります。**解決策:**これは想定される動作です。合計で約51時間までの変動する遅延に対応できるよう、システムを構築してください。
Mandate cancelled but subscription still active
Mandate cancelled but subscription still active
**原因:**RBI規制におけるエッジケースです。処理期間中のmandateのキャンセルは、サブスクリプションを直ちにはキャンセルしません。**解決策:**次回の請求は失敗し、サブスクリプションは
on_holdに移行します。payment.failedのwebhookを監視してください。関連ページ
Payment Methods Overview
対応しているすべての決済方法を確認できます。
Subscriptions
RBI mandateを含むサブスクリプションの完全なドキュメントです。
Webhooks
Paymentイベントのwebhook処理について説明します。
Testing Process
UPI IDやインドのカードを含むすべてのテストデータです。