---
page_source: https://juspay.io/in/docs/ec-headless/cordova/mandates/verify-vpa-api
page_title: Verify VPA API
---

## API Version: default


# Verify VPA 2.0



The Virtual Payment Address or VPA is a unique ID given to an individual using the Unified Payment Interface (UPI) service to send or receive money. In the case of UPI collect VPA is the mandatory param and merchants are always advised to check if the VPA is valid or not.Validating the VPA will help in reducing the failure rate due to incorrect vpa. 

Currently, we have verify VPA API support for the below-acquiring partners.

AXISCASHFREEHDFCHSBCICICIINDUSKOTAKPAYUPAYTMRAZORPAYYESBANK

> **Note**
> * Either the customer id or the order id is mandatory for clientAuthToken based verify VPA request.
> * The response payload also contains `mandate_details`block where mandate eligibility of the VPA is shown.

## Endpoints:
- Sandbox: https://sandbox.juspay.in/v2/upi/verify-vpa

- Production: https://api.juspay.in/v2/upi/verify-vpa

## Request Type: 
POST

## Headers:

#### Content-Type:
application/x-www-form-urlencoded
- Tags: string

#### Authorization:
Base 64 encoded value of the API key
- Tags: string
## Sample Code Snippets:
### Sample Request:

#### Request - With API Key Code Snippet:

```request - with api key
curl --location --request POST 'https://api.juspay.in/v2/upi/verify-vpa' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic RDR****DQkVC****BQjc0QThCOg==' \
--data-urlencode 'vpa=9999999999@upi' \
--data-urlencode 'merchant_id=merchantId'
```

#### Request - With Client Auth Token Code Snippet:

```request - with client auth token
curl --location --request POST 'https://api.juspay.in/v2/upi/verify-vpa' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'vpa=9999999999@upi' \
--data-urlencode 'merchant_id=MerchantId' \
--data-urlencode 'client_auth_token=tkn_f4c63734420644dd8849ff17b926bf062' \
--data-urlencode 'customer_id=CustObj_refid_2217_36'
```

### Sample Response:

#### Response:
```json
{
    "vpa": "9999999999@upi",
    "status": "VALID",
    "mandate_details": {
      "is_handle_supported": true
    },
    "customer_name": "Verified"
  }
```

## Body Parameters:
### Basic Parameters:

#### vpa:
- Description: The VPA for which the eligibility has to be checked
- Value: value
- Tags: String, Mandatory

#### merchant_id:
- Description: The merchant id that the merchant holds with Juspay
- Tags: String, Mandatory

#### client_auth_token:
- Description: The authentication token required for client side calls. Required if you are calling the API from Client Side 
- Tags: String

#### customer_id:
- Description: The unique id associated with the customer. Required for clientAuthToken based request 
- Tags: String

#### order_id:
- Description: Unique Identifier for the order. Required for clientAuthToken based request
- Tags: String
## API Responses:
### 200:

#### vpa:
- Description: The VPA sent in the request
- Tags: string

#### status:
- Description: The expected value is "VALID" for a valid VPA and "INVALID" for incorrect VPA
- Tags: string

#### mandate_details:
- Description: Details specific to mandate support
- Value:
  - **Is_handle_supported**:
    - Tags: boolean
- Tags: object

#### customer_name:
- Description: The name of the customer provided during VPA registration. The default value for a valid VPA will be "verified".
- Tags: string
### 400:

#### status:
- Description: Invalid Request
- Tags: string

#### error_code:
- Description: invalid_request_error
- Tags: string

#### error_message:
- Description: VPA can't be empty or null
- Tags: string
