> ## Documentation Index
> Fetch the complete documentation index at: https://razorpay-60c89f9a-mintlify-audit-missing-sections-1778528421.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a Fund Account of Type VPA

> **POST** `/v1/fund_accounts`

Use this endpoint to create a fund account with VPA details.- A new fund account is created if any combination of the following details is unique: `contact_id` and `vpa.address`.

* If **all** the above details match the details of an existing fund account, the API returns details of the existing fund account.
* You cannot edit the details of a fund account.

### Request

```curl: Curl theme={null}
curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \
-X POST https://api.razorpay.com/v1/fund_accounts \
-H "Content-Type: application/json" \
-d '{
  "account_type":"vpa",
  "contact_id":"cont_00000000000001",
  "vpa":{
    "address":"gaurav.kumar@exampleupi"
  }
}'
```

### Response

```json: Success theme={null}
{
  "id": "fa_00000000000002",
  "entity": "fund_account",
  "contact_id": "cont_00000000000001",
  "account_type": "vpa",
  "vpa": {
    "username": "gaurav.kumar",
    "handle": "exampleupi",
    "address": "gaurav.kumar@exampleupi"
  },
  "active": true,
  "batch_id": null,
  "created_at": 1545223741
}
```

### Parameters

`contact_id`*mandatory*
: `string` This is the unique identifier linked to a contact. For example, `cont_00000000000001`.

`account_type`*mandatory*
: `string` The fund account type you want to link to the contact ID. Here it is `vpa`.

`vpa`*mandatory*
: `object` The contact's virtual payment address (VPA) details.

`address`*mandatory*
: `string` Between 3 and 100 characters. Supported characters: `a-z`, `A-Z`, `0-9`, `.`, `-` and one `@`. The virtual payment address. For example, `gauravkumar@exampleupi`.

### Parameters

`id`
: `string` The unique identifier linked to the fund account validation. For example, `fav_0000000001`.

`entity`
: `string` Here it is `fund_account.validation`.

`status`
: `string` The status of the account validation transaction.
Possible values: - `created`

* `completed`
* `failed`

`validation_results`
: `object` Details extracted from the results of the fund account validation.

`account_status`
: `string` Displays if the account is valid or not.
Possible values: - `active`

* `invalid`

  `registered_name`
  : `string` The name linked to the account. For example,`Gaurav Kumar` or `null`.

  `details`
  : `string` Brief description of the validation.

  `name_match_score`
  : `string` The percentage score indicating how closely the account holder's name matches the records.

`validated_account_type`
: `string` Here it is `bank_account`.

`bank_account`
: `object` The contact's bank account details.

`bank_routing_code`
: `string` Beneficiary bank IFSC. For example, `HDFC0000053`.

`account_number`
: `string` Beneficiary account number. For example, `765432123456789`.

`bank_name`
: `string` The contact's bank name. For example, `HDFC`.

`account_type`
: `string` The account type being validated. For example `savings`, `current`.

`status_details`
: `object` Status of the fund account validation.

`description`
: `string` A brief description stating if the validation is complete or not.

`source`
: `string` The source from which validation was done. For example, `beneficiary_bank`

`reason`
: `string` Reason for validation.

`reference_id`
: `string` Unique reference\_id generated for the validation transaction.

`fund_account`
: `object` The details of the fund account which was validated.

`id`
: `string` The unique identifier linked to the fund account. For example, `fa_00000000000001`.

`entity`
: `string` Here it is `fund_account`.

`account_type`
: `string` Fund account type.

`vpa`
: `object` The details associated with the account holder's virtual payment address.

`address`
: `string` The virtual payment address of the contact whose account is validated. For example, `gaurav.kumar@exampleupi`

`active`
: `boolean` Possible values of fund account status:

* `true`: active
* `false`: inactive

`created_at`
: `integer` Timestamp, in unix, when the fund account was created. For example, `1543650891`.

`contact`
: `object` The contact's details.

`id`
: `string` The unique identifier linked to the contact. For example, `cont_00000000000001`.

`entity`
: `string` Here it is `contact`

`name`
: `string` Account holder's name. For example,`Gaurav Kumar`.

`email`
: `string` Email address of the contact.

`contact`
: `string` Phone number of the contact.

`type`
: `string` Contact Type. For example, `employee`, `contractor`.

`reference_id`
: `string` Reference id associated with the contact.

`active`
: `boolean` Possible values of contact status:

* `true`: active
* `false`: inactive
