Recurring collections facilitate collections from customers, individuals, or businesses at pre-defined or regular intervals. These are typically called Mandates.

What are the use cases of Recurring Collections?

Some use cases of recurring collections are.

  • EMIs: Lenders collecting repayments against a loan/credit line
  • Premiums: Insurers or businesses collecting payments toward premium
  • Subscriptions: Platforms collecting regular payments towards services
  • Savings: Platforms facilitating savings from customers at regular intervals
  • Investments: Platforms facilitating investments into various assets

How Decentro Powers Recurring Collections?

Decentro powers recurring collections through 2 key modules.

  • ENACH: This is the NPCI-powered bank account-based mandate platform. The NACH stack is designed for larger ticket sizes and higher flexibility.
  • UPI Auto-pay: This is the NPCI-powered UPI-based platform. The UPI stack is designed for smaller ticket sizes and seamless registration.

ENACH

ENACH is a digital mandate platform built by NPCI on the NACH framework designed to handle recurring payments like EMIs, payables, premiums, etc.

This set of APIs will help you enable auto collections on configured frequency from your consumers.

📘

Note

Please note that not all commercial banks support API-based E-mandates. All the supported banks are available in the Supported Banks API. The platform can use this API to check if the customer's bank supports ENACH.

📘

Coming Soon

Aadhaar based E-mandates

a) Supported Banks

This API can be used to fetch the updated list of Banks and Methods supported by NPCI for E-NACH. Using this API, you can check if your customer's bank supports API-based E-mandates.

Here is the list of supported banks and their specific bank code.

curl --location --request GET 'https://in.staging.decentro.tech/v2/payments/enach/bank_support?bank_code=PYTM' \
--header 'client_id: <YOUR_CLIENT_ID>' \
--header 'client_secret: <YOUR_CLIENT_SECRET>' \
--header 'module_secret: <YOUR_PAYMENTS_MODULE_SECRET>' \
--header 'provider_secret: <YOUR_PROVIDER_SECRET>' \
--header 'Content-Type: application/json'
{
  "decentroTxnId": "DCTRTXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Supported methods for bank code fetched successfully",
  "data": {
    "debitCard": true,
    "netBanking": true
  }
}

b) Mandate Registration

This API helps to enable a path (pageLink) so that your consumer can register a recurring payment with Debit Card or Netbanking as a mode of payment. The response of this API is a link that will redirect the customer to NPCI.

curl --location --request POST 'https://in.staging.decentro.tech/v2/payments/enach/mandate' \
--header 'client_id: <YOUR_CLIENT_ID>' \
--header 'client_secret: <YOUR_CLIENT_SECRET>' \
--header 'module_secret: <YOUR_PAYMENTS_MODULE_SECRET>' \
--header 'provider_secret: <YOUR_PROVIDER_SECRET>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "reference_id" : "7a1c9e7a-b015-467f-9eee-e10a4be8cf6d",
    "consumer" : {
        "name" : "somefirst somelast",
        "account_number" : "83932490XXXXX",
        "account_type" : "SAVINGS",
        "reference_number" : "decentro-mandate",
        "bank_id" :  "ICIC",
        "email": "[email protected]",
        "mobile": "9999999999",
        "pan": "ABCDE1234F"
    },
    "start_date" : "YYYY-MM-DD",
    "end_date" : "YYYY-MM-DD",
    "amount" : 1000.00,
    "amount_rule" : "fixed/variable",
    "category_code" : "elec",
    "frequency" : "weekly",
    "authentication_mode" : "DebitCard/Netbanking"
}'
{
  "decentroTxnId": "DCTRTXXXXXXXXXXXXXXXXX",
  "status": "PENDING",
  "responseCode": "RP0001",
  "message": "Successfully initiated mandate registration.",
  "data": {
    "pageLink": "<html>"
  }
}

c) Mandate Status

This API is used to check the real-time status of the mandate registration request initiated with Decentro.

curl --location --request GET 'https://in.staging.decentro.tech/v2/payments/enach/mandate/Decentro Transaction ID/status' \
--header 'client_id: <YOUR_CLIENT_ID>' \
--header 'client_secret: <YOUR_CLIENT_SECRET>' \
--header 'module_secret: <YOUR_PAYMENTS_MODULE_SECRET>' \
--header 'provider_secret: <YOUR_PROVIDER_SECRET>' \
--header 'Content-Type: application/json'
{
  "decentroTxnId": "DCTRTXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Mandate status fetched successfully",
  "data": {
    "mandateRequestId": "<request-reference-number>",
    "status": "REJECTED",
    "uniqueMandateReferenceNumber": "<npci-unique-mandate-reference-number>",
    "description": "Provider/NPCI remarks",
    "consumerReferenceNumber": "customer-reference-number"
  }
}

d) Mandate Execution

This API will allow you to initiate an auto-debit for a particular mandate referencing the mandate ID from the time of registration.

The mandate needs to be registered before being presented. Else, Decentro rejects the mandate for execution.

curl --location --request POST 'https://in.staging.decentro.tech/v2/payments/enach/mandate/execute' \
--header 'client_id: <YOUR_CLIENT_ID>' \
--header 'client_secret: <YOUR_CLIENT_SECRET>' \
--header 'module_secret: <YOUR_PAYMENTS_MODULE_SECRET>' \
--header 'provider_secret: <YOUR_PROVIDER_SECRET>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "reference_id": "06e5b196-e7d2-4087-a0b2-68ef9fc3199a",
    "transaction_reference" : "unique-transaction-id",
    "unique_mandate_reference_number": "BKID7975748",
    "settlement_date": "YYYY-MM-DD",
    "amount": 1000.00
}'
{
  "decentroTxnId": "DCTRTXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Upi Autopay Mandate execute request initiated successfully",
  "data": {
    "decentroMandateUrn": "<decentro-mandate-urn>",
    "mandateStatus": "PENDING",
    "mandateStatusDescription": "Mandate Request Pending",
    "mandateBankReferenceNumber": "<bank-reference-number>",
    "name": "test asp",
    "amount": "1.0000",
    "frequency": "AS_PRESENTED",
    "startDate": "2022-05-31",
    "endDate": "2022-05-31",
    "isRevokeable": true,
    "payerUpi": "[email protected]",
    "payerName": "John Doe",
    "payerAccountNumber": "",
    "payeeUpi": "[email protected]",
    "payeeName": "Decentro Tech Private Limited",
    "payeeIfsc": "IFSCXXXXXX",
    "payeeAccountNumber": "46XXXXXXXXXXXXXX4",
    "amountRule": "MAX",
    "nextDebitDate": "2022-05-31"
  }
}

UPI AutoPay

UPI Auto-pay is a digital mandate platform built by NPCI on the UPI framework designed to handle recurring payments like EMIs, payables, premiums, subscriptions, etc.

This set of APIs will help you enable auto collections on configured frequency from your customers.

UPI Autopay has 2 phases.

  • Registration: this registers the mandate using a VPA handle of the customer by authorizing through their regular UPI PIN.
  • Execution: this debits the amount from the customer's bank account linked to the VPA against which the mandate is registered.

📘

Note

Please note that most of the leading banks which have UPI enabled support UPI auto-pay. Also, all the leading PSPs like PhonePe, Paytm, GPay, and Amazon Pay now support UPI auto-pay as well.


Did this page help you?