e-NACH Mandate Registration
Banking & CreditRegister recurring debit mandates digitally with net-banking, debit-card or Aadhaar authentication.
Create an electronic mandate, send the customer through bank authentication and receive the registered mandate reference, so EMIs, premiums and subscriptions can be auto-debited from day one.
Endpoint
POST
https://app.emver.io/api/sandbox/v1/enach-mandate
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json
Request parameters
| Field | Type | Description |
|---|---|---|
account_number
required
|
string | Account number |
ifsc
required
|
string | IFSC |
amount
required
|
number | Maximum amount |
frequency
required
|
string | Frequency |
start_date
required
|
date | Start date |
end_date
optional
|
date | End date |
Example request
cURL
curl -X POST https://app.emver.io/api/sandbox/v1/enach-mandate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"account_number": "string",
"ifsc": "string",
"amount": 0,
"frequency": "string",
"start_date": "YYYY-MM-DD",
"end_date": "YYYY-MM-DD"
}'
import requests
response = requests.post(
"https://app.emver.io/api/sandbox/v1/enach-mandate",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Accept": "application/json",
},
json={
"account_number": "string",
"ifsc": "string",
"amount": 0,
"frequency": "string",
"start_date": "YYYY-MM-DD",
"end_date": "YYYY-MM-DD"
},
timeout=60,
)
response.raise_for_status()
data = response.json()
const response = await fetch("https://app.emver.io/api/sandbox/v1/enach-mandate", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
"Accept": "application/json",
},
body: JSON.stringify({
"account_number": "string",
"ifsc": "string",
"amount": 0,
"frequency": "string",
"start_date": "YYYY-MM-DD",
"end_date": "YYYY-MM-DD"
}),
});
const data = await response.json();
$response = Http::withToken('YOUR_API_KEY')
->acceptJson()
->post('https://app.emver.io/api/sandbox/v1/enach-mandate', {
"account_number": "string",
"ifsc": "string",
"amount": 0,
"frequency": "string",
"start_date": "YYYY-MM-DD",
"end_date": "YYYY-MM-DD"
});
$data = $response->json();
Replace YOUR_API_KEY and the placeholder values. Use the switch above to see production URLs.
Response
Structure · 200
{
"status": INTEGER,
"message": STRING,
"data": {
"mandate_id": STRING,
"authentication_url": STRING,
"status": STRING,
"umrn": STRING
}
}
Example · 200
{
"status": 200,
"message": "string",
"data": {
"mandate_id": "string",
"authentication_url": "string",
"status": "string",
"umrn": "string"
}
}
Error · 4xx / 5xx
{
"status": INTEGER,
"message": STRING
}
See Errors & status codes for what each status means and which calls are billed.
About this API
Send the mandate terms — amount, frequency, start and end dates, bank details. The API returns an authentication link; once the customer completes it, the mandate status and UMRN come back synchronously or by webhook.
Consent. The customer authenticates the mandate with their bank; that authentication is the consent.
Typical uses
- Loan EMIs. Register the mandate at disbursal.
- Insurance premiums and subscriptions. Recurring collections without cheques.
Questions
- Which authentication modes are supported?
- Net banking, debit card and Aadhaar-based authentication, subject to the destination bank.