---
page_title: Card Info v2
product: API Reference
page_source: https://juspay.io/in/docs/api-reference/docs/express-checkout/card-info-v2
openapi: https://juspay.io/in/docs/api/swagger?document=https%3A%2F%2Fjuspay.io%2Fin%2Fdocs%2Fapi-reference%2Fdocs%2Fexpress-checkout%2Fcard-info-v2
llms_txt: https://juspay.io/in/docs/llms.txt
product_llms_txt: https://juspay.io/in/docs/api-reference/llms.txt
---

## API Version: default


# Card Info v2



Card Info v2 provides card details using a JWE-encrypted card number or token number. This Server-to-Server (S2S) API requires authentication and accepts either:

* JWE-encrypted full card number
* JWE-encrypted token number

In addition to retrieving card details, this API can be used to determine whether a card is eligible for:

* ATM PIN generation
* Mandate creation
* Direct OTP payments
* Tokenization


### Why is Card Info v2 needed?



Payment networks like Visa and Mastercard have recommended using the full 16-digit card number for card identification and details retrieval , moving beyond the limitations of relying solely on the extended BIN (up to 9 digits).

Over time, we observed that even 6, 7, 8, and 9-digit BINs could be associated with multiple card variants or cards issued in different countries. 

Card Info v2 addresses this limitation by supporting identification using the full 16-digit card number, enabling more accurate card identification and details retrieval.


### Benefits



* Improved card identification and details retrieval accuracy
* Correct handling of overlapping BIN ranges
* Better support for country-specific card variants
* **More reliable eligibility checks**  for features such as ATM PIN setup, mandates, direct OTP payments, tokenization, and other card-related services.## Endpoints:
- Sandbox: https://sandbox.juspay.in/cards/binRangeInfo

- Production: https://api.juspay.in/cards/binRangeInfo

## Request Type: 
POST

## Content-Type: 
application/json

## Authorization:

#### Basic Auth:
 and Consists of two parts

* Username: API Key obtained from Juspay dashboard
* Password: Empty string
- Value: Example:- Basic MUQ2QUxxxxxxxxxxxxU5QTIxQzNFNTQwNkFDMEZCOg==
- Tags: Base64 Encoded username:password
## Headers:

#### x-merchantid:
Unique identifier for the merchant. This is the Merchant ID provided by Juspay. The value is case sensitive.

> **Note**
> Passing this value will help us route efficiently at network level.


- Value:  Example:- x-merchantid: testaccount
- Tags: String, Recommended

#### Content-Type:
- Value:  Content-Type:application/json
- Tags: string

#### version:
Pass the date in YYYY-MM-DD format
- Value:  Example:- 2023-01-01
- Tags: String
## Sample Code Snippets:
### Request:

#### Request Code Snippet:

```request
curl --location 'https://sandbox.juspay.in/cards/binRangeInfo?options.check_mandate_support=true&options.check_tokenize_support=true&options.check_otp_service_support=true&options.check_atm_pin_auth_support=true&options.check_direct_otp_support=true' \
--header 'Content-Type: application/json' \
--header 'Version: 2024-01-01' \
--header 'Authorization: Basic RDVFQTRCvhgEJEQjY0REU0OEVDNzY4RTVEODM4QjAzOg==' \
--data '{
    "enc_card_number": "eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMTI4R0NNIiwia2lkIjoiMjIxODE2OGMtZWU2Yi00OWQ3frfeWE4NTEtOGI5NGU3ZDAwNjhkIn0.GnSwEy80gftqOKYi_VXD1OoPsC41nUjYzfrCFSwaNMOTd9twhYPzewebc3YFN55d3ko9O4OFoTCzswQX85-CP2ZKWRpx7Dbq2C7mWjS2X41xs-McyHA23CSmywYEsd38nri345TpXSkIFZVNedamRPATtFnRr6o3eyzHU8HB3lkqGwGI-HORpOK3T5y21MNvwx4rrDMHqKAOQE56B7XiW9wxwjvM-_Vlqw4qsxBMuiJpbLf-cV0grksAwDDu3Fy1-CLO8FdxYHUBZZEKKmHVL7_iNSFFddcQg_E1MjbfnUOSTdn0QgwjyvarQwGS33kFt1QIL4jrFCjU5JtJBqKayQ.-CtSWDI4aSCVjOo7.hZ2JTqImbUu4fnTPYDnwjepI.ED-k3oi5O4HsjVBbv0vWSA"
       
    
}'
```

### Response:

#### Response:
```plaintext
{
    "card_sub_type": "PLATINUM",
    "collect_avs_info": false,
    "extended_card_type": "CREDIT",
    "country": "INDIA",
    "bank": "ICICI Bank",
    "id": "55953001",
    "mandate_support": true,
    "brand": "MASTERCARD",
    "card_sub_type_category": "RETAIL",
    "description": "ICICI Credit Card",
    "tokenize_support": true,
    "juspay_bank_code": "JP_ICICI",
    "type": "CREDIT",
    "otp_service_support": false,
    "country_code": "356",
    "object": "cardbin",
    "atm_pin_auth_support": false,
    "direct_otp_support": true
}
```

## Query Parameters:

#### merchant_id:
Refers to Merchant ID provided by Juspay or Juspay's merchant id.Merchant ID which represents the merchant for storing the card  
- Tags: String

#### options.check_mandate_support:
This is a boolean variable and accepts true/false. If set to `true`, then the card eligibility check for mandate transactions
- Tags: Boolean

#### options.get_mandate_details:
This is a boolean variable and accepts true/false . If set to `true` , and `options.check_mandate_support` is also set to `true` , then fetch mandate details.
- Tags: Boolean

#### options.check_tokenize_support:
This is a boolean variable and accepts true/false. If set to `true`, then the card eligibility check for Tokenization payments will be done.
- Tags: Boolean

#### options.check_direct_otp_support:
This is a boolean variable and accepts true/false. If set to `true`, then the card eligibility check for direct otp support .
- Tags: Boolean

#### options.get_direct_otp_details:
This is a boolean variable and accepts true/false .If set to `true` , and `options.check_direct_otp_support`  is also set to `true`  , then fetch the direct otp details.
- Tags: Boolean

#### options.check_otp_service_support:
This is a boolean variable and accepts true/false. If set to `true`, then the card eligibility check for  otp support .
- Tags: Boolean

#### options.get_otp_service_details:
This is a boolean variable and accepts true/false .If set to `true` ,and `options.check_otp_service_support`  is also set o `true`  , then fetch the otp service details .
- Tags: Boolean

#### options.luhn_check:
This is a boolean variable and accepts true/false. If set to `true`, then the card is checked for valid or not  .
- Tags: Boolean

#### options.check_moto_support:
This is a boolean variable and accepts true/false . If set to `true` , then the card eligibility check for moto transactions .
- Tags: Boolean

#### options.get_moto_details:
This is a boolean variable and accepts true/false .If set to `true` ,and `options.check_moto_support` is also set o `true`  , then fetch the moto details .
- Tags: Boolean

#### options.check_cvv_less_support:
This is a boolean variable and accepts true/false . If set to `true` , then the card eligibility check for cvv less support.
- Tags: Boolean

#### options.get_consent_category:
This is a boolean variable accepts true/false . If set to `true` , then checks the merchant enable for tokenization consent or not and provides details over it . 
- Tags: Boolean

#### options.check_passkey_support:
This is a boolean variable accepts true/false . if set to `true` , then eligibility check for the passkey support .
- Tags: Boolean

#### options.check_atm_pin_auth_support:
This is a boolean variable accepts true/false . If set to `true` , then the eligibility check for the atm pin auth support.
- Tags: Boolean

#### options.get_atm_pin_auth_details:
This is a boolean variable accepts true/false . If set to `true` and `options.check_atm_pin_auth_support` is also set to `true` then fetch the details .
- Tags: Boolean

#### options.check_rewards_support:
This is a boolean variable accepts true/false. If set to `true` , then the card eligibility check for reward support.
- Tags: Boolean

#### options.get_bin_range_metadata:
This is a boolean variable accepts true/false. If set to `true` ,then fetch the metadata for the bin
- Tags: Boolean
## Body Parameters:
### Section1:

#### enc_card_number:
- Description: This field accepts a JWE-encrypted full card number encrypted using the Juspay public key
- Value:  Example :- "eyJhbGciOiJSU0E.GnSwEy80gftqOKYi_VXD1OoPsC41nUjYzfqKayQ.-CtSWDI4aSCVjOo7.hZ2JTqImbUu4fnTPYDnwjepI.ED-k3oi5O4HsjVBbv0vWS"
- Tags: String, Mandatory

#### enc_token_number:
- Description: This field accepts a JWE-encrypted full token number encrypted using the Juspay public key
- Value:  Example :- "eyJhbGciOiJSU0E.GnSwEy80gftqOKYi_VXD1OoPsC41nUjYzfqKayQ.-CtSWDI4aSCVjOo7.hZ2JTqImbUu4fnTPYDnwjepI.ED-k3oi5O4HsjVBbv0vWS"
- Tags: String

#### :
- Description: > **Note**
> Either of `enc_card_number` or `enc_token_number` has to be included in the Request payload.In the body as well we can have exactly same fields that we have in params.**Example**  :- 
> 
> "options_check_mandate_support": "true","options_get_mandate_details": "true"


## API Responses:
### 200:

#### Card Info v2:
- Value:
  - **Id**:
    - Description: BIN associated with the provided encrypted card or token number
    - Value: Example:- "id": "55953001"
    - Tags: String
  - **Card_sub_type**:
    - Description: Sub type of the card
    - Tags: String
  - **Brand**:
    - Description: Card brand of the bin
    - Tags: String
  - **Bank**:
    - Description: Bank which the card belongs to
    - Tags: String
  - **Type**:
    - Description: Type of the card (Credit/Debit)
    - Tags: String
  - **Juspay_bank_code**:
    - Description: Bank code maintained at Juspay’s end which is used as payment_methods during transaction initiation
    - Tags: String
  - **Country**:
    - Description: Country which the card bin belongs to
    - Tags: String
  - **Mandate_support**:
    - Description: Informs whether bin has Subscription support
    - Tags: String
  - **Tokenize_support**:
    - Description: Informs whether bin has tokenization support
    - Tags: String
  - **Passkey_support**:
    - Description: Informs whether the bin is passkey supported
    - Tags: string
  - **Card_sub_type_category**:
    - Description: Sub type category of the card
    - Value: Example:- "card_sub_type_category": "RETAIL"
    - Tags: String
  - **Extended_card_type**:
    - Description: Extended type of the card
    - Tags: String
  - **Atm_pin_auth_support**:
    - Description: Indicates whether the BIN is eligible for ATM PIN authentication.
    - Tags: boolean
  - **Direct_otp_support**:
    - Description: Indicates whether the BIN is eligible for direct OTP
    - Tags: Boolean
  - **Otp_service_support**:
    - Description: Indicates whether the BIN is eligible for OTP service
    - Tags: Boolean
  - **Cvv_less_support**:
    - Description: Indicates whether the BIN is eligible for CVV less transaction
    - Tags: Boolean
  - **Cvv_less_supported_gateways**:
    - Description: Provide all the gateway list for the cvv less transaction
    - Tags: List
  - **Cvv_less_details**:
    - Description: Provides all the gateways with gateway_ref_ids for the  cvv less transaction
    - Tags: List
  - **Moto_support**:
    - Description: Indicates whether The BIN eligible for the moto transaction .
    - Tags: Boolean
  - **Moto_details**:
    - Description: Provide all the gateway list for the moto transaction
    - Tags: List
  - **Mandate_details**:
    - Description: Provide all the gateway with gateway_ref_id  for the mandate transaction
    - Tags: List
  - **Atm_pin_details**:
    - Description: Provide all the gateway with gateway_ref_id
    - Tags: List
  - **Direct_otp_details**:
    - Description: Provide all the gateways with gateway_ref_id for the DOTP transaction
    - Tags: List
  - **Otp_service_details**:
    - Description: Provide all the gateways with gateway_ref_id for the OTP service
    - Tags: List
  - **Tokenization**:
    - Description: Provides the consent category
    - Tags: Object
  - **Country_code**:
    - Description: Country code of the card issuer
    - Tags: String
  - **Support_issuer_tokenization**:
    - Description: Indicates whether issuer tokenization is supported or not .
    - Tags: Boolean
  - **Is_device_tokenize_supported**:
    - Description: Indicates of the merchant enable for the device tokenization
    - Tags: Boolean
  - **Reward_supported**:
    - Description: Indicates whether The BIN eligible for the reward
    - Tags: Boolean
  - **Reward_support_gateways**:
    - Description: Provides gateway list for reward
    - Tags: List
  - **Luhn_check**:
    - Description: Check if this a valid card number or not
    - Tags: boolean
  - **Metadata**:
    - Description: Provides bin metadata.
    - Value: Example:- "metadata": {         "commrcl_crd_lvl3enh_ind": "N",         "bin_range_payment_account_type": "P",         "shared_bin_ind": "N",         "brand_cd": "VISA",         "regulated_bin_cd": "N",         "settlmnt_match_ind": "N",         "bin_length": "6",         "online_gambl_block_ind": "Y",         "posdomestic_only_ind": "N",         "commrcl_crd_lvl2ind": "N",         "issuer_billing_curr_cd": "INR",         "combo_crd_cd": "N",         "account_region_code": "04",         "alm_ind": "N",         "product_id": "F"     }
    - Tags: Object
- Tags: JSON
### 400:

#### error:
- Description: Neither `enc_card_number` nor `enc_token_number` was provided.
- Value: true
- Tags: Boolean

#### error_message:
- Value: Missing mandatory param, Pass either enc_card_number or enc_token_number.
- Tags: String

#### user_message:
- Value: Missing mandatory param, Pass either enc_card_number or enc_token_number.
- Tags: String

#### error_info:
- Value:
  - **Code**:
    - Value: INVALID_INPUT
    - Tags: String
  - **Category**:
    - Value: USER_ERROR
    - Tags: String
  - **Href**:
    - Value: NA
    - Tags: String
  - **Request_id**:
    - Value: 84bddfb2-50af-bn37e-a8fa-e62b7e8cc69f
    - Tags: String
  - **User_message**:
    - Value: Invalid request params. Please verify your input.
    - Tags: String
  - **Developer_message**:
    - Value: Missing mandatory param, Pass either enc_card_number or enc_token_number.
    - Tags: String
- Tags: Object
### 404:

#### status:
- Description: invalid_request_error
- Tags: String

#### error_code:
- Description: Object not found
- Tags: String

#### error_message:
- Description: Cannot find what you are looking for
- Tags: String


---

## See Also

- [Card Info](https://juspay.io/in/docs/api-reference/docs/express-checkout/card-info)
- [Bin list](https://juspay.io/in/docs/api-reference/docs/express-checkout/bin-list)
