eNACH
Introduction
eNACH enables merchants to receive recurring payments for services/products offered on a periodic/recurring basis.
- Merchant customers can create an eNACH mandate using Net Banking, Debit Card, or Aadhaar.
- The underlying account will be the customer's bank account.
Using the eNACH service, your customers can:
- Enroll to make automatic payments to the merchants.
- Approve the e-mandate through Net Banking, Debit Card, or Aadhaar.
This feature allows:
- Easy and automated payment recollections for merchants.
- Customers to avoid delayed payments, discontinued services, or late fees for non-timely payments.
Merchants can get eNACH enabled for their customers to enroll for automated recurring payments.
- The frequency (i.e., the fixed regular interval) is pre-configured as per the merchant’s discretion.
- The customer agrees to the interval and amount.
- The customer approves the creation of the mandate as per the set inputs.
Process Flow
Mandate Creation
This is a merchant-initiated call for the creation of a Mandate request, leading to Mandate registration at NPCI after the customer authorizes the request on their bank page. Below is the process of mandate registration:
- Customer will initiate the checkout process from the merchant's website.
- Merchant will display the eNACH option to the consumer.
- Consumer will provide input of bank account details and select the E-NACH option.
- Merchant will initiate the Create Mandate request API to NDPS.
- NDPS will validate the API request.
- Once validation is successfully done, NDPS will trigger the request to NPCI.
- NPCI will validate the request and forward it to the customer’s bank.
- Customer’s bank will validate the request and initiate the authorization process.
- Authorization:
- Customer will authorize the creation of the mandate on their bank page either by Net Banking, Debit Card, or Aadhaar and confirm it by entering the OTP received from the destination bank.
- Destination Bank (i.e., customer bank) will validate the Mandate and send the response to NPCI.
- NPCI will validate the response and share it with NDPS.
- NDPS will save and trigger the response to the merchant.
- Merchant will save the UMN number against which future executions will be triggered.
Below are the key attributes regarding Mandate Creation:
Recurrence Value (debitDate), Pattern (frequency), and Rule (debitRule):
- Frequency: The following are the frequencies of payments that can be configured – OT, DL, WK, MT, BM, QT, YR, AS, corresponding to ‘one time’, ‘daily’, ‘weekly’, ‘monthly’, ‘bimonthly’, ‘quarterly’, ‘yearly’, and ‘as presented’.
- Debit Rule: Recurrence rule defines when debit can be done. It can be ‘ON’ in ENACH. In ENACH, the start date of the mandate is considered as Debit Date for fixed frequency, and for other than fixed frequency such as ‘As Presented’ and one time, the mandate can be executed between the mandate start and mandate end date.
Amount Rule:
- Amount rule can have either “maximum” or “fixed”. Where ‘maximum’ implies that the amount can vary with every execution request.
- Example: Consider the amount as 1200/-, and rule value as ‘M’ then the payee can debit any value up to 1200/- per debit but if the value is ‘F’, then the payee can debit only the exact amount i.e., 1200/-.
Validity:
- Merchant must establish and declare the start and end date, denoting the validity of the mandate.
UMRN:
- It’s a Unique Mandate Registration Number generated at the time of mandate creation if the mandate has been successfully authenticated by the customer.
Mandate Execution
- Merchant initiates the mandate execution process.
- This can occur with a cutoff time of T-2 Day at 11:45 PM (for certain frequencies) or T Day at 9:00 AM (for frequencies like AS, DL, & OT).
- Merchant sends an Execute Mandate API Request to NDPS.
- NDPS sends the Execute Mandate API Response back to the merchant.
- If enabled, the merchant triggers the pre-debit notification to the customer via SMS/Email.
- NDPS generates a transaction file:
- At 3:00 AM on T Day for T-2 Day requests.
- At 9:00 AM for T Day requests.
- Sponsor bank processes this file before the 1:00 PM transaction file cutoff.
- Sponsor bank sends the transaction file to NPCI for debit execution.
- NPCI processes the file and forwards it to the Destination Bank.
- Destination bank executes the debit transaction, returning a result (Success/Failure) to NPCI.
- NPCI sends an Acknowledgement Report (for initial rejects).
- Result transactions are communicated through a Final Response Report (by 9:30 PM on T Day).
- NDPS updates the failure records as present.
- Final transaction status is sent to the merchant via Callback, with statuses like Accept, Reject, or Pending.
The executions can occur as per one of the below mechanisms:
Scheduled at NDPS:
- Auto scheduling the executions can be done by posting ‘Y’ for the ‘autoExecute’ parameter. In such cases, executions are handled by NDPS and the merchant will not trigger notifications or executions.
- Pre-requisites:
- Value in the ‘amountLimit’ parameter must be ‘fixed’.
- Value in the ‘debitRule’ parameter must be other than ‘OT’ or ‘AS’.
- Value in the ‘retry’ parameter must always be ‘N’.
- APIs Triggered via Scheduler:
- Notification API
- Execution API
Scheduled by Merchant:
- On posting ‘N’ for the ‘autoExecute’ parameter, the execution will be initiated from the merchant’s end. In this case, notifications and executions are to be handled by the merchant themselves.
Notification
As per RBI guidelines, merchants are required to inform their customers about the debit transaction 2 days prior to the debit day. Either the merchant can initiate the pre-debit notification to the customer or NDPS can trigger the notification via SMS to the merchant's customer if the merchant has opted to send the notification through NDPS on T-4 to T-2 days for fixed frequency or on T Day for ADHO/One-time Frequency. Merchants must contact their RM to enable this service.
Callback
Web hook to post the details for transactions with updated status for:
- Mandate Creation
- Mandate Execution
- Mandate Update/Revoke
Transaction Status
Merchants can always fetch the status of the following using the Transaction Status API: a) Mandate Creation b) Execution c) Update/Revoke
Reports
Below are the reports available in Recurring Payments. These reports are available on both the Merchant Console and Admin Console so that they can be consumed by merchants as well as by internal teams.
- Transaction Report in 'View Transaction Report' menu: This report provides an overview of transactions and consists of transaction status, UMRN, transaction date, settlement date along with other relevant fields.
- Mandate Report in new 'Recurring Mandate' menu: This report provides the status of mandates and consists of UMRN, start date, end date along with other relevant fields.
- Notification Report in new 'Recurring Mandate' menu: This report can be referred to know the status of notifications sent to the merchant's customer.
The reports can be viewed and downloaded from the Merchant Console and Admin Console.
For Mandate & Notification Report: Mandates & associated notification reports can be accessed and downloaded from the Merchant Console in the menu: Transactions and Recurring Mandates`.
Transaction Report:
Transactions shall be available in the transaction report downloaded from merchant console m menu Transactions View Transactions.
Status Codes
- Mandate Create/Update/Revoke API
| Code | Message | Description |
|---|---|---|
| 2001 | Initiated | Mandate Initiated Successfully |
| 2002 | Created | Mandate Created Successfully |
| 2003 | Updated | Mandate Updated Successfully |
| 2004 | Revoked | Mandate Revoked Successfully |
| 5000 | Failed | Bank Failure Reason (Default: Payment Failed) |
| 5001 | Cancelled | Mandate Cancelled |
| 5002 | Failed | Invalid Request Data |
| 5003 | Failed | Mandate Not Found |
| 5004 | Failed | Subchannel Not Configured |
| 5005 | Failed | Invalid Merchant |
| 5006 | Failed | Failed To Get Generate Transaction ID |
| 5007 | Failed | Invalid Amount |
| 5008 | Failed | Invalid Product Amount |
| 5009 | Failed | Invalid Auto Execute Parameter Value |
| 5010 | Failed | Invalid Revokable Parameter Value |
| 5011 | Failed | Invalid Block Fund Parameter Value |
| 5012 | Failed | Invalid Retryable Parameter Value |
| 5013 | Failed | Invalid First Debit Parameter Value |
| 5014 | Failed | Invalid Validate Account Parameter Value |
| 5015 | Failed | Invalid Debit Day Value |
| 5016 | Failed | Invalid Validity Start Date Format |
| 5017 | Failed | Invalid Validity End Date Format |
| 5018 | Failed | Invalid CollectByDate Format |
| 5019 | Failed | Invalid Merchant ID |
| 5020 | Failed | Debit Day Out Of Range For Requested Frequency |
| 5021 | Failed | Invalid Debit Day For Requested Debit Rule |
| 5022 | Failed | Invalid Debit Rule |
| 5023 | Failed | Invalid Purpose For Requested Frequency |
| 5024 | Failed | Invalid Revokable For Requested Frequency |
| 5025 | Failed | Invalid Validity Date |
| 5026 | Failed | Invalid Collect By Date |
| 5027 | Failed | Auto-Execution Not Allowed For Requested Amount Limit |
| 5028 | Failed | Fund Block Not Allowed For Requested Frequency |
| 5029 | Failed | First Debit Should Be Allowed For Requested Amount Limit |
| 5030 | Failed | Retryable Not Available for Auto-Execution |
| 5031 | Failed | Invalid Account Details |
| 5032 | Failed | Duplicate Product |
| 5033 | Failed | Invalid Products |
| 5034 | Failed | Multi Prod Transaction Not Allowed |
| 5035 | Failed | Total Of All Product Amount Should Be Equal To Amount |
| 5036 | Failed | BMS Response Not Present |
| 5037 | Failed | Failed response from BMS |
| 5038 | Failed | Failed to Persist Mandate Details |
| 5039 | Failed | Failed to Update Mandate Details |
| 5040 | Failed | Cannot Update As Mandate Is Not Yet Created |
| 5041 | Failed | Cannot Revoke As Mandate Is Not Yet Created |
| 5042 | Failed | Auto-Execute Should Not Be Blank |
| 5043 | Failed | Revokable Should Not Be Blank |
| 5044 | Failed | Block Fund Should Not Be Blank |
| 5045 | Failed | Retryable Should Not Be Blank |
| 5046 | Failed | First Debit Should Not Be Blank |
| 5047 | Failed | Validate Account Should Not Be Blank |
| 5048 | Failed | Invalid Validity End Date |
| 5049 | Failed | Debit Rule Should Not Be Null/Empty |
| 5050 | Failed | First Debit Should Not Be Allowed For Requested Frequency |
| 5051 | Failed | The Requested Frequency Allows For A Maximum Validity Date Range Of 30 Days |
| 5053 | Failed | Multiple Account Details Not Allowed |
| 5054 | Failed | Auto-Execution Not Allowed For Requested Frequency |
| 5055 | Failed | Invalid Mobile Number Format |
| 5056 | Failed | Mandate Creation Not Allowed For Requested AuthMode And BankCode |
| 5057 | Failed | Failed To Fetch MCGS PG Details |
| 5058 | Failed | An Error Occurred During The Generation Of The NPCI Request |
| 5059 | Failed | Merchant ID Does Not Match With The Encrypted Merchant ID |
| 5060 | Failed | Failed To Decrypt The Request |
| 5061 | Failed | Failed Response From MCGS |
| 5062 | Failed | Failed To Validate BankCode |
| 5063 | Failed | Execution Date Not Within Validity Period |
| 5065 | Failed | Bank Detail Not Configured |
| 5066 | Failed | Update Request Invalid - No Values Provided To Update |
| 5067 | Failed | Update Request Invalid - No Update Required |
| 5068 | Failed | Mandate Update Not Permitted |
| 5069 | Failed | Mandate Revoke Not Permitted |
- Mandate Callback API
| Code | Message | Description |
|---|---|---|
| 2000 | Success | Mandate Executed Successfully |
| 2002 | Pending | Mandate Execution Pending |
| 5000 | Failed | Mandate Execution Failed |
| 5001 | Failed | Validation Failed |
| 5002 | Failed | Handler Not Found For This Request |
| 5003 | Failed | Mandate Not Found |
| 5004 | Failed | Mandate Not Created Yet |
| 5005 | Failed | Mandate Not Yet Started |
| 5006 | Failed | Mandate Expired |
| 5007 | Failed | Mandate Execution Not Permitted |
| 5008 | Failed | Mandate Already Executed, Cannot Re-Execute |
| 5009 | Failed | Mandate Execution Max Retry Limit Reached |
| 5010 | Failed | Mandate Re-Execution Not Permitted |
| 5011 | Failed | Invalid Merchant |
| 5012 | Failed | Duplicate Merch Txn ID |
| 5013 | Failed | Duplicate Product |
| 5014 | Failed | Invalid Product |
| 5015 | Failed | Multi Product Not Allowed |
| 5016 | Failed | Amount Should Be Equal To Fixed Limit |
| 5017 | Failed | Amount Should Be Less Than Or Equal To Max Limit |
| 5018 | Failed | Total Of All Product Amount Should Be Equal To Amount |
| 5019 | Failed | Failed To Generate Transaction ID |
| 5020 | Failed | Debit Day Range Error |
| 5021 | Failed | Notification Not Found |
| 5022 | Failed | Execution Not Notified |
| 5023 | Failed | Invalid Execution Date |
| 5024 | Failed | Execution Must Be Done Prior 9 AM On Transaction Day |
| 5024 | Failed | Execution Must Be Done Prior 2 Days Of Transaction Day |
- Mandate Notify API
| Code | Message | Description |
|---|---|---|
| 2000 | Success | Mandate Notified Successfully |
| 5000 | Failed | Mandate Notification Failed |
| 5001 | Failed | Validation Failed |
| 5002 | Failed | Mandate Not Found |
| 5003 | Failed | Mandate Not Created Yet |
| 5004 | Failed | Mandate Not Yet Started |
| 5005 | Failed | Mandate Expired |
| 5006 | Failed | Duplicate Merchant Txn ID |
| 5007 | Failed | UMN Not Linked To The Payer VPA |
| 5008 | Failed | Mandate Already Executed, Cannot Re-Execute |
| 5009 | Failed | Notifications Are Only Allowed Between 96 to 48 Hours Of The Debit Day |
| 5010 | Failed | Notification Max Retry Limit Reached |
| 5011 | Failed | Execution Date Not In Valid Execution Window |
| 5012 | Failed | Execution Date Not In Valid Execution Sequence |
| 5013 | Failed | Invalid Execution Date |
| 5014 | Failed | Debit Day Range Error |
Do's and Don'ts
| API | Do's | Don'ts |
|---|---|---|
| Create Mandate | Maintain scheduler at your end if autoExecute is 'N' | Send request with authentication mode that is not eligible for mandate creation. |
| Execute Mandate | Executions must adhere to the configuration as per the Create mandate request | |
| Notification | Notification must be posted 48 hours prior to the scheduled execution | |
| Update Mandate | Only initiate executions as per the latest mandate configuration | |
| Revoke Mandate | Do not initiate Execute & Notification APIs for a Revoked Mandate |
FAQ
1. What are the supported frequencies in eNACH?
Supported frequencies include one-time (OT), daily (DL), weekly (WK), monthly (MT), bimonthly (BM), quarterly (QT), yearly (YR), and as presented (AS).
2. What happens if a transaction is missed in the sequence?
In the instance of missed payments, a separate transaction request may be placed, as once a payment fails, it cannot be reinitiated.
3. Do recurring payments support TPV?
Yes, the bank account used for making the payment is verified against the credentials input at the time of mandate approval.
4. Will NTT DATA Payment Services India automatically execute mandates on behalf of merchants?
Yes, the executions for all frequencies except 'On Time' or 'As Presented' can be automatically scheduled by NDPS.
5. What is the key difference between UPI Autopay and eNACH?
In eNACH, customers authorize mandates using Aadhaar, net banking, or debit card details, whereas in UPI Autopay, the payment method is the VPA handle (UPI ID).
6. How does two-factor authentication (2FA) work with mandates?
In case of E-NACH, end user must input the OTP as the second factor of authentication post logging in using credentials.
7. Is there a limit on the duration of a mandate?
A mandate can be created for a maximum duration of 30 years, with the number of billing cycles dependent on the frequency.
8. Do I need to capture mandate payments made by customers?
No, payments made for a mandate, including upfront amounts and subsequent charges, are auto-captured. Mandate and transaction reports can be tracked from merchant console.
9. Can I cancel a mandate?
Yes, you can cancel a mandate using the Mandate Revoke API.
10. What payment methods are available for mandates?
Debit Card and Net Banking.
11. Is there a limit on the debit amount in eNACH?
1 Cr is the maximum limit defined for eNACH.
12. How long does it take to process eNACH payments?
Transactions are processed in real-time, with settlement dependent on the configured cycle at onboarding.
13. Can I charge eNACH payments in international currencies?
No, currently eNACH only supports INR payments.