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.

In the current prepaid cards setup. The virtual and physical cards have the same card details. When a user is onboarded on a platform a virtual card is created and if a user can order for a physical card with the card details same as those of virtual 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 and blocking 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.
  • Block: This permanently blocks the wallet and the corresponding virtual and physical cards. Please pass 'BLOCK' under action in the request.

📘

Note

  • In case of non-banking PPI issuers, virtual card and physical card are the same. Locking/Unlocking or Blocking either of virtual/physical card will lock the other.
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.

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.

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 or blocking 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.
  • Block: This permanently blocks the physical card. Please pass 'BLOCK' 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/Transcorp: this will be used to add an additional virtual card only. For creating a physical card, use the Request Physical Card API

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 Transcorp and 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"
  }
}