This set of APIs pertains to all card-related operations in tandem with the issued wallets for the consumers, essentially allowing you to issue and manage physical and virtual cards linked to the created wallets.

The platform can add a card to the wallet, which can be virtual or physical. The card can be used by the customer to transact online or offline using either form factor.

The 2 flows currently supported are.

  • Yes Bank: One virtual and physical card with separate numbers
  • Livquik: One virtual or physical card. The virtual card itself can be converted into a physical card

Cards can be activated virtually and physical cards can be enabled using the Set PIN API. Alternatively, the platform can activate the virtual card and use it online for supported transactions.

Virtual Card

This set of APIs pertains to virtual card-related operations.

Decentro provides the capability to modify the status of virtual cards issued through its platform.

a) Update Virtual Card

This API allows locking/unlocking a virtual card associated with the specified mobile. The underlying wallet itself is not impacted and only the specific card is impacted. The status of the card can be as below.

  • Lock: This temporarily locks the card 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.

📘

Note

  • In case of Livquik, virtual card and physical card are the same. Locking either of virtual/physical card will lock the other and same goes for unlocking.
  • In case of non- banking PPI issuers, locking the virtual card locks the physical card, vice versa and the same applies for unlocking the card.

Locking the wallet doesn't permanently block the wallet or the cards. This is in the roadmap. In the meantime, please contact [email protected] for any queries.

curl --location --request PUT 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/virtual' \
--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": "YYY",
    "purpose": "virtual card lock",
    "action": "lock",
    "consent": true
}'
{
  "decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Transaction successful",
  "data": {
    "transactionStatus": "SUCCESS",
    "transactionDescription": "Virtual card locked successfully"
  }
}

Physical Card

This set of APIs pertains to physical card-related operations.

a) Request Physical Card

This API allows requesting of a physical card corresponding to a virtual card linked to the wallet associated with the specified mobile. This is applicable only for cards issued with Livquik and not for Yes Bank cards.

After successfully requesting a physical card, use the Fetch details API to fetch the card's details.

The platform can choose the passed address of the customer and the card will be shipped. Alternatively, the platform can skip the address fields and the cards will be shipped by Decentro to the registered address.

📘

Note

Please note that for Yes Bank cards, either activate the virtual or physical card directly using the Activate Card API or you can activate a virtual or physical card independently of each other.

curl --location --request POST 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/virtual/request' \
--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": "test_purpose",
    "consent": true,
    "kit_number": "44444444444",
    "address_information": {
        "address": "ABC DEF GHIJK",
        "pin_code": "000000",
        "city": "Bengaluru",
        "state_code": 22
    }
}'
{
  "decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Transaction successful",
  "data": {
    "transactionStatus": "SUCCESS",
    "transactionDescription": "Physical card corresponding to virtual card requested successfully"
  }
}

b) Update Physical Card

This API allows locking/unlocking a virtual card associated with the specified mobile. The underlying wallet itself is not impacted and only the specific card is impacted.

The status of the card can be as below.

  • Lock: This temporarily locks the card 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.
curl --location --request PUT 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/physical' \
--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": "YYY",
    "purpose": "Physical card lock",
    "action": "lock",
    "consent": true
}'
{
  "decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Transaction successful",
  "data": {
    "transactionStatus": "SUCCESS",
    "transactionDescription": "Physical card locked successfully"
  }
}

c) Set Card PIN

This API allows setting the PIN of a physical card linked to the wallet associated with the specified mobile.

As per guidelines, the cardholder needs to set the PIN on the issuer's domain.

curl --location --request PUT 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/card/pins' \
--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": "BBB",
    "purpose": "test_purpose",
    "consent": true,
    "kit_number": "9876"
}'
{
  "decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Transaction successful",
  "data": {
    "transactionStatus": "SUCCESS",
    "transactionDescription": "Card PIN set link generated successfully",
    "url": "https://abc.com"
  }
}

Add Card

This API allows activating an additional card against the wallet associated with the specified mobile. The card to be activated can be virtual or physical, which can be configured in the request parameter 'type'.

After successful activation, use the Fetch details API to fetch the details of the card.

Please note the below specifics.

  • Livquik: this will be used to add an additional virtual card only. For creating a physical card, use the Request Physical Card API
  • Yes Bank: this will be used to add an additional virtual or physical cards. The additional card will have a different number from the one mapped to the wallet by default

Also, additional cards can be added only if you have inventory allocated to you by Decentro. If you are short of the same, please reach out to your RM or contact us at [email protected]

Additional cards can be added if the issuer partner of Decentro has approved the use case.

curl --location --request POST 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/card' \
--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": "AAA",
    "purpose": "Activating my card",
    "consent": true,
    "kit_number": "9876",
    "provider_params": {
        "card_number_last_4_digits": "1234"
    }
}'
{
  "decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Transaction successful",
  "data": {
    "transactionStatus": "SUCCESS",
    "transactionDescription": "Card activated successfully"
  }
}

Card Status

This API allows the user to fetch the status of the card/cards linked to the registered mobile number with which wallet has been created. It gives a list of cards associated with the wallet and their current status.

Card Status can be fetched in 2 ways. See the examples at Fetch Card Status API -

  • By passing only Wallet Number in the request parameter which gives all cards associated with the wallet number.
  • By passing Wallet Number along with the Kit Number to get the status of card/cards associated with the kit number.
curl --request GET \
     --url https://in.staging.decentro.tech/v2/prepaid/wallet/mobile/card/status \
     --header 'Accept: application/json' \
     --header 'client_id: your_client_id' \
     --header 'client_secret: your_client_secret' \
     --header 'module_secret: your_module_secret' \
     --header 'provider_secret: your_provider_secret'
{
  "decentroTxnId": "DECXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "status": "SUCCESS",
  "responseCode": "S00000",
  "message": "Transaction successful",
  "data": {
    "transactionStatus": "SUCCESS",
    "transactionDescription": "Card status details fetched successfully",
    "count": 2,
    "details": [
      {
        "kitNumber": "XXXXXXXXXXX",
        "type": "PHYSICAL",
        "status": "ACTIVE"
      },
      {
        "kitNumber": "XXXXXXXXXXX",
        "type": "VIRTUAL",
        "status": "ACTIVE"
      }
    ]
  }
}

Card Details

This API allows the user to fetch the details of the card linked with the wallet associated with the specified mobile.

  • In the case of Yes Bank, only virtual card details will be received in the response of this API even if the physical card is activated
  • In the case of Livquik, virtual card details will be received in the response of this API since the physical card details mirror virtual card information

Kit number is required only if multiple cards are created against a wallet. Else, the kit number will not be required to fetch the card details.

curl --location --request GET 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/card?type=virtual' \
--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": "Card details fetched successfully",
    "count": 1,
    "details": [
      {
        "cardNumber": "2019 2020 2021 2022",
        "cvv": "111",
        "expiryMonth": "09",
        "expiryYear": "2025",
        "kitNumber": "NA",
        "type": "VIRTUAL",
        "subType": "VANILLA"
      }
    ]
  }
}

Fetch CVV

This API allows to fetching of the CVV of a card linked to the wallet associated with the specified mobile. The response will not be a CVV directly and be an HTML that will display the CVV.

📘

Note

Please note that the HTML page rendering will be followed if the platform is not PCI DSS certified and is as per compliance policies formulated by the PPI partner with whom the program is run.

curl --location --request GET 'https://in.staging.decentro.tech/v2/prepaid/wallet/9000000009/card/cvv?kit_number=4444444444' \
--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": "Card CVV view link generated successfully",
    "url": "https://def.com"
  }
}