Accetta UPI e tutte le carte emesse in India con mandati per abbonamenti conformi alle normative RBI. Scopri il ritardo di elaborazione di 48 ore, i limiti dei mandati e la gestione dei webhook.
L’India dispone di un’infrastruttura di pagamento unica, dominata da UPI (oltre il 60% delle transazioni digitali) e dalle carte emesse in India (Visa, Mastercard, Rupay, ecc.). Dodo Payments supporta tutti questi metodi con piena conformità RBI per i mandati degli abbonamenti.
Perché i metodi di pagamento in India sono importanti
UPI Dominance
UPI elabora oltre 10 miliardi di transazioni al mese. Molti clienti indiani non dispongono di carte internazionali.
Low Transaction Costs
UPI ha commissioni di transazione quasi nulle. È eccellente per transazioni ad alto volume e di valore inferiore.
Subscription Support
A differenza della maggior parte dei metodi di pagamento alternativi, UPI e tutte le carte emesse in India (Visa, Mastercard, Rupay, ecc.) supportano i pagamenti ricorrenti tramite mandati RBI.
*Gli abbonamenti richiedono mandati conformi alle normative RBI con regole di elaborazione specifiche. Il ritardo di elaborazione di 48 ore si applica a tutte le carte emesse in India e a UPI.
Soglia del mandato (₹15.000 per impostazione predefinita)
Uguale o superiore alla soglia del mandato
Mandato di importo fisso
Importo esatto dell’abbonamento
L’importo registrato presso la banca del cliente è max(mandate_floor, billing_amount). Pertanto, la soglia rappresenta effettivamente il massimale di autorizzazione visibile al cliente quando la fatturazione è inferiore alla soglia.Importante per le modifiche al piano: se un upgrade genera un addebito superiore al limite del mandato esistente, l’addebito non andrà a buon fine e il cliente dovrà autorizzarlo nuovamente.
La soglia del mandato per gli e-mandate INR è configurabile tramite il campo mandate_min_amount_inr_paise (in paise INR — 1 INR = 100 paise). Puoi sostituire il valore predefinito di sistema di ₹15.000 a tre livelli:
Livello
Dove impostare
Ambito
Per richiesta
mandate_min_amount_inr_paise su una checkout session o subscription
Una transazione
Merchant
Impostazioni dell’attività
Tutte le tue subscription INR
Sistema
—
₹15,000 predefinito
Priorità di risoluzione: sostituzione per richiesta → impostazione del merchant → valore predefinito di sistema.
Abbonamenti INR con carte indiane su connettori non Airwallex
Impostare una soglia più alta consente di supportare in seguito addebiti una tantum più elevati (ad esempio upgrade del piano o eccedenze basate sull’utilizzo) senza costringere i clienti a una nuova autorizzazione. Una soglia più bassa avvicina l’autorizzazione del cliente all’importo effettivamente fatturato, ma riduce il margine disponibile per futuri addebiti variabili.
Questa impostazione influisce solo sugli e-mandate registrati per carte emesse in India (Visa, Mastercard, RuPay) con abbonamenti INR. Gli abbonamenti UPI seguono il proprio flusso AutoPay e non sono interessati.
Questa è la differenza più importante rispetto ai pagamenti con carte internazionali:
1
Charge Initiated (Day 0)
Alla data di rinnovo programmata, Dodo avvia l’addebito presso la banca.
2
Pre-Debit Notification
Il cliente riceve una notifica dalla propria banca relativa all’addebito imminente.
3
48-Hour Window
Durante questo periodo il cliente può annullare il mandato tramite la propria app bancaria.
4
Debit Completed (~48-51 hours)
Dopo 48 ore (più un massimo di 3 ore aggiuntive per l’elaborazione bancaria), i fondi vengono addebitati.
5
Webhook Sent
Il webhook payment.succeeded viene inviato dopo l’addebito effettivo, non al momento dell’avvio.
Non concedere i vantaggi al momento dell’avvio dell’addebito. Attendi il webhook payment.succeeded, che arriva circa 48-51 ore dopo la data programmata dell’addebito.
// 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); }}
Progetta la tua applicazione per gestire l’intervallo tra l’avvio dell’addebito e il pagamento effettivo. Considera:
Periodi di tolleranza per l’accesso agli abbonamenti
Comunicazioni chiare ai clienti sui tempi di elaborazione
Evasione guidata dai webhook, non dalle date
Handle mandate cancellations
I clienti possono annullare i mandati tramite le app bancarie in qualsiasi momento. Monitora i webhook subscription.on_hold e invita i clienti a sottoscrivere nuovamente l’abbonamento o ad aggiornare i metodi di pagamento.
Set appropriate mandate amounts
Per i prezzi variabili (ad esempio, basati sull’utilizzo), valuta se un mandato on-demand di 15.000 Rs sia sufficiente. Se gli addebiti potrebbero superare questo importo, i clienti dovranno autorizzare nuovamente il mandato.
Offer UPI prominently
Per i clienti indiani, UPI dovrebbe essere l’opzione di pagamento principale. Molti utenti lo preferiscono alle carte per la familiarità e la maggiore semplicità.
Se il merchant non è indiano: Adaptive Currency è abilitato?
upi_collect è incluso in allowed_payment_method_types?
Soluzione: verifica che l’indirizzo di fatturazione contenga country: "IN" e billing_currency: "INR".
Subscription charge failed after upgrade
Causa: il nuovo importo dell’addebito supera il limite del mandato esistente (soglia di 15.000 Rs).Soluzione: il cliente deve aggiornare il metodo di pagamento per stabilire un nuovo mandato con il limite corretto.
Subscription on hold but customer claims they didn't cancel
Causa: il cliente potrebbe aver annullato il mandato durante la finestra di 48 ore oppure la banca potrebbe aver rifiutato l’addebito.Soluzione: il cliente deve autorizzare nuovamente il mandato o aggiornare il metodo di pagamento.
Payment deduction delayed beyond 48 hours
Causa: i ritardi dell’API bancaria possono prolungare l’elaborazione di altre 2-3 ore.Soluzione: è un comportamento previsto. Progetta il sistema per gestire ritardi variabili fino a circa 51 ore complessive.
Mandate cancelled but subscription still active
Causa: caso limite nelle normative RBI: l’annullamento del mandato durante la finestra di elaborazione non annulla immediatamente l’abbonamento.Soluzione: il prossimo addebito non andrà a buon fine e l’abbonamento passerà a on_hold. Monitora i webhook per payment.failed.