Transaction
This set of APIs pertains to performing incoming and outgoing transactions on wallets and obtaining their corresponding statuses.
Below are the transaction limits for wallet types.
Min KYC | Full KYC | |
---|---|---|
Balance | 10,000 | 2,00,000 |
Monthly Spend | 10,000 | No Limit |
Annual Spend | 1,20,000 | No Limit |
Transaction Limit | 10,000 | 2,00,000 |
Note
Please note that each issuer has specific limits for Full KYC wallets that can be customized for specific programs.
Load Wallet
This API allows loading money into the wallet associated with the specified mobile from the pool account.
Please note that this API is only enabled for regular flow programs, not JIT flow.
If the pool account doesn't have sufficient balance for the merchant, the loading will fail.
curl --location --request POST 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/load' \
--header 'client_id: YOUR_CLIENT_ID' \
--header 'client_secret: YOUR_CLIENT_SECRET' \
--header 'module_secret: YOUR_PREPAID_MODULE_SECRET' \
--header 'provider_secret: YOUR_CHOSEN_PROVIDER_SECRET' \
--header 'Content-Type: application/json' \
--data-raw '{
"reference_id": "PPP",
"purpose": "test_purpose",
"consent": true,
"amount": 42.5
}'
{
"decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "PENDING",
"responseCode": "I000000",
"message": "Payment pending",
"data": {
"transactionStatus": "PENDING",
"transactionDescription": "The transaction is currently pending for settlement. Kindly trigger GET TRANSACTION STATUS to get the latest updated status",
"bankReferenceNumber": "XXXXXXXX1035"
}
}
Fetch Load Wallet Status
This API allows getting the status of a wallet load transaction.
curl --location --request GET 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/load/some_load_transaction_id/status' \
--header 'client_id: YOUR_CLIENT_ID' \
--header 'client_secret: YOUR_CLIENT_SECRET' \
--header 'module_secret: YOUR_PREPAID_MODULE_SECRET' \
--header 'provider_secret: YOUR_CHOSEN_PROVIDER_SECRET'
{
"decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "SUCCESS",
"responseCode": "E00000",
"message": "Transaction successful",
"data": {
"transactionStatus": "SUCCESS",
"transactionDescription": "Transaction status fetched successfully",
"bankReferenceNumber": "XXXXXXXX3752",
"balance": 10.2,
"remainingLoadLimit": 49989.8
}
}
Reverse Load Wallet
This API allows reversing a wallet load transaction.
curl --location --request POST 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/load/some_load_transaction_id/reversal' \
--header 'client_id: YOUR_CLIENT_ID' \
--header 'client_secret: YOUR_CLIENT_SECRET' \
--header 'module_secret: YOUR_PREPAID_MODULE_SECRET' \
--header 'provider_secret: YOUR_CHOSEN_PROVIDER_SECRET' \
--header 'Content-Type: application/json' \
--data-raw '{
"reference_id": "00E",
"purpose": "test_purpose",
"consent": true
}'
{
"decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "SUCCESS",
"responseCode": "I00000",
"message": "Payment pending",
"data": {
"transactionStatus": "PENDING",
"transactionDescription": "The transaction is currently pending for settlement. Kindly trigger GET TRANSACTION STATUS to get the latest updated status",
"bankReferenceNumber": "2109XXXXXXXX"
}
}
Reverse Load Wallet Status
This API allows getting the status of a wallet load reversal transaction.
curl --location --request GET 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/load/some_load_transaction_id/reversal/some_load_reversal_transaction_id/status' \
--header 'client_id: YOUR_CLIENT_ID' \
--header 'client_secret: YOUR_CLIENT_SECRET' \
--header 'module_secret: YOUR_PREPAID_MODULE_SECRET' \
--header 'provider_secret: YOUR_CHOSEN_PROVIDER_SECRET' \
--header 'Content-Type: application/json'
{
"decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "SUCCESS",
"responseCode": "S00000",
"message": "Transaction successful",
"data": {
"transactionStatus": "SUCCESS",
"transactionDescription": "Transaction status fetched successfully",
"bankReferenceNumber": "2109XXXXXXXX",
"balance": 72.7,
"remainingLoadLimit": 0
}
}
Reverse from Wallet
This API allows the movement of the specified amount back to the virtual pool from the wallet associated with the specified mobile.
If the parameter 'amount' is not passed in the request, the wallet will be emptied and the entire amount will be moved to the virtual pool.
curl --location --request POST 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/reversal' \
--header 'client_id: YOUR_CLIENT_ID' \
--header 'client_secret: YOUR_CLIENT_SECRET' \
--header 'module_secret: YOUR_PREPAID_MODULE_SECRET' \
--header 'provider_secret: YOUR_CHOSEN_PROVIDER_SECRET' \
--data-raw '{
"reference_id": "00E",
"purpose": "Sending money to pool account from wallet",
"consent": true,
"amount": 200
}'
{
"decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "SUCCESS",
"responseCode": "I00000",
"message": "Payment pending",
"data": {
"transactionStatus": "PENDING",
"transactionDescription": "The transaction is currently pending for settlement. Kindly trigger GET TRANSACTION STATUS to get the latest updated status",
"bankReferenceNumber": "XXXXXXXX123"
}
}
Reverse from Wallet Status
This API allows getting the status of reverse wallet transactions.
curl --location --request GET 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/reversal/DECXXXXXXXXXXXXXXXXXXXXXXXXXXX/status' \
--header 'client_id: YOUR_CLIENT_ID' \
--header 'client_secret: YOUR_CLIENT_SECRET' \
--header 'module_secret: YOUR_PREPAID_MODULE_SECRET' \
--header 'provider_secret: YOUR_CHOSEN_PROVIDER_SECRET'
{
"decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "SUCCESS",
"responseCode": "S00000",
"message": "Transaction successful",
"data": {
"transactionStatus": "SUCCESS",
"transactionDescription": "Transaction status fetched successfully",
"bankReferenceNumber": "XXXXXXXXX123",
"balance": 200,
"remainingLoadLimit": 0
}
}
Funds Transfer
This API allows performing outgoing transactions from the wallet associated with the specified mobile. The customer needs to add a beneficiary before transacting.
The Beneficiary code can be obtained from the Add Beneficiary API.
Reminder
This capability exists for Full KYC wallets ONLY.
curl --location --request POST 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/transfer' \
--header 'client_id: YOUR_CLIENT_ID' \
--header 'client_secret: YOUR_CLIENT_SECRET' \
--header 'module_secret: YOUR_PREPAID_MODULE_SECRET' \
--header 'provider_secret: YOUR_CHOSEN_PROVIDER_SECRET' \
--header 'Content-Type: application/json' \
--data-raw '{
"reference_id": "00G",
"purpose": "Money transfer from wallet to wallet",
"consent": true,
"beneficiary": {
"mobile": "XXXXXXXXXX"
},
"amount": 1.0
}'
{
"decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "SUCCESS",
"responseCode": "I00000",
"message": "Payment pending",
"data": {
"transactionStatus": "PENDING",
"transactionDescription": "The transaction is currently pending for settlement. Kindly trigger GET TRANSACTION STATUS to get the latest updated status",
"bankReferenceNumber": "202XXXXXXXXX"
}
}
Fetch Transfer Status
This API allows getting the status of an outgoing wallet transfer.
curl --location --request GET 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/transfer/some_transfer_id/status' \
--header 'client_id: YOUR_CLIENT_ID' \
--header 'client_secret: YOUR_CLIENT_SECRET' \
--header 'module_secret: YOUR_PREPAID_MODULE_SECRET' \
--header 'provider_secret: YOUR_CHOSEN_PROVIDER_SECRET'
{
"decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"status": "SUCCESS",
"responseCode": "S00000",
"message": "Transaction successful",
"data": {
"transactionStatus": "SUCCESS",
"transactionDescription": "Transaction status fetched successfully",
"bankReferenceNumber": "202XXXXXXXXX",
"balance": 100
}
}
Updated about 1 year ago