Transaction Callbacks

This section covers the transaction callbacks triggered by Decentro for incoming and outgoing transactions.

Decentro uses callbacks to intimate the platform about transactions, incoming or outgoing and irrespective of the mode of transfer. The callback will be posted on the endpoints provided by the platform.

Decentro can configure custom endpoints (URLs) that you can share with our team on [email protected] or with your assigned RM, you can receive callbacks for any changes in the balance for your virtual accounts, or status updates for any transaction.

Decentro triggers transaction callbacks for the below transactions.

The transaction callbacks are over and above the account balance callbacks Account Balance triggered for each virtual account.

Transaction Status

This callback is triggered by Decentro to an endpoint provided by the platform for a specific transaction. This is over and above the account balance callback provided for updates in a specific virtual account.

Salient points:

  • 3 times maximum retry, post which the explicit Get status call has to be made for obtaining the transaction status.
  • It is mandatory to adhere to the response structure as specified in the examples.
  • It is recommended that you whitelist Decentro's originating IP.
  • It is recommended that you share your auth of preference with us, which will then be propagated as part of the callback request.
  • Callbacks will be triggered only in case of conclusive statuses (failure or success) and not while the transaction is pending.
  • Beneficiary Name and Bank Reference Number will be present only when Decentro's banking partners respond accordingly.
  • The keys in the request will be in snake/ camel case based on the company configuration (defaulting to camel case if nothing has opted). Response, however, has to be in snake case always.

Scenario Overview

ScenarioCallback HTTP Status codeExpected Callback Response
Successful transaction, successful callback200, 201{"response_code": "CB_S00000"}
Successful transaction, unauthorized callback401, 403{"response_code": "CB_E00013"}
Successful transaction, failed callbackOther 4xx{"response_code": "CB_E00009"}
Successful transaction, failed callback due to internal server error5xx{"response_code": "CB_E00000"}
Failed transaction, successful callback200, 201{"response_code": "CB_S00000"}
Failed transaction, unauthorized callback401, 403{"response_code": "CB_E00013"}
Failed transaction, failed callbackOther 4xx{"response_code": "CB_E00009"}
Failed transaction, failed callback due to internal server error5xx{"response_code": "CB_E00000"}

Link to Transaction Callbacks

{
  "attempt": 1,
  "timestamp": "2020-09-16 22:22:22",
  "callbackTxnId": "CLBACKxx",
  "originalCallbackTxnId": "CLBACKxx",
  "transactionStatus": "success",
  "referenceId": "company_reference_id_1",
  "decentroTxnId": "DCTRTXxx",
  "transactionMessage": "This is the message for a successful transaction",
  "transferType": "IMPS",
  "bankReferenceNumber": "abcdefghijk",
  "beneficiaryName": "some_beneficiary_name",
  "transactionAmount": 5,
  "providerMessage": "Processed successfully",
  "errorKey": ""
}
{
  "attempt": 1,
  "timestamp": "2020-09-16 22:22:22",
  "callbackTxnId": "CLBACKxx",
  "originalCallbackTxnId": "CLBACKxx",
  "transactionStatus": "failure",
  "referenceId": "company_reference_id_1",
  "decentroTxnId": "DCTRTXxx",
  "transactionMessage": "This is the message for a failure transaction",
  "transferType": "IMPS",
  "bankReferenceNumber": "abcdefghijk",
  "beneficiaryName": "some_beneficiary_name",
  "transactionAmount": 5,
  "providerMessage": "Failed transaction",
  "errorKey": "error_at_remitter_bank"
}

Account Balance Callback

Please note that the account balance callback is covered in detail here

Pre-Deposit Check

Via this callback, it is possible for any company to accept or reject incoming transactions for their virtual accounts based on their custom criteria.

The incoming transactions will be accepted under the following scenarios:

  • Company has not opted for pre-deposit checks.
  • Company accepts the transaction.
  • Company does not respond with the valid payload. (Refer to examples)
  • Company does not respond within the configured timeframe of 15 seconds.

The custom endpoints for different providers(if opted) need to be different.

Link to Pre-Deposit Check