> ## 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 Payout to Externally Tokenised Card

> Create a Payout by saving an external Tokenised Card using API.

Use this endpoint to create a payout to fund account type `card` by saving the card as an external token.

To understand the status of the payouts, refer to [Payout Status Details](/docs/errors/x/payout-status-details).

<Warning>
  **Watch Out!**

  Ensure you [allowlist IPs](/docs/x/dashboard/allowlist-ip) and pass the [idempotency key](/docs/api/x/payout-idempotency/make-request) to make a successful payout.
</Warning>

<RequestExample>
  ```bash Curl theme={null}
  curl -u <YOUR_KEY>:<YOUR_SECRET> \
  -X POST https://api.razorpay.com/v1/payouts \
  -H "Content-Type: application/json" \
  -H "X-Payout-Idempotency: 53cda91c-8f81-4e77-bbb9-7388f4ac6bf4" \
  -d '{
    "account_number": "7878780080316316",
    "fund_account_id": "fa_00000000000001",
    "amount": 1000000,
    "currency": "INR",
    "mode": "card",
    "purpose": "refund",
    "queue_if_low_balance": true,
    "reference_id": "Acme Transaction ID 12345",
    "narration": "Acme Corp Fund Transfer",
    "notes": {
      "notes_key_1": "Tea, Earl Grey, Hot",
      "notes_key_2": "Tea, Earl Grey… decaf."
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Success theme={null}
  {
    "id": "pout_00000000000001",
    "entity": "payout",
    "fund_account_id": "fa_00000000000001",
    "amount": 1000000,
    "currency": "INR",
    "notes": {
      "notes_key_1": "Tea, Earl Grey, Hot",
      "notes_key_2": "Tea, Earl Grey… decaf."
    },
    "fees": 590,
    "tax": 90,
    "status": "processed",
    "utr": null,
    "mode": "card",
    "purpose": "refund",
    "reference_id": "Acme Transaction ID 12345",
    "narration": "Acme Corp Fund Transfer",
    "batch_id": null,
    "failure_reason": null,
    "created_at": 1545383037,
    "fee_type": "",
    "error": {
      "description": null,
      "source": null,
      "reason": null
    }
  }
  ```
</ResponseExample>

## Request Parameters

<ParamField body="account_number" type="string" required>
  The account from which you want to make the payout. Account details can be found on the RazorpayX Dashboard. For example, `7878780080316316`.

  <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="amount" type="integer" required>
  The payout amount, in paise. For example, if you want to transfer ₹10000, pass `1000000`. Minimum value is `100`.
</ParamField>

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

<ParamField body="mode" type="string" required>
  The mode to be used to create the payout. Available modes:

  * `NEFT`
  * `RTGS`
  * `IMPS`
  * `UPI`
  * `card`
</ParamField>

<ParamField body="purpose" type="string" required>
  The purpose of the payout that is being created. The following classifications are available in the system 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. However, it is not possible to create a new purpose for the payout via the API.
</ParamField>

<ParamField body="fund_account_id" type="string" required>
  The unique identifier linked to the fund account.
</ParamField>

<ParamField body="reference_id" type="string">
  Maximum length is 40 characters. A user-generated reference given to the payout. For example, `Acme Transaction ID 12345`. You can use this field to store your own transaction ID, if any.
</ParamField>

<ParamField body="narration" type="string">
  Maximum length 30 characters. Allowed characters: `a-z`, `A-Z`, `0-9` and space. This is a custom note that also appears on the bank statement. If no value is passed for this parameter, it defaults to the Merchant Billing Label. <br /> <br /> Enter the important text in the first 9 characters as banks truncate the rest as per their standards.
</ParamField>

<ParamField body="queue_if_low_balance" type="boolean">
  The payout is automatically queued if the account balance is low.
</ParamField>

## Response Parameters

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

<ResponseField name="entity" type="string">
  The entity being created. For example, `payout`.
</ResponseField>

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

<ResponseField name="fund_account" type="object">
  The account to which you want to make the payout.
</ResponseField>

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

<ResponseField name="account_type" type="string">
  The type of account linked to the contact id. Here, it will be `card`.
</ResponseField>

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

<ResponseField name="contact" type="object" />

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

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

<ResponseField name="name" type="string">
  The contact's name. For example, `Gaurav Kumar`.
</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="type" type="string">
  A classification for the contact being created. For example, `employee`.
</ResponseField>

<ResponseField name="reference_id" type="string">
  A user-entered reference for the contact. For example, `Acme Contact ID 12345`.
</ResponseField>

<ResponseField name="batch_id" type="string">
  This value is returned if the contact was created as part of a bulk upload. For example, `batch_00000000000001`.
</ResponseField>

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

  * `true` (default): active
  * `false`: inactive
</ResponseField>

<ResponseField name="notes" type="object">
  Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, `"note_key": "Beam me up Scotty”`.
</ResponseField>

<ResponseField name="created_at" type="integer">
  Timestamp, in Unix, when the contact was created. For example, `1545320320`.
</ResponseField>

<ResponseField name="card" type="object">
  The details of the card used.
</ResponseField>

<ResponseField name="last4" type="string">
  The last 4 digits of the card number. If the input\_type = `service_provider_token` then it is the last 4 digits of the card token.
</ResponseField>

<ResponseField name="network" type="string">
  The network operator that has issued the card. For example, `Mastercard`, `Visa`.
</ResponseField>

<ResponseField name="type" type="string">
  The type of card. For example, `credit` or `debit`.
</ResponseField>

<ResponseField name="issuer" type="string">
  The bank that has issued the card. For example, `ICIC`, `HDFC`.
</ResponseField>

<ResponseField name="input_type" type="string">
  Possible values:

  * `service_provider_token` : When the token number used is provided by an external service.
  * `card` : When a card number is provided.
  * `razorpay_token` : When the token id used is provided by Razorpay.
</ResponseField>

<ResponseField name="amount" type="integer">
  The payout amount, in paise. For example, if you want to transfer ₹10,000, pass `1000000`. Minimum value `100`. <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 payout currency. Here, it is `INR`.
</ResponseField>

<ResponseField name="notes" type="array of objects">
  Key-value pair that can be used to store additional information about the entity. Maximum 15 key-value pairs, 256 characters (maximum) each. For example, `"note_key": "Beam me up Scotty”`.
</ResponseField>

<ResponseField name="fees" type="integer">
  The fees for the payout. This value is returned only when the payout moves to the `processing` state. For example, `5`.
</ResponseField>

<ResponseField name="tax" type="integer">
  The tax that is applicable for the fee being charged. This value is returned only when the payout moves to the `processing` state. For example, `1`.
</ResponseField>

<ResponseField name="status" type="string">
  The status of the payout. Possible payout states:

  * `queued`
  * `pending` (if you have [Approval Workflow](/docs/x/manage-teams/approval-workflow) enabled)
  * `rejected` (if you have [Approval Workflow](/docs/x/manage-teams/approval-workflow) enabled)
  * `processing`
  * `processed`
  * `cancelled`
  * `reversed`
</ResponseField>

<ResponseField name="purpose" type="string">
  The purpose of the payout that is being created. The following classifications are available in the system by default:

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

<ResponseField name="utr" type="string">
  The unique transaction number linked to a payout. For example, `HDFCN00000000001`.
</ResponseField>

<ResponseField name="mode" type="string">
  The mode used to make the payout. Available modes:

  * `NEFT`
  * `RTGS`
  * `IMPS`
  * `UPI`
  * `card` <br />

  The payout modes are case-sensitive.
</ResponseField>

<ResponseField name="reference_id" type="string">
  Maximum length is 40 characters. A user-generated reference given to the payout. For example, `Acme Transaction ID 12345`. You can use this field to store your own transaction ID, if any.
</ResponseField>

<ResponseField name="narration" type="string">
  Maximum length 30 characters. Allowed characters: `a-z`, `A-Z`, `0-9` and space. This is a custom note that also appears on the bank statement. If no value is passed for this parameter, it defaults to the Merchant Billing Label. <br /> <br /> Enter the important text in the first 9 characters as banks truncate the rest as per their standards.
</ResponseField>

<ResponseField name="batch_id" type="string">
  This value is returned if the contact was created as part of a bulk upload. For example, `batch_00000000000001`.
</ResponseField>

<ResponseField name="status_details" type="object">
  This parameter returns the current status of the payout. For example, `IMPS is not enabled on beneficiary account, Retry with different mode.`
</ResponseField>

<ResponseField name="description" type="string">
  A description for the error. For example, `IMPS is not enabled on beneficiary account, please retry with different mode`.
</ResponseField>

<ResponseField name="source" type="string">
  Possible values:

  * `gateway`: Technical error at Razorpay Partner bank.
  * `beneficiary_bank`: Technical error at beneficiary bank.
  * `business`: Merchant action required.
  * `internal`: Technical error at Razorpay's server.
</ResponseField>

<ResponseField name="reason" type="string">
  The error reason. For example, `imps_not_allowed`. Know more about [Payout Status Details and Next Steps](/docs/errors/x/payout-status-details).
</ResponseField>

<ResponseField name="created_at" type="integer">
  Timestamp, in Unix, when the contact was created. For example, `1545320320`.
</ResponseField>

<ResponseField name="fee_type" type="string">
  Indicates the fee type charged for the payout. Possible value is `free_payout`.
</ResponseField>
