---
title: "Create a payout link"
method: POST
path: "/payout-links"
tags: ["X Payout Links"]
---

# Create a payout link

`POST /payout-links`

Send a payout link to a contact when fund account details are unavailable. expire_by must be at least 15 minutes in the future.

## Request body

- object
  - `contact_id` string, required
  - `amount` integer, required — Amount in paise
  - `currency` 'INR', required
  - `purpose` string, required
  - `description` string
  - `receipt` string
  - `send_sms` boolean
  - `send_email` boolean
  - `notes` object
  - `expire_by` integer — Unix timestamp; must be ≥15 minutes from now

## Response `200`

Payout link created

- PayoutLink — Payout link sent to a contact when fund account details are unavailable.
  - `id` string — Payout link ID (poutlk_*)
  - `entity` 'payout_link'
  - `contact_id` string
  - `contact` object
    - `name` string
    - `email` string
    - `contact` string
    - `type` string
  - `amount` integer — Amount in paise
  - `currency` string
  - `purpose` string
  - `status` 'pending' | 'issued' | 'processing' | 'processed' | 'cancelled' | 'rejected'
  - `fund_account_id` string
  - `payout_id` string
  - `description` string
  - `receipt` string
  - `notes` object
  - `send_sms` boolean
  - `send_email` boolean
  - `short_url` string
  - `attempt_count` integer
  - `created_at` integer
  - `cancelled_at` integer
  - `expire_by` integer — Must be at least 15 minutes in the future
  - `expired_at` integer

## Other responses

- `400` — Bad request. Invalid parameters or missing required fields.
- `401` — Authentication failed. Invalid or missing API key credentials.
- `429` — Rate limit exceeded. Implement exponential backoff with jitter before retrying.
- `500` — Internal server error.

---

[API](https://skmtc.net/curlec/apis/razorpay-api.md) · [All operations](https://skmtc.net/curlec/apis/razorpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/curlec/razorpay-api/versions/824ca9e6faef/schema)
