인도 결제 방법이 중요한 이유
UPI Dominance
UPI는 매월 200억 건 이상의 거래를 처리하며, 많은 인도 고객은 international card를 보유하고 있지 않습니다.
Low-Value Payments
UPI는 거래량이 많고 금액이 낮은 거래에 적합합니다.
Subscription Support
대부분의 alternative payment method와 달리 Visa, Mastercard, RuPay를 포함한 UPI 및 인도 발급 카드는 RBI mandate를 통한 recurring payment를 지원합니다.
지원되는 결제 수단
표에는 각 payment method와 subscriptions 지원 여부가 나와 있습니다:
*Subscriptions에는 특별한 processing rules가 적용되는 RBI-compliant mandates가 필요합니다. 48시간 processing delay는 모든 인도 발급 카드, UPI 및 Apple Pay의 recurring charges에 적용됩니다.
INR로 청구되는 payment는 최소 ₹5.00 이상이어야 하며 USD minimum equivalent 이상이어야 합니다. 일회성 payments는 $0.50, subscriptions는 $1.00입니다. Minimum Amounts를 참조하세요.
구성
API Method Types
다음 값을allowed_payment_method_types에 전달합니다:
예시: 인도 중심 Checkout
이 session은 인도의 고객에게 UPI, cards 및 Apple Pay를 제공하며 INR로 청구됩니다:UPI 요구 사항
다음 조건을 모두 충족하는 경우에만 Checkout에 UPI가 표시됩니다:- 청구 국가가 인도입니다(
IN). - 청구 통화가 INR입니다.
- 인도 외부의 merchant가 제공하는 구독의 경우 Adaptive Currency가 활성화되어 있습니다. 제품 가격이 INR로 설정된 경우 일회성 Checkout에는 Adaptive Currency가 필요하지 않습니다.
RBI Mandate를 사용하는 구독
UPI 또는 인도 발급 카드로 결제하는 구독에는 RBI(Reserve Bank of India) mandate가 적용되며, 다른 결제 수단에는 없는 규칙이 추가됩니다.RBI Mandate 작동 방식
고객은 구독할 때 mandate를 승인합니다. 이후 각 갱신 청구는 pre-debit 알림 후 48시간이 지나야 은행에서 자금이 인출됩니다:Mandate 유형
Mandate 유형은 구독 금액이 mandate floor와 비교해 어느 수준인지에 따라 결정됩니다:
고객의 은행에 등록되는 금액은
max(mandate_floor, billing_amount)입니다. 청구 금액이 floor보다 낮으면 floor가 고객에게 표시되는 authorization ceiling이 됩니다.
Plan changes: 업그레이드로 인해 기존 mandate 한도를 초과하는 청구가 발생하면 청구가 실패하고 고객은 다시 승인해야 합니다.
Configurable Mandate Floor
mandate_min_amount_inr_paise 필드를 사용하여 INR e-mandate의 mandate floor를 INR paise 단위로 설정합니다(₹1 = 100 paise).
시스템 기본값인 ₹15,000은 다음 세 가지 수준에서 재정의할 수 있습니다:
Dodo Payments는 설정된 값 중 요청별 재정의 값, merchant 설정, system 기본값 순서로 처음 설정된 값을 사용합니다.
floor를 설정하려면 create a checkout session 시 요청 본문에
mandate_min_amount_inr_paise를 전달합니다. 사용 중단된 Create Subscription endpoint도 동일한 필드를 지원합니다.
floor를 높이면 나중에 Plan upgrade나 사용량 기반 초과 요금과 같은 더 큰 일회성 청구를 진행할 때 고객에게 다시 승인을 요청하지 않아도 됩니다. floor를 낮추면 고객의 승인이 실제 청구 금액에 더 가까워지지만, 향후 변동 청구에 사용할 수 있는 여유가 줄어듭니다.
48시간 처리 지연
인도 카드 또는 UPI의 갱신 청구는 갱신일로부터 약 48시간 후에 완료됩니다. 이는 international card 결제와 가장 크게 다른 점입니다:1
Charge Initiated (Day 0)
예정된 갱신일에 Dodo Payments가 은행에 청구를 시작합니다.
2
Pre-Debit Notification
고객의 은행이 예정된 인출에 대해 고객에게 알립니다.
3
48-Hour Window
이 기간 동안 고객은 banking app에서 mandate를 취소할 수 있습니다.
4
Debit Completed (~48-51 Hours)
48시간이 지나고 은행 처리에 최대 3시간이 추가로 소요되면 은행에서 자금을 인출합니다.
5
Webhook Sent
Dodo Payments는 청구를 시작할 때가 아니라 실제 인출이 완료된 후
payment.succeeded webhook을 전송합니다.48시간 처리 기간 처리
갱신일이 아니라 payment webhook을 기준으로 액세스 권한을 제공하세요:인도 구독의 Webhook Events
UPI 또는 인도 발급 카드로 결제하는 구독에 대해 다음 이벤트를 처리하세요:테스트
UPI Test IDs
테스트 모드에서 다음 UPI ID를 입력하여 각 결과를 시뮬레이션합니다:인도 카드 Test Numbers
다음 인도 발급 test card를 사용합니다:모범 사례
Plan for the 48-hour delay
Plan for the 48-hour delay
애플리케이션이 청구 시작과 실제 결제 사이의 간격을 처리하도록 구축하세요. 다음 사항을 고려하세요:
- 구독 액세스를 위한 grace period
- 처리 시간에 대한 고객과의 명확한 커뮤니케이션
- 날짜 기반 fulfillment가 아닌 webhook 기반 fulfillment
Handle mandate cancellations
Handle mandate cancellations
고객은 언제든 banking app에서 mandate를 취소할 수 있습니다.
subscription.on_hold webhook을 모니터링하고 고객에게 다시 구독하거나 payment method를 업데이트하도록 안내하세요.Set appropriate mandate amounts
Set appropriate mandate amounts
사용량 기반 청구와 같은 variable pricing의 경우 mandate floor(기본값 ₹15,000)의 on-demand mandate가 가장 큰 청구 금액을 충당하는지 확인하세요. 청구 금액이 이를 초과할 수 있다면
mandate_min_amount_inr_paise를 사용하여 floor를 높이세요. 그렇지 않으면 고객은 새 mandate를 승인해야 합니다.Offer UPI prominently
Offer UPI prominently
인도 고객에게는 UPI를 기본 payment option으로 제공하세요. 많은 고객이 UPI에 익숙하고 사용 과정이 더 간편하기 때문에 카드보다 UPI를 선호합니다.
문제 해결
UPI not appearing at checkout
UPI not appearing at checkout
확인할 사항:
- 청구 국가가
IN로 설정되어 있나요? - 청구 통화가
INR로 설정되어 있나요? - 인도 외부의 merchant인 경우 Adaptive Currency가 활성화되어 있나요?
upi_intent가allowed_payment_method_types에 포함되어 있나요?
country: "IN"를 설정하고 billing_currency: "INR"를 설정합니다. Adaptive Currency가 비활성화되어 있으면 API가 billing_currency를 무시하므로 제품 가격을 INR로 설정하세요.Subscription charge failed after upgrade
Subscription charge failed after upgrade
원인: 새 청구 금액이 기존 mandate 한도, 즉 mandate floor(기본값 ₹15,000) 또는 더 높은 경우 구독 금액을 초과합니다.해결 방법: 고객은 올바른 한도로 새 mandate를 설정하기 위해 payment method를 업데이트해야 합니다.
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
원인: Bank API 지연으로 인해 처리가 2~3시간 더 길어질 수 있습니다.해결 방법: 이는 예상되는 동작입니다. 총 최대 약 51시간의 지연을 처리할 수 있도록 시스템을 구축하세요.
Mandate cancelled but subscription still active
Mandate cancelled but subscription still active
원인: RBI 규정의 예외적인 경우로, 처리 기간 동안 mandate를 취소해도 subscription이 즉시 취소되지 않습니다.해결 방법: 다음 청구가 실패하고 subscription이
on_hold로 이동합니다. payment.failed에 대한 webhook을 모니터링하세요.관련 페이지
Payment Methods Overview
지원되는 모든 payment method를 확인하세요.
Subscriptions
RBI mandate를 포함한 전체 subscription 문서입니다.
Webhooks
payment event에 대한 webhook 처리입니다.
Testing Process
UPI ID와 인도 카드를 포함한 모든 test data입니다.