Initiate Payout

🙌

Important Note

Please use only Staging Credentials on each API Reference page to test the APIs directly from our Documentation.

API Endpoints

Overview

This API allows you to facilitate money transfers to/from the linked virtual bank accounts or the consumer URN from within your application.

Flow

Below is the flow for using the Initiate Payout flow through Decentro

  1. The platform can use the provided "Consumer URN" or the "Virtual Account" to initiate a payout
    1. Consumer URN: Decentro will select the suitable provider and virtual account, and perform the payout
    2. From account: The Platform is specifying that a particular virtual account must be used for payout.
  2. The platform can provide the transfer type, amount, and beneficiary details. Once these details are provided, the payout can be initiated.
  3. The payout is an asynchronous process, wherein the request for the payout is initiated and pending for processing. This applies to NEFT and RTGS. IMPS and UPI provide synchronous responses.
  4. Decentro will trigger Transaction Status Callback: when the transaction reaches its final status.
  5. Decentro will trigger Account Balance Callback: whenever there is a debit/credit from the virtual account.
  6. If the platform wants to check the status of any transaction. Get Transaction Status: can be used to check the status of any transaction on demand. Decentro recommends using this functionality as a fallback mechanism to check the status of the transaction.

Key Points

Below are the key points about the initiate payout workflow.

  • If the consumer URN is used by the platform, the provider selection will take place from the most suitable provider at the time of the request, removing the dependency on the platform to implement a provider selection rule. The platform must ensure that all the virtual accounts across a consumer URN have sufficient funds to be processed.
  • The "api_status" must not be confused with the "transaction_status". Even if the "api_status" is success, it does not mean the actual "transaction_status" is success. Please ensure this is handled during the implementation of the payout API to your platform.
  • Decentro recommends platforms to handle the response of all possible transaction status. For details on the statuses, please refer to this section here.

API Specifications

Request Payload


Request ParameterMandatory (M) / Optional (O) / Conditional Mandatory (CM)Description
reference_idMA URN to be passed by the user for each API request. Alphanumeric values are allowed. Special characters such as “@ # $ % ^ & * ! ; : ~ ` ? = + ) ( apostrophe, double quotes” are not allowed
purpose_messageM1. The narration/remarks that will be displayed in the beneficiaries bank statement.

2. Only Alphanumeric values are allowed, special characters such as “@ # $ % ^ & * ! ; : ~ ` ? = + ) ( apostrophe, double quotes” are not allowed.

3. Minimum length is 5 characters and Maximum length is 35 characters
consumer_urnMA URN created for a consumer must be passed here.
from_accountOThe virtual account against which the payout must be performed. This is an optional field and is only to be used if the platform wants to perform a payout from a specific virtual account.
transfer_typeMUPI/IMPS/NEFT/RTGS are the available transfer type
transfer_amountMThe Amount to be transferred.Minimum amount is INR 1 (2 Decimal values are allowed Ex: 1.00)
beneficiary_detailsCMAn object that contains all the beneficiary details to which the platform will perform payout to.
to_accountCMThe Beneficiary Account to be added.

1. "to_account" is mandatory if the intended transfer type is IMPS/NEFT/RTGS.

2. "ifsc_code" parameter is required for IMPS/NEFT/RTGS transfers.

3. If the transfer type is set as UPI, this parameter is not required.
to_upiCMBeneficiary UPI ID to be passed. 'to_upi’ is mandatory if the intended transfer type is UPI.

1. ‘ifsc’ parameter is not required for UPI transfer.

2. Special characters such as dot(.) are accepted for values after (@) sign.

3. The UPI ID must follow the NPCI format (Ex: name@bankName or mobilenumber@bankName).

4. If the transfer type is selected as IMPS/NEFT/RTGS, this parameter is not required
payee_nameMBeneficiary name to be added.

Note: Decentro sanitises special characters for passing through banking APIs validations. Please ensure no special characters are passed, only Alphabetical values are passed.
ifsc_codeCMBeneficiary IFSC code to be added.

1. Alphanumeric values are allowed as per the IFSC code assigned to the beneficiary bank.

2. If the transfer type is UPI, this parameter is not required.

3. Maximum length is 11 characters
email_addressOBeneficiary Email Address to be added.
Alphanumeric and special characters are allowed but after (@), only dot(.) is allowed. Sample email format ([email protected])
mobile_numberOMobile numbers have to be strictly 10 digits long and start with one of 9, 8, 7 or 6. Only numeric characters are allowed. Country code is not required.

Response Payload

Response ParameterMandatory (M) / Optional (O) / Conditional Mandatory (CM)Description
decentro_txn_idMA URN generated by Decentro against the API request
api_status MThe status of the payout API request. Decentro recommends not using this parameter to mark the transaction status
Here are the values that will be propagated.

1. Success
2. Failure
messageMThe message of the API will be propagated here. This message is not related to the transaction message. These messages are based on the actions of the API.
response_keyMResponse key documenting the status of the API hit and various errors as mentioned here
dataCMThe object that contains the details of the transaction. This object will not be present if there is an API failure.
transaction_statusMThe status of the payout transactions. These are the following values available. For more refer, please refer to this section here

1. Success
2. Failure
3. Pending
4. Unknown
transfer_typeMThe transfer type of the payout transaction.
UPI, IMPS, NEFT, and RTGS are the values propagated
bank_reference_numberCMThe bank reference number of the transaction. This parameter will be generated when the status is "Success" or "Failure."
beneficiary_nameCMThe name of the beneficiary account holder. This parameter will be generated when the status is "Success."
transaction_status_descriptionCMThe message on the status of the transaction. This parameter will be generated when the status is "Success" or "Failure."
Language
Click Try It! to start a request and see the response here!