Direct Payouts

Decentro provides the capability to pay to bank accounts of customers, individuals, or businesses using any of the supporting modes of transfers.

The platform is expected to Add a Beneficiary to use the Nodal account for payouts. If this is not done, the transfer is rejected. Note: This is as per RBI guidelines.

The platform can Add a Beneficiary to use any other account but is recommended that transfers to the same customer can be done repeatedly without hassles.

Decentro recommends the platform Validate bank accounts before transacting to ensure the recipient is as per records.

Beneficiary

Sub-module with API to manage the registered beneficiaries against each virtual account to add, update, or delete them.

Manage Beneficiaries

Add / Update / Disable any beneficiary for sending money from the virtual account (on top of the underlying physical bank account)

curl --location --request POST 'https://in.staging.decentro.tech/core_banking/money_transfer/manage_beneficiaries' \
--header 'client_id: <YOUR_CLIENT_ID>' \
--header 'client_secret: <YOUR_CLIENT_SECRET>' \
--header 'module_secret: <YOUR_CORE_BANKING_MODULE_SECRET>' \
--header 'provider_secret: <YOUR_CHOSEN_PROVIDER_SECRET>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "action": "ADD",
    "sender_account_number": "111111111111110",
    "name": "Test Name",
    "ifsc_code": "ABCD0000999",
    "account_number": "111111111111111",
    "transfer_type": "IMPS",
    "currency_code": "INR",
    "address": "Bengaluru",
    "email_address": "[email protected]",
    "mobile_number": "9999999999"
}'
{
  "status": "success",
  "decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "accountNumber": "00XXXXXXXXXXXXX",
  "ifscCode": "XXXXXXXXXX",
  "name": "DEC00XXXXXXXXXXXXXIMPS",
  "beneficiaryCode": "DEC00XXXXXXXXXXXXXIMPS"
}

Settlements

Settlement is a bank account that will be mapped against a virtual account to which Decentro will auto-settle funds from its account if not settled by the platform.

With this API, you can Add / Deactivate / Reactivate settlement accounts for sending money from the virtual accounts.

Settlement Account

The settlement account needs to be an actual bank account.

curl --location --request POST 'https://in.staging.decentro.tech/v2/banking/account/settlement_account' \
--header 'client_id: <YOUR_CLIENT_ID>' \
--header 'client_secret: <YOUR_CLIENT_SECRET>' \
--header 'module_secret: <YOUR_CORE_BANKING_MODULE_SECRET>' \
--header 'provider_secret: <YOUR_CHOSEN_PROVIDER_SECRET>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "reference_id": "abcd-0001",
    "action": "ADD",
    "name" : "John Doe",
    "mobile" : "9999999999",
    "email" : "[email protected]",
    "ifsc": "YESB0CMSNOC",
    "sender_account_number": "4625204848484848",
    "account_number": "717273747576",
    "transfer_type": "IMPS"
}'
{
  "decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Successfully added settlement account.",
  "data": {
    "ifsc": "YESB0CMSNOC",
    "accountNumber": "717273747576",
    "beneficiaryCode": "004717273747576IMPS",
    "beneficiaryName": "John Doe"
  }
}

Validate Bank Account

This API allows you to automatically validate a bank account by doing a penny drop (small deposit) transaction. This is a sync API and Decentro returns the response of the account immediately.

curl --location --request POST 'https://in.staging.decentro.tech/core_banking/money_transfer/validate_account' \
--header 'client_id: <YOUR_CLIENT_ID>' \
--header 'client_secret: <YOUR_CLIENT_SECRET>' \
--header 'module_secret: <YOUR_CORE_BANKING_MODULE_SECRET>' \
--header 'provider_secret: <YOUR_CHOSEN_PROVIDER_SECRET>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "reference_id": "0000-0000-0000-0019",
    "purpose_message": "This is a penny drop transaction",
    "transfer_amount": "1.5",
    "beneficiary_details": {
        "name": "Jon Doe",
        "mobile_number": "8989898989",
        "email_address": "[email protected]",
        "account_number": "001128907346285",
        "ifsc": "ALLA0211480"
    }
}'
{
  "status": "success",
  "message": "The account has been successfully verified.",
  "accountStatus": "valid",
  "decentroTxnId": "<decentroTxnId>",
  "beneficiaryName": "Ab Cd",
  "beneficiaryCode": "XXXXXXXXXXXXXXX",
  "bankReferenceNumber": "XXXXXXXXXXXXXXX",
  "responseCode": "S000009"
}

Initiate Payout

This API allows you to facilitate money transfers to/from your customers' linked virtual bank accounts from within your application.

Decentro provides the below type of transfers.

  • Virtual account to Virtual account
  • Virtual account to actual bank account

Decentro supports the below modes of transfers.

  • NEFT
  • RTGS
  • IMPS
  • UPI

IMPS and UPI are instant settlements to the beneficiary account. NEFT typically takes 2 hours for settlement while RTGS takes 3 hours for settlement.

Transaction Limit

Transfer Type

Transaction Limit

IMPS

Amount <= INR 5L per transaction

NEFT

Amount <= INR 10L per transaction (Non-Banking Hours), Amount <= INR 1Cr per transaction (Banking Hours)

RTGS

Amount > INR 2L per transaction, Amount <= INR 5cr (Banking Hours)

UPI

Amount <= 1L per transaction subject to consumer's bank policies and applicable across transactions coming from UPI apps, Bank apps, and through Virtual accounts.

Sample: Initiate Payout API

curl --location --request POST 'https://in.staging.decentro.tech/core_banking/money_transfer/initiate' \
--header 'client_id: <YOUR_CLIENT_ID>' \
--header 'client_secret: <YOUR_CLIENT_SECRET>' \
--header 'module_secret: <YOUR_CORE_BANKING_MODULE_SECRET>' \
--header 'provider_secret: <YOUR_CHOSEN_PROVIDER_SECRET>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "reference_id": "decentro_request_211",
    "purpose_message": "This is a nice message",
    "from_customer_id": "232323",
    "to_customer_id": "mer98970",
    "from_account": "000000000000000",
    "to_account": "111111111111111",
    "mobile_number": "9879879879",
    "email_address": "[email protected]",
    "name": "some_remitter_name",
    "transfer_type": "NEFT",
    "transfer_amount": "1000",
    "beneficiary_details": {
        "email_address": "[email protected]",
        "mobile_number": "8989898989",
        "address": "test address01",
        "ifsc_code": "YESB0000000",
        "country_code": "IN",
        "payee_name": "some_payee_name"
    },
    "currency_code": "INR"
}'
{
  "status": "pending",
  "message": "The transaction is currently pending for settlement. Kindly trigger GET TRANSACTION STATUS to get the latest updated status.",
  "responseCode": "I00000",
  "decentroTxnId": "DCTRTXXXXXXXXXXXXXXXXX",
  "transferType": "IMPS"
}

Get Transaction Status

This API can be used by you to check the money transfer transactions that were initiated/completed by your customers.

Two main parameters are required -

  • reference_id ((mandatory if decentro_txn_id is not present) The request ID passed by you for this transaction when initiating it earlier.)
  • decentro_txn_id ((mandatory if reference_id is not present) The decentro transaction id that we responded with while providing the initiate payment response.)
curl --location --request GET 'https://in.staging.decentro.tech/core_banking/money_transfer/get_status?request_id=decentro_request_20x&decentro_txn_id=FNTECH00001200000000P9' \
--header 'client_id: <YOUR_CLIENT_ID>' \
--header 'client_secret: <YOUR_CLIENT_SECRET>' \
--header 'module_secret: <YOUR_CORE_BANKING_MODULE_SECRET>' \
--header 'provider_secret: <YOUR_CHOSEN_PROVIDER_SECRET>' \
--data-raw ''
{
  "status": "success",
  "originalTxnId": "DCTRTX00001200000003C0",
  "originalDecentroTxnId": "DCTRTX00001200000003C0",
  "originalTransactionResponse": {
    "status": "pending",
    "message": "The transaction is currently pending for settlement. Kindly trigger GET TRANSACTION STATUS to get the latest updated status.",
    "decentroTxnId": "<decentroTxnId>",
    "transferType": "IMPS",
    "beneficiaryCode": "*****",
    "newBalance": "*****",
    "responseCode": "I00000"
  },
  "transferType": "IMPS",
  "bankReferenceNumber": "abcdefghijkl"
}

Did this page help you?