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

# Create Payout Links Using Contact ID

> Create Payout Links via API using RazorpayX Contact id.

<div style={{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.35rem 0.9rem",border:"1px solid rgba(128,128,128,0.28)",borderRadius:"0.5rem",padding:"0.45rem 0.75rem",margin:"0 0 1.25rem",fontSize:"0.875rem"}}>
  <span style={{fontWeight:600}}>Available in</span>
  <span>🇮🇳 India</span>
  <span>🇸🇬 Singapore</span>
  <span>🇺🇸 United States</span>
</div>

Use this endpoint to create a Payout Link using the Contact id of the recipient. [Create a Contact](/docs/x/contacts#create-a-contact) to generate the Contact id/Customer id.

<RequestExample>
  ```bash Curl theme={null}
  curl -u <YOUR_KEY>:<YOUR_SECRET> \
  -X POST https://api.razorpay.com/v1/payout-links \
  -H "Content-Type: application/json" \
  -d '{
    "account_number": "7878780080857996",
    "contact": {
      "id": "cont_00000000000001"
    }, // Only applicable when you have the bank account details of the recipient saved as a RazorpayX Contact. 
    "amount": 1000,
    "currency": "INR",
    "purpose": "refund",
    "description": "Payout link for Gaurav Kumar",
    "receipt": "Receipt No. 1",
    "send_sms": true,
    "send_email": true,
    "notes": {
      "notes_key_1":"Tea, Earl Grey, Hot",
      "notes_key_2":"Tea, Earl Grey… decaf."
    },
    "expire_by": 1545384058 // This parameter can be used only if you have enabled the expiry feature for Payout Links.
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "id": "poutlk_00000000000001",
    "entity": "payout_link",
    "contact": {
      "name": "Gaurav Kumar",
      "email": "gaurav.kumar@example.com",
      "contact": "912345678"
    },
    "purpose": "refund",
    "status": "issued",
    "amount": 1000,
    "currency": "INR",
    "description": "Payout link for Gaurav Kumar",
    "short_url": "https://rzp.io/i/3b1Tw6",
    "created_at": 1545383037,
    "contact_id": "cont_00000000000001",
    "send_sms": true,
    "send_email": true,
    "fund_account_id": null,
    "cancelled_at": null,
    "attempt_count": 0,
    "receipt": "Receipt No. 1",
    "notes": {
      "notes_key_1":"Tea, Earl Grey, Hot",
      "notes_key_2":"Tea, Earl Grey… decaf."
    },
    "expire_by": 1545384058,
    "expired_at": 1545384658
  }
  ```
</ResponseExample>

## Request Parameters

<ParamField body="account_number" type="string" required>
  The account from which you want to make the payout.<br />Account details can be found on the [RazorpayX Dashboard](https://x.razorpay.com/settings/banking). For example, `7878780080316316`.

  * Pass your customer identifier if you want money to be deducted from RazorpayX Lite.
  * Pass your current account number if you want money to be deducted from your current account.

  <Warning>
    **Watch Out!**

    * This is **NOT** your contact's bank account number. Log in to your [**RazorpayX Dashboard**](https://x.razorpay.com/auth/?intent=current_account) and go to **My Account & Settings → Banking → Customer Identifier**.
    * This value is different for Test Mode and Live Mode.
  </Warning>
</ParamField>

<ParamField body="contact" type="object" required>
  Details of the contact to whom the Payout Link is to be sent.
</ParamField>

<ParamField body="id" type="string" required>
  The unique identifer for the contact. For example, `cont_00000000000001`. <br /> <br /> If you are using this, do not use the other parameters in the array.
</ParamField>

<ParamField body="amount" type="integer" required>
  The amount, in paise, to be transferred from the business account to the contact's fund account. For example, pass `1000000` to transfer an amount of ₹10,000. The minimum value that can be passed is `100`. <br /> <br /> The value passed here does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
</ParamField>

<ParamField body="currency" type="string" required>
  The currency in which the payout is being made. Here, it is `INR`.
</ParamField>

<ParamField body="purpose" type="string" required>
  The purpose of the payout that is being created via the Payout Link. For example, `refund`.<br /><br />Classifications available by default:

  * `refund`
  * `cashback`
  * `payout`
  * `salary`
  * `utility bill`
  * `vendor bill` <br />

  Additional purposes for payouts can be created via the [Dashboard](https://x.razorpay.com/) and then used in the API. You cannot create new payout purposes via the API.
</ParamField>

<ParamField body="description" type="string" required>
  Add a description to communicate the context of the Payout Link to the recipient. For example, `Cashback for Mr. Gaurav Kumar on the purchase on Earl Grey Tea`.
</ParamField>

<ParamField body="receipt" type="string">
  A user-entered receipt number for the payout. For example, `Receipt No. 1`.
</ParamField>

<ParamField body="send_sms" type="boolean">
  Possible values:

  * `true`: Razorpay sends the Payout Link to the provided contact number via SMS.
  * `false` (default): You send the Payout Link to the contact via SMS.
</ParamField>

<ParamField body="send_email" type="boolean">
  Possible values:

  * `true`: Razorpay sends the Payout Link to the provided email address via email.
  * `false` (default): You send the Payout Link to the contact via email.
</ParamField>

<ParamField body="notes" type="object">
  User-entered notes for internal reference. This is a key-value pair. You can enter a maximum of 15 key-value pairs. For example, `"note_key": "Beam me up Scotty”`.
</ParamField>

<ParamField body="expire_by" type="integer">
  Timestamp, in Unix, when the Payout Link was to expire. This is set at the time of creation of the Payout Link and is set at least 15 minutes ahead of the current time. <br /> <br /> This value is returned only if you have enabled the expiry feature for Payout Links. Know how to [set expiry](/docs/x/payout-links/set-expiry) to Payout Links.
</ParamField>

## Response Parameters

<ResponseField name="id" type="string">
  The unique identifier of the Payout Link that is created. For example, `poutlk_00000000000001`.
</ResponseField>

<ResponseField name="entity" type="string">
  The entity being created. Here it will be `payout_link`.
</ResponseField>

<ResponseField name="contact" type="object">
  Details of the contact to whom the Payout Link is to be sent.
</ResponseField>

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

<ResponseField name="type" type="string">
  Classification of the contact being created. For example, `employee`.
</ResponseField>

<ResponseField name="contact" type="string">
  The contact's phone number. For example, `9000090000`.
</ResponseField>

<ResponseField name="email" type="string">
  The contact's email address. For example, `gaurav.kumar@example.com`.
</ResponseField>

<ResponseField name="contact_id" type="string">
  The unique identifier of the contact to whom the Payout Link has to be sent. For example, `cont_00000000000001`.
</ResponseField>

<ResponseField name="fund_account_id" type="string">
  The unique identifier of the contact's fund account to which the payout will be made. For example, `fa_00000000000001`. <br /> <br /> Fund Account id is returned only when the Payout Link moves to the [`processing` state](/docs/x/payout-links/life-cycle).
</ResponseField>

<ResponseField name="payout_id" type="string">
  The unique identifier for the payout made to the contact. For example, `pout_00000000000001`. <br /> <br /> This value is returned only when the Payout Link moves to the [`processed` state](/docs/x/payout-links/life-cycle).
</ResponseField>

<ResponseField name="purpose" type="string">
  The purpose of the payout. For example, `refund`, `cashback` or `payout`.
</ResponseField>

<ResponseField name="status" type="string">
  The Payout Link status. Possible values:

  * `pending`
  * `issued`
  * `processing`
  * `processed`
  * `cancelled`
  * `rejected`

  <br />

  Refer to the [Payout Link Life Cycle section](/docs/x/payout-links/life-cycle) for more details.
</ResponseField>

<ResponseField name="amount" type="integer">
  The amount, in paise, to be transferred from the business account to the contact's fund account. <br /> <br /> The value passed here does not include fees and tax. Fees and tax, if any, are deducted from your account balance.
</ResponseField>

<ResponseField name="currency" type="string">
  The currency in which the payout is being made. Here, it is `INR`.
</ResponseField>

<ResponseField name="description" type="string">
  A user-entered description for the Payout Link. For example, `Payout link for Gaurav Kumar`.
</ResponseField>

<ResponseField name="attempt_count" type="integer">
  The number of attempts to complete the payout.
</ResponseField>

<ResponseField name="receipt" type="string">
  A user-entered receipt number for the payout. For example, `Receipt No. 1`.
</ResponseField>

<ResponseField name="notes" type="object">
  User-entered notes for internal reference. This is a key-value pair. For example, `"note_key": "Beam me up Scotty”`.
</ResponseField>

<ResponseField name="short_url" type="string">
  A short link for the Payout Link that was created. This is the link that is shared with the contact.
</ResponseField>

<ResponseField name="send_sms" type="boolean">
  Possible values:

  * `true`: SMS sent to the provided contact number.
  * `false`: SMS could not be sent to the provided contact number. This could be because the contact number provided was wrong.
</ResponseField>

<ResponseField name="send_email" type="boolean">
  Possible values:

  * `true`: Email sent to the provided email address.
  * `false`: Email could not be sent to the provided email address. This could be because the email address provided was wrong.
</ResponseField>

<ResponseField name="created_at" type="integer">
  Timestamp, in Unix, when the Payout Link was created.
</ResponseField>

<ResponseField name="cancelled_at" type="integer">
  Timestamp, in Unix, when the Payout Link was cancelled by you. This value is returned only when the Payout Link moves to the `cancelled` state.
</ResponseField>

<ResponseField name="expire_by" type="integer">
  Timestamp, in Unix, when the Payout Link was to expire. This is set at the time of creation of the Payout Link and is set at least 15 minutes ahead of the current time. <br /> <br /> This value is returned only if you have enabled the expiry feature for Payout Links. Know more about how to [set expiry](/docs/x/payout-links/set-expiry) to Payout Links.
</ResponseField>

<ResponseField name="expired_at" type="integer">
  Timestamp, in Unix, when the Payout Link expired. This is set at the time of creation of the Payout Link.
</ResponseField>
