This set of APIs pertains to wallet-related operations such as fetching wallet details, fetching statements, updating a wallet, etc.

A wallet in the Prepaid construct is a store of value where the actual funds are held and transferred to the beneficiary, either by transacting online or offline or funded from the pool account.

A card is an instrument that is issued against a wallet and can be virtual or physical. Funds are always maintained in a wallet or the pool account (JIT flow) and not at a card level.

Platforms can undertake the below actions against a wallet.

  • Create Min KYC Wallet
  • Upgrade to Full KYC Wallet using Biometric
  • Upgrade to Full KYC Wallet using V-CIP (Roadmap)
  • Temporarily Lock Wallet
  • Unlock the Locked Wallet
  • Permanently Block the Wallet (Roadmap)

Platforms can also use the APIs for fetching wallet and transaction details.

  • Get Wallet information
  • Get a List of all transactions against a wallet
  • Get a List of all transactions across wallets for a particular issuer

Create Min KYC Wallet

This API is used to initiate the creation of a MIN KYC wallet using Mobile OTP. Please complete the wallet creation using the Wallet Creation API if the request is successful.

Confirm Min KYC Wallet

This API allows for the verification of user registration via an OTP sent to the specified mobile. The mobile number will be the same as the one passed during the time of creating the wallet.

If the OTP is valid, Decentro will automatically create a wallet and assign a virtual card. The platform can use the Fetch Card Details API to get the card number and the Fetch CVV API to get the card CVV.

📘

Note

In case the OTP is not delivered, 111111 can be used as the default ONLY while testing this API on the Staging environment.

KYC Wallet Limits

This API registers a Min KYC wallet only and limits as mentioned. The platform will need to upgrade to Full KYC to open up the limits.

Min KYCFull KYC
Balance10,0002,00,000
Monthly Spend10,000No Limit
Annual Spend1,20,000No Limit
Transaction Limit10,0002,00,000

The platform can use the Virtual account created with the wallet to load funds which will be used to load the wallet.

Sample API

Update Wallet Status

This API is used to update the status of the wallet. The status of the wallet can be as below.

  • Lock: This temporarily locks the wallet and the corresponding virtual and physical cards. Please pass 'LOCK' under action in the request.
  • Unlock: This unlocks the locked wallet and the corresponding virtual and physical cards. Please pass 'UNLOCK' under action in the request.
  • Block: This permanently blocks the wallet and the corresponding virtual and physical cards. Please pass 'BLOCK' under action in the request.

Locking is a reversible action and temporary locks the wallet and corresponding cards. Locking the wallet is an irreversible action and permanently blocks the wallet and associated cards.

Wallet Details

This API allows to fetching of the details of the wallet associated with the specified mobile.

Wallet Statement

This API allows fetching the wallet's statement associated with the specified mobile. This API will return all the successful transactions that take place through the wallet.

🚧

Please note that this API doesn't return the list of transactions that are loaded into the Virtual account and includes all the wallet loading, debits, reversals, and transactions from the wallet.

Consolidated Details

This API allows to fetching of the consolidated details of all the wallets linked with the company.

Set Channel Preferences

This API allows to enable/disable spending channels and set daily spending limit for each channel for the wallet associated with the specified mobile

📘

Note

For Min KYC wallets, ATM channel can't be enabled and the maximum daily spending limit can't be greater that 10,000 INR. To get to access to these feature a user should upgrade their wallet to a Full KYC type

curl --location --request PUT 'https://in.staging.decentro.tech/v2/prepaid/wallet/8752959232/channel' \
--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": "AAA",
    "purpose": "Updating channel preferences",
    "consent": true,
    "channels": [
        {
            "action": "DISABLE",
            "type": "ATM"
        },
        {
            "action": "ENABLE",
            "type": "ECOM",
          	"value": "800"
        },
        {
            "action": "ENABLE",
            "type": "POS",
          	"value": "500"
        }
    ]
}
{
  "decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Channel preferences updated successfully."
}

Get Channel Preferences

This API allows to fetch the channel preferences and limit set for the wallet associated with the specified mobile.

curl --location --request GET 'https://in.staging.decentro.tech/v2/prepaid/wallet/8752959232/channel' \
--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": "Channel preferences fetched successfully.",
        "channels": [
            {
                "type": "ATM",
                "status": "ENABLED"
            },
            {
                "type": "POS",
                "status": "ENABLED"
            },
            {
                "type": "ECOM",
                "status": "ENABLED"
            },
            {
                "type": "CONTACTLESS",
                "status": "ENABLED"
            }
        ]
    }
}