---
title: "Fetch all payment links"
method: GET
path: "/payment_links"
tags: ["Payment Links"]
---

# Fetch all payment links

`GET /payment_links`

Retrieve all payment links. Filter by payment_id or reference_id to narrow results.

## Query parameters

- `payment_id` string
- `reference_id` string

## Response `200`

List of payment links.

- object
  - `payment_links` PaymentLink[]
    - `id` string — Unique payment link identifier. Prefix: plink_
    - `entity` 'payment_link'
    - `amount` integer — Payment amount in smallest currency unit (paise for INR). Three-decimal currencies (KWD, BHD, OMR): drop last decimal digit (e.g. 295.991 KWD → 295990). Zero-decimal currencies (JPY): pass value as-is.
    - `amount_paid` integer — Total amount paid by customer.
    - `currency` string — ISO 4217 currency code. UPI Payment Links only support INR.
    - `accept_partial` boolean — Allow partial payments. Not supported for UPI links.
    - `first_min_partial_amount` integer — Minimum amount required for the first partial payment.
    - `description` string — Brief description. Max 2048 characters.
    - `reference_id` string — Your unique tracking reference. Max 40 characters. Must be unique per link.
    - `expire_by` integer — Unix timestamp when link expires. Default: 6 months from creation. Must be at least 15 minutes in the future.
    - `expired_at` integer — Unix timestamp when link actually expired.
    - `cancelled_at` integer — Unix timestamp when link was cancelled.
    - `status` 'created' | 'partially_paid' | 'expired' | 'cancelled' | 'paid' — created: awaiting payment. partially_paid: one or more partial payments received. expired: past expiry with no full payment. cancelled: manually cancelled. paid: fully paid.
    - `upi_link` boolean — true if this is a UPI Payment Link, false for standard.
    - `short_url` string — Shareable short URL for the payment link.
    - `callback_url` string — Redirect URL after payment completion.
    - `callback_method` 'get'
    - `customer` object — Customer contact details. These are not auto-populated on the checkout page — customer must enter them manually.
      - `name` string
      - `email` string
      - `contact` string
    - `notify` object
      - `sms` boolean — true: Razorpay sends SMS notification. false: merchant handles.
      - `email` boolean — true: Razorpay sends email notification. false: merchant handles.
    - `reminder_enable` boolean — Send automatic payment reminders.
    - `payments` object[] — Captured payment records. Populated only after successful payment capture.
      - `amount` integer
      - `payment_id` string
      - `plink_id` string
      - `method` 'netbanking' | 'card' | 'wallet' | 'upi' | 'emi' | 'bank_transfer'
      - `status` 'captured'
      - `created_at` integer
      - `updated_at` integer
    - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
    - `order_id` string
    - `user_id` string — Identifier for the user role that created the link.
    - `created_at` integer
    - `updated_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.

---

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