---
page_source: https://juspay.io/in/docs/ec-headless/cordova/mandates/card-info-api
page_title: Card Info API
---

## API Version: default


# Card Info



Get Card details using card bin upto 9 digits. You can also use this API to check if a card is eligible for ATM PIN, Mandate, direct OTP payments or tokenization. This S2S API requires authentication and accepts bin upto 9 digits.

> **Warning**
> Networks have shifted to using 9-digit BINs for more accurate information. We are still maintaining the existing 6-digit BINs for compatibility. Merchants are requested to move to the 9 digits bin based fetching card information by December 10th, 2023

## Endpoints:
- Sandbox: https://sandbox.juspay.in/cardbins/{cardbin}

- Production: https://api.juspay.in/cardbins/{cardbin}

## Request Type: 
GET

## Authorization:

#### Authorization:
**Basic Auth *** 

Base64 Encoded Username:Password

Consists of two parts:

* Username: API Key obtained from Juspay dashboard
* Password: Empty string

Example:-Basic MUQ2QUxxxxxxxxxxxxU5QTIxQzNFNTQwNkFDMEZCOg==
- Tags: String, Mandatory
## Headers:

#### x-routing-id:
We recommend passing the customer_id as the x-routing-id. If the customer is checking out as a guest, you can pass an alternative ID that helps track the payment session lifecycle. For example, this could be an Order ID or Cart ID.

> **Warning**
> This ID is associated with the customer. It plays a key role in ensuring consistency and maintaining connections across different systems. If you fail to pass the same x-routing-id for the same customer in all related API calls, it could lead to issues with API functionality. Therefore, it’s crucial that you use the same x-routing-id for all requests tied to the same customer.


- Value: customer_1122
- Tags: String, Required
## Sample Code Snippets:
### Sample Request:

#### Request Code Snippet:

```request
curl -X GET https://api.juspay.in/cardbins/405028700 \
-u your_api_key: \
-H 'x-routing-id: customer_1122'

```

#### Request - Mandate Eligibility Code Snippet:

```request - mandate eligibility
curl -X GET https://api.juspay.in/cardbins/405028700?merchant_id=merchantId&options.check_mandate_support=true' \
-u your_api_key: \
-H 'x-routing-id: customer_1122'

```

####  Request - DOTP Eligibility Code Snippet:

``` request - dotp eligibility
curl -X GET https://api.juspay.in/cardbins/405028700?merchant_id=merchantId&options.check_direct_otp_support=true' \
-u your_api_key: \
-H 'x-routing-id: customer_1122'

```

####  Request - Tokenization Eligibility Code Snippet:

``` request - tokenization eligibility
curl -X GET https://api.juspay.in/cardbins/405028700?merchant_id=merchantId&options.check_tokenize_support=true' \
-u your_api_key: \
-H 'x-routing-id: customer_1122'\

```

### Sample Response:

#### Response:
```json
{
    "country": "INDIA",
    "extended_card_type": "CREDIT",
    "brand": "VISA",
    "juspay_bank_code": "JP_HDFC",
    "object": "cardbin",
    "id": "405028700",
    "card_sub_type": "BHARAT",
    "type": "CREDIT",
    "bank": "HDFC Bank"
}
```

#### Mandate Eligibility:
```json
{
    "country": "INDIA",
    "extended_card_type": "CREDIT",
    "brand": "VISA",
    "juspay_bank_code": "JP_HDFC",
    "object": "cardbin",
    "id": "405028700",
    "card_sub_type": "BHARAT",
    "type": "CREDIT",
    "bank": "HDFC Bank",
    "mandate_support": true
}
```

#### DOTP Eligibility:
```json
{
    "country": "INDIA",
    "extended_card_type": "CREDIT",
    "brand": "VISA",
    "juspay_bank_code": "JP_HDFC",
    "object": "cardbin",
    "id": "405028700",
    "card_sub_type": "BHARAT",
    "type": "CREDIT",
    "bank": "HDFC Bank",
    "direct_otp_support": true
}
```

#### Tokenization Eligibility:
```json
{
    "country": "INDIA",
    "extended_card_type": "CREDIT",
    "brand": "VISA",
    "juspay_bank_code": "JP_HDFC",
    "object": "cardbin",
    "id": "405028700",
    "card_sub_type": "BHARAT",
    "type": "CREDIT",
    "bank": "HDFC Bank",
    "tokenize_support": true
}
```

#### CVV Less Eligibility:
```json
{
    "country": "INDIA",
    "extended_card_type": "CREDIT",
    "brand": "VISA",
    "juspay_bank_code": "JP_HDFC",
    "object": "cardbin",
    "id": "405028700",
    "card_sub_type": "BHARAT",
    "type": "CREDIT",
    "bank": "HDFC Bank",
    "cvv_less_support": true,
    "cvv_less_supported_gateways": [
        "PAYU",
        "PAYTM_V2",
        "CYBERSOURCE",
        "RAZORPAY"
    ],
}
```

## Path Parameters:

#### cardbin:
Card bin details are required, with a variable length ranging from 6 to 9 digits.
- Value: Example:- 524368 
- Tags: String, Mandatory
## Query Parameters:

#### merchant_id:
Merchant ID which represents the merchant 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.check_direct_otp_support:
This is a boolean variable and accepts true/false. If set to true, then the card eligibility check for OTP payments will be done.
- 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_cvv_less_support:
This works only for Token Bins
- Tags: Boolean

#### is_token_bin:
To check for a Token Bin instead of Card Bin
- Tags: Boolean

#### options.get_mandate_details:
This is a boolean variable and accepts true/false
- Tags: Boolean

#### options.get_direct_otp_details:
This is a boolean variable and accepts true/false
- Tags: Boolean

#### options.get_moto_details:
This is a boolean variable and accepts true/false
- Tags: Boolean

#### options.get_atm_pin_auth_details:
This is a boolean variable and accepts true/false
- Tags: Boolean
## API Responses:
### 200:

#### Card Info:
- Value:
  - **Id**:
    - Description: The length, varying from 6 to 9 digits, depends on available bin data. Defaulting to a maximum length of 9 digits, with fallback to 7 or 6 digits if higher length bin information is unavailable.
    - Tags: String
  - **Card_sub_type**:
    - Tags: String
  - **Brand**:
    - Tags: String
  - **Bank**:
    - Tags: String
  - **Object**:
    - Tags: String
  - **Type**:
    - Tags: String
  - **Juspay_bank_code**:
    - Tags: String
  - **Country**:
    - Tags: String
- Tags: JSON

#### Mandate Eligibility:
- Value:
  - **Id**:
    - Tags: String
  - **Card_sub_type**:
    - Tags: String
  - **Mandate_support**:
    - Tags: Boolean
  - **Brand**:
    - Tags: String
  - **Bank**:
    - Tags: String
  - **Object**:
    - Tags: String
  - **Type**:
    - Tags: String
  - **Juspay_bank_code**:
    - Tags: String
  - **Country**:
    - Tags: String
- Tags: JSON

#### DOTP Eligibility:
- Value:
  - **Id**:
    - Tags: String
  - **Card_sub_type**:
    - Tags: String
  - **Brand**:
    - Tags: String
  - **Bank**:
    - Tags: String
  - **Object**:
    - Tags: String
  - **Type**:
    - Tags: String
  - **Direct_otp_support**:
    - Tags: Boolean
  - **Juspay_bank_code**:
    - Tags: String
  - **Country**:
    - Tags: String
- Tags: JSON

#### Tokenization Eligibility:
- Value:
  - **Id**:
    - Tags: String
  - **Object**:
    - Tags: String
  - **Brand**:
    - Tags: String
  - **Bank**:
    - Tags: String
  - **Country**:
    - Tags: String
  - **Type**:
    - Tags: String
  - **Card_sub_type**:
    - Tags: String
  - **Juspay_bank_code**:
    - Tags: String
  - **Tokenize_support**:
    - Tags: Boolean
- Tags: JSON
### 404:

#### status:
- Description: invalid_request_error The API returns a 404 error for unavailable bin information or when the bin length is outside the 6-9 digit range
- Tags: string

#### error_code:
- Description: object_not_found
- Tags: string

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



### API Latency Guidelines




#### **What is API Latency?** 



Time taken by the server to respond to the API request.


#### **Average API Percentile Metrics and Recommended Timeout** 



**TP50 (ms)** : This represents the median latency, meaning 50% of all requests are completed in this time or less. It indicates the typical performance experienced by the majority of users.

**TP90 (ms)** : This value shows that 90% of requests are completed within this time, leaving 10% of requests that take longer. It gives insight into the performance for a broader set of users, beyond the median.

**TP99 (ms)** : This value indicates that 99% of requests finish within this time, with only 1% of requests taking longer. It helps identify outlier cases where latency may become an issue for a small group of users.

**TP99.9 (ms)** : This metric captures extreme latency outliers, where only 0.1% of requests take longer than this value. It’s useful for understanding edge cases where performance degrades for very few users.

**TP99.99 (ms)** : This measures the most rare and severe performance outliers, where just 0.01% of requests exceed this time. Monitoring this helps in addressing the rarest and most critical latency issues that may impact user experience in exceptional scenarios.


|  Transaction Percentile |  Latency (ms) |
|---|---|
|  TP50 (ms) | 5 |
|  TP90 (ms) | 27.57 |
|  TP99 (ms) | 60.28 |
|  TP99.9 (ms) | 131.14 |
| Recommended Timeout(ms) | 1000 |


> **Warning**
> The recommended timeouts are based on TP99.9 data, though edge cases (0.01% of requests) may still exceed these limits and are captured in the TP99.99 data as shown below.
> 
> 
> |  Transaction Percentile |  Latency (ms) |
> |---|---|
> |  TP99.99 (ms) | 224.57 |
> | Recommended Timeout(ms) | 1000 |
> 

