Documentation

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:

  1. Customer will initiate the checkout process from the merchant's website.
  2. Merchant will display the eNACH option to the consumer.
  3. Consumer will provide input of bank account details and select the E-NACH option.
  4. Merchant will initiate the Create Mandate request API to NDPS.
  5. NDPS will validate the API request.
  6. Once validation is successfully done, NDPS will trigger the request to NPCI.
  7. NPCI will validate the request and forward it to the customer’s bank.
  8. Customer’s bank will validate the request and initiate the authorization process.
  9. 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.
  10. Destination Bank (i.e., customer bank) will validate the Mandate and send the response to NPCI.
  11. NPCI will validate the response and share it with NDPS.
  12. NDPS will save and trigger the response to the merchant.
  13. 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

  1. 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).
  2. Merchant sends an Execute Mandate API Request to NDPS.
  3. NDPS sends the Execute Mandate API Response back to the merchant.
  4. If enabled, the merchant triggers the pre-debit notification to the customer via SMS/Email.
  5. 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.
  6. Sponsor bank processes this file before the 1:00 PM transaction file cutoff.
  7. Sponsor bank sends the transaction file to NPCI for debit execution.
  8. NPCI processes the file and forwards it to the Destination Bank.
  9. Destination bank executes the debit transaction, returning a result (Success/Failure) to NPCI.
  10. NPCI sends an Acknowledgement Report (for initial rejects).
  11. Result transactions are communicated through a Final Response Report (by 9:30 PM on T Day).
  12. NDPS updates the failure records as present.
  13. 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:

  1. Mandate Creation
  2. Mandate Execution
  3. 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.

  1. 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.
  2. 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.
  3. 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

  1. Mandate Create/Update/Revoke API
CodeMessageDescription
2001InitiatedMandate Initiated Successfully
2002CreatedMandate Created Successfully
2003UpdatedMandate Updated Successfully
2004RevokedMandate Revoked Successfully
5000FailedBank Failure Reason (Default: Payment Failed)
5001CancelledMandate Cancelled
5002FailedInvalid Request Data
5003FailedMandate Not Found
5004FailedSubchannel Not Configured
5005FailedInvalid Merchant
5006FailedFailed To Get Generate Transaction ID
5007FailedInvalid Amount
5008FailedInvalid Product Amount
5009FailedInvalid Auto Execute Parameter Value
5010FailedInvalid Revokable Parameter Value
5011FailedInvalid Block Fund Parameter Value
5012FailedInvalid Retryable Parameter Value
5013FailedInvalid First Debit Parameter Value
5014FailedInvalid Validate Account Parameter Value
5015FailedInvalid Debit Day Value
5016FailedInvalid Validity Start Date Format
5017FailedInvalid Validity End Date Format
5018FailedInvalid CollectByDate Format
5019FailedInvalid Merchant ID
5020FailedDebit Day Out Of Range For Requested Frequency
5021FailedInvalid Debit Day For Requested Debit Rule
5022FailedInvalid Debit Rule
5023FailedInvalid Purpose For Requested Frequency
5024FailedInvalid Revokable For Requested Frequency
5025FailedInvalid Validity Date
5026FailedInvalid Collect By Date
5027FailedAuto-Execution Not Allowed For Requested Amount Limit
5028FailedFund Block Not Allowed For Requested Frequency
5029FailedFirst Debit Should Be Allowed For Requested Amount Limit
5030FailedRetryable Not Available for Auto-Execution
5031FailedInvalid Account Details
5032FailedDuplicate Product
5033FailedInvalid Products
5034FailedMulti Prod Transaction Not Allowed
5035FailedTotal Of All Product Amount Should Be Equal To Amount
5036FailedBMS Response Not Present
5037FailedFailed response from BMS
5038FailedFailed to Persist Mandate Details
5039FailedFailed to Update Mandate Details
5040FailedCannot Update As Mandate Is Not Yet Created
5041FailedCannot Revoke As Mandate Is Not Yet Created
5042FailedAuto-Execute Should Not Be Blank
5043FailedRevokable Should Not Be Blank
5044FailedBlock Fund Should Not Be Blank
5045FailedRetryable Should Not Be Blank
5046FailedFirst Debit Should Not Be Blank
5047FailedValidate Account Should Not Be Blank
5048FailedInvalid Validity End Date
5049FailedDebit Rule Should Not Be Null/Empty
5050FailedFirst Debit Should Not Be Allowed For Requested Frequency
5051FailedThe Requested Frequency Allows For A Maximum Validity Date Range Of 30 Days
5053FailedMultiple Account Details Not Allowed
5054FailedAuto-Execution Not Allowed For Requested Frequency
5055FailedInvalid Mobile Number Format
5056FailedMandate Creation Not Allowed For Requested AuthMode And BankCode
5057FailedFailed To Fetch MCGS PG Details
5058FailedAn Error Occurred During The Generation Of The NPCI Request
5059FailedMerchant ID Does Not Match With The Encrypted Merchant ID
5060FailedFailed To Decrypt The Request
5061FailedFailed Response From MCGS
5062FailedFailed To Validate BankCode
5063FailedExecution Date Not Within Validity Period
5065FailedBank Detail Not Configured
5066FailedUpdate Request Invalid - No Values Provided To Update
5067FailedUpdate Request Invalid - No Update Required
5068FailedMandate Update Not Permitted
5069FailedMandate Revoke Not Permitted
  1. Mandate Callback API
CodeMessageDescription
2000SuccessMandate Executed Successfully
2002PendingMandate Execution Pending
5000FailedMandate Execution Failed
5001FailedValidation Failed
5002FailedHandler Not Found For This Request
5003FailedMandate Not Found
5004FailedMandate Not Created Yet
5005FailedMandate Not Yet Started
5006FailedMandate Expired
5007FailedMandate Execution Not Permitted
5008FailedMandate Already Executed, Cannot Re-Execute
5009FailedMandate Execution Max Retry Limit Reached
5010FailedMandate Re-Execution Not Permitted
5011FailedInvalid Merchant
5012FailedDuplicate Merch Txn ID
5013FailedDuplicate Product
5014FailedInvalid Product
5015FailedMulti Product Not Allowed
5016FailedAmount Should Be Equal To Fixed Limit
5017FailedAmount Should Be Less Than Or Equal To Max Limit
5018FailedTotal Of All Product Amount Should Be Equal To Amount
5019FailedFailed To Generate Transaction ID
5020FailedDebit Day Range Error
5021FailedNotification Not Found
5022FailedExecution Not Notified
5023FailedInvalid Execution Date
5024FailedExecution Must Be Done Prior 9 AM On Transaction Day
5024FailedExecution Must Be Done Prior 2 Days Of Transaction Day
  1. Mandate Notify API
CodeMessageDescription
2000SuccessMandate Notified Successfully
5000FailedMandate Notification Failed
5001FailedValidation Failed
5002FailedMandate Not Found
5003FailedMandate Not Created Yet
5004FailedMandate Not Yet Started
5005FailedMandate Expired
5006FailedDuplicate Merchant Txn ID
5007FailedUMN Not Linked To The Payer VPA
5008FailedMandate Already Executed, Cannot Re-Execute
5009FailedNotifications Are Only Allowed Between 96 to 48 Hours Of The Debit Day
5010FailedNotification Max Retry Limit Reached
5011FailedExecution Date Not In Valid Execution Window
5012FailedExecution Date Not In Valid Execution Sequence
5013FailedInvalid Execution Date
5014FailedDebit Day Range Error

Do's and Don'ts

APIDo'sDon'ts
Create MandateMaintain scheduler at your end if autoExecute is 'N'Send request with authentication mode that is not eligible for mandate creation.
Execute MandateExecutions must adhere to the configuration as per the Create mandate request
NotificationNotification must be posted 48 hours prior to the scheduled execution
Update MandateOnly initiate executions as per the latest mandate configuration
Revoke MandateDo 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.