Root Cause Diagnosis
A recurring card debit fails when it does not satisfy the conditions of the RBI’s consolidated Digital Payments – E-Mandate Framework, 2026. The framework took effect immediately and applies to cards, UPI and prepaid instruments, domestic and cross-border. The usual causes are a missing or invalid e-mandate registration, a debit amount above the no-AFA limit, a pre-debit notification not sent 24 hours ahead, or a mandate that did not carry over to a reissued card or token. Registration requires one-time AFA, and later debits can skip AFA only up to ₹15,000 per transaction, or ₹1 lakh for insurance premiums, mutual fund subscriptions and credit card bill payments. A debit that breaks any of these rules is declined by the issuer, because an unattended debit cannot present an OTP.
Quick Fix
No shell command applies. The fastest fix is to delete the failing mandate and register it again with fresh authentication.
- In the issuer’s app, open Cards → [Your Card] → Manage Card / Card Controls.
- Enable Online / E-commerce transactions (and International transactions if the merchant is foreign).
- Open Cards → Standing Instructions / E-Mandates (the label varies by bank), delete the failing mandate, and re-register it on the merchant’s site. Complete the AFA step.
- Check that the available credit limit covers the next billing amount plus taxes.
Step-by-Step Resolution
1. Identify the decline reason. Open the failed transaction in the issuer app or SMS log and note the reason code. Typical categories are AFA required, limit exceeded, card or token inactive, and mandate not found or expired.
2. Compare the debit amount against the no-AFA limit. Recurring transactions up to ₹15,000 can be processed without AFA, and insurance, mutual funds and credit card bills have a ₹1 lakh limit. A charge above the applicable limit needs AFA at the time of debit, which an unattended debit cannot supply. Check that the merchant is categorised correctly. A merchant coded under a general category gets the ₹15,000 limit even if you consider the payment an insurance premium. The remedies are:
- Pay manually when the charge exceeds the limit.
- Ask the merchant to restructure the plan so each charge stays within the limit.
Do not split one obligation into smaller debits to avoid AFA. Issuers and acquirers can flag this pattern.
3. Verify the mandate was registered with AFA. The first transaction under an e-mandate must pass AFA validation. If the mandate was created through a legacy flow, a bank migration or a gateway “save card” option, no valid mandate may exist on the issuer side. Re-register as in the Quick Fix.
4. Confirm pre-debit notification delivery. The issuer must send a pre-transaction notification at least 24 hours before the charge. It must state at minimum the merchant name, amount, date and time of debit, e-mandate reference number and reason for debit. Make sure:
- Your registered mobile number and email at the bank are current.
- DND or SMS filters are not blocking transactional messages.
- You have not opted out of notifications. Customers have an option to opt out of the pre-debit notification. Ask the issuer how an opt-out interacts with their debit-processing logic.
5. Check card status and token state. Debit fails if the card is blocked, expired, over its limit, or has online or international usage disabled. After a replacement, issuers are permitted to map existing e-mandates to the reissued card, but the mapping depends on the issuer’s implementation. If the merchant stores a token, check it is still active and tied to the new card.
6. Merchant-side pre-flight check (for developers). This logic is illustrative. Adapt field names to your payment gateway’s API.
NO_AFA_LIMIT_DEFAULT = 15_000
NO_AFA_LIMIT_ESSENTIAL = 100_000
ESSENTIAL_CATEGORIES = {"insurance", "mutual_fund", "credit_card_bill"}
def can_debit_unattended(amount_inr: int, category: str,
mandate_active: bool, first_txn_afa_done: bool,
pre_debit_notified_hours_ago: float) -> tuple[bool, str]:
if not mandate_active:
return False, "MANDATE_INACTIVE"
if not first_txn_afa_done:
return False, "AFA_NOT_COMPLETED_AT_REGISTRATION"
limit = NO_AFA_LIMIT_ESSENTIAL if category in ESSENTIAL_CATEGORIES else NO_AFA_LIMIT_DEFAULT
if amount_inr > limit:
return False, "AMOUNT_ABOVE_NO_AFA_LIMIT"
if pre_debit_notified_hours_ago < 24:
return False, "PRE_DEBIT_WINDOW_NOT_MET"
return True, "OK"
Log the reason code returned by the gateway for every failure, so you can tell issuer-side declines from merchant-side configuration errors.
Why This Fails for Some Users
- Merchant category mismatch: The merchant’s category code determines which limit applies. A wrong code can apply the ₹15,000 cap to a payment that qualifies for ₹1 lakh.
- Reissued or replaced cards: Mandate mapping is permitted but not guaranteed. Cards replaced after loss or fraud blocking often need manual re-registration.
- Foreign merchants: The framework covers cross-border recurring payments, such as international software subscriptions. Some overseas merchants or acquirers still do not support the Indian e-mandate flow. Their debits are declined even when the card is configured correctly.
- Variable-amount billing: Usage-based plans can cross the no-AFA threshold in a given cycle, so the same subscription works in some months and fails in others.
- Notification failures: An undelivered pre-debit alert can block or delay the debit on the issuer side. Telecom filtering and outdated contact details are the usual causes.
- Issuer implementation lag: Banks migrated to the April 2026 framework at different speeds, so mandate-management screens and decline codes differ between issuers. If the app shows no mandate list, raise a request through the issuer’s grievance channel.
- Insufficient credit limit or mandate cap: A temporary limit reduction, an unpaid statement or a per-mandate maximum set at registration can decline an otherwise valid debit.
Source: RBI press release and directions, “Digital Payments – E-mandate Framework, 2026,” dated April 21, 2026.