> ## Documentation Index
> Fetch the complete documentation index at: https://doc-test-my.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a Fund Account of Type VPA

> Create a Fund Account of the type VPA via API.

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.

<RequestExample>
  ```bash 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"
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```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
  }
  ```
</ResponseExample>

## Request Parameters

<ParamField body="contact_id" type="string" required>
  This is the unique identifier linked to a contact. For example, `cont_00000000000001`.
</ParamField>

<ParamField body="account_type" type="string" required>
  The fund account type you want to link to the contact ID. Here it is `vpa`.
</ParamField>

<ParamField body="vpa" type="object" required>
  The contact's virtual payment address (VPA) details.
</ParamField>

<ParamField body="address" type="string" required>
  Between 3 and 100 characters. Supported characters: `a-z`, `A-Z`, `0-9`, `.`, `-` and one `@`. The virtual payment address. For example, `gauravkumar@exampleupi`.
</ParamField>

## Response Parameters

<ResponseField name="id" type="string">
  The unique identifier linked to the fund account validation. For example, `fav_0000000001`.
</ResponseField>

<ResponseField name="entity" type="string">
  Here it is `fund_account.validation`.
</ResponseField>

<ResponseField name="status" type="string">
  The status of the account validation transaction.
  Possible values:

  * `created`
  * `completed`
  * `failed`
</ResponseField>

<ResponseField name="validation_results" type="object">
  Details extracted from the results of the fund account validation.
</ResponseField>

<ResponseField name="account_status" type="string">
  Displays if the account is valid or not.
  Possible values:

  * `active`
  * `invalid`
</ResponseField>

<ResponseField name="registered_name" type="string">
  The name linked to the account. For example,`Gaurav Kumar` or `null`.
</ResponseField>

<ResponseField name="details" type="string">
  Brief description of the validation.
</ResponseField>

<ResponseField name="name_match_score" type="string">
  The percentage score indicating how closely the account holder's name matches the records.
</ResponseField>

<ResponseField name="validated_account_type" type="string">
  Here it is `bank_account`.
</ResponseField>

<ResponseField name="bank_account" type="object">
  The contact's bank account details.
</ResponseField>

<ResponseField name="bank_routing_code" type="string">
  Beneficiary bank IFSC. For example, `HDFC0000053`.
</ResponseField>

<ResponseField name="account_number" type="string">
  Beneficiary account number. For example, `765432123456789`.
</ResponseField>

<ResponseField name="bank_name" type="string">
  The contact's bank name. For example, `HDFC`.
</ResponseField>

<ResponseField name="account_type" type="string">
  The account type being validated. For example `savings`, `current`.
</ResponseField>

<ResponseField name="status_details" type="object">
  Status of the fund account validation.
</ResponseField>

<ResponseField name="description" type="string">
  A brief description stating if the validation is complete or not.
</ResponseField>

<ResponseField name="source" type="string">
  The source from which validation was done. For example, `beneficiary_bank`
</ResponseField>

<ResponseField name="reason" type="string">
  Reason for validation.
</ResponseField>

<ResponseField name="reference_id" type="string">
  Unique reference\_id generated for the validation transaction.
</ResponseField>

<ResponseField name="fund_account" type="object">
  The details of the fund account which was validated.
</ResponseField>

<ResponseField name="id" type="string">
  The unique identifier linked to the fund account. For example, `fa_00000000000001`.
</ResponseField>

<ResponseField name="entity" type="string">
  Here it is `fund_account`.
</ResponseField>

<ResponseField name="account_type" type="string">
  Fund account type.
</ResponseField>

<ResponseField name="vpa" type="object">
  The details associated with the account holder's virtual payment address.
</ResponseField>

<ResponseField name="address" type="string">
  The virtual payment address of the contact whose account is validated. For example, `gaurav.kumar@exampleupi`
</ResponseField>

<ResponseField name="active" type="boolean">
  Possible values of fund account status:

  * `true`: active
  * `false`: inactive
</ResponseField>

<ResponseField name="created_at" type="integer">
  Timestamp, in unix, when the fund account was created. For example, `1543650891`.
</ResponseField>

<ResponseField name="contact" type="object">
  The contact's details.
</ResponseField>

<ResponseField name="id" type="string">
  The unique identifier linked to the contact. For example, `cont_00000000000001`.
</ResponseField>

<ResponseField name="entity" type="string">
  Here it is `contact`
</ResponseField>

<ResponseField name="name" type="string">
  Account holder's name. For example,`Gaurav Kumar`.
</ResponseField>

<ResponseField name="email" type="string">
  Email address of the contact.
</ResponseField>

<ResponseField name="contact" type="string">
  Phone number of the contact.
</ResponseField>

<ResponseField name="type" type="string">
  Contact Type. For example, `employee`, `contractor`.
</ResponseField>

<ResponseField name="reference_id" type="string">
  Reference id associated with the contact.
</ResponseField>

<ResponseField name="active" type="boolean">
  Possible values of contact status:

  * `true`: active
  * `false`: inactive
</ResponseField>
