List Payment Links
Retrieve a paginated list of all payment links with their status, amounts, and metadata.
List Payment Links
Version: 3.0.0
Generate an API Key for the Payment Link channel before making requests.
Fetch a paginated list of all payment links associated with your merchant account. Each entry includes the link's configuration, status, amount, and creation timestamps. Use this endpoint to monitor and manage your payment links in bulk.
Endpoint
| Method | URL |
|---|---|
| GET | https://api.payorc.com/payment-links/v1/list |
Please use the test credentials for sandbox testing.
Authentication
| Header | Type | Description |
|---|---|---|
merchant-key | String | Your merchant key |
merchant-secret | String | Your merchant secret |
Query Parameters
| Field | Type | Required | Description |
|---|---|---|---|
perpage | Number | Yes | Records per page (1 – 1000) |
page | Number | Yes | Page number (1 – 1000) |
status | String | No | Filter by status: Active, Deactivated, or Expired |
description | String | No | Filter by description (max 100 characters) |
currency | String | No | Filter by ISO 4217 currency code |
is_expiry | String | No | Filter by expiry flag: yes or no |
expiry_from_date | String | No | Start of expiry date range (YYYY-MM-DD). Requires expiry_to_date |
expiry_to_date | String | No | End of expiry date range (YYYY-MM-DD). Requires expiry_from_date |
amount_condition | String | No | Amount comparison: equal_to, greater_then, less_then, greater_then_equal, or less_then_equal. Use together with amount |
amount | Number | No | Amount to compare against (min 1). Use together with amount_condition |
customer_name | String | No | Filter by customer name (max 50 characters) |
customer_email | String | No | Filter by customer email (max 50 characters) |
product_details | String | No | Filter by product details (max 200 characters) |
perpage and page are required. When filtering by expiry date, send both expiry_from_date and expiry_to_date. When filtering by amount, send both amount_condition and amount.
Response (200 OK)
| Field | Type | Description |
|---|---|---|
data | Array | List of payment link objects |
data[].data_id | String | Data ID of the payment link |
data[].link_id | String | Human-readable link reference number |
data[].amount | Object | Amount details |
data[].amount.currency | String | ISO 4217 currency code (3 characters) |
data[].amount.value | Number | Payment amount |
data[].shipping_fee | Number | Shipping fee |
data[].convenience_fee | Number | Convenience fee |
data[].no_quantity_per_transaction | Number | Maximum quantity per transaction |
data[].no_of_transactions_per_user | Object | Transaction limits per user |
data[].no_of_transactions_per_user.no_limit | String | yes if unlimited, no otherwise |
data[].no_of_transactions_per_user.frequency | String | Frequency: per_day, per_month, or till_expiry |
data[].no_of_transactions_per_user.quantity | Number | String | Quantity allowed, or "No Limit" when no_limit is yes |
data[].total_quantity_allowed | Object | Total quantity limits |
data[].total_quantity_allowed.no_limit | String | yes if unlimited, no otherwise |
data[].total_quantity_allowed.frequency | String | Frequency: per_day, per_month, or till_expiry |
data[].total_quantity_allowed.quantity | Number | String | Quantity allowed, or "No Limit" when no_limit is yes |
data[].link_expiry | Object | Expiry configuration |
data[].link_expiry.start_date | String | Link start date (DD-MM-YYYY) |
data[].link_expiry.is_expiry | String | yes if expiry is set, no otherwise |
data[].link_expiry.end_date | String | Expiry date (YYYY-MM-DD), or "No expiry" when is_expiry is no |
data[].payment_link | String | Shareable payment URL |
data[].expiry_status | String | Expired, Not Expired, or No expiry date |
data[].status | String | Active or Deactivated |
data[].final_status | String | Overall lifecycle state: Active, Expired, or Deactivated |
data[].qr_code | String | QR code as a base64 image |
data[].description | String | Link description |
data[].error_msg | String | Custom error message (if set) |
data[].customer_name | String | Customer name (empty string if not set) |
data[].customer_email | String | Customer email (empty string if not set) |
data[].product_details | String | Product details (empty string if not set) |
data[].m_order_id | String | Merchant order ID (empty string if not set) |
data[].m_customer_id | String | Merchant customer ID (empty string if not set) |
data[].customer_mobile | String | Customer mobile number (empty string if not set) |
data[].customer_mobile_code | String | Mobile country code (empty string if not set) |
data[].split_bill | Number | 0 = disabled, 1 = enabled |
data[].tip | Number | 0 = disabled, 1 = enabled |
data[].urls | Object | Redirect and webhook URLs configured on this link |
data[].urls.success | String | Success redirect URL (empty string if not set) |
data[].urls.failure | String | Failure redirect URL (empty string if not set) |
data[].urls.cancel | String | Cancel redirect URL (empty string if not set) |
data[].urls.webhook_url | String | Webhook URL for orders from this link (empty string if not set) |
data[].created_at | String | Creation timestamp (DD-MM-YYYY HH:mm:ss) |
data[].updated_at | String | Last update timestamp (DD-MM-YYYY HH:mm:ss) |
message | String | Response message |
status | String | Response status |
code | String | Response code (00 on success) |
total_records | Number | Total number of matching records |
Code Examples
curl -X GET "https://api.payorc.com/payment-links/v1/list?perpage=10&page=1" \
-H "merchant-key: YOUR_MERCHANT_KEY" \
-H "merchant-secret: YOUR_MERCHANT_SECRET"Example Response
{
"data": [
{
"data_id": "6a1d4f160b1b43999539e9ad1cc9565d",
"link_id": "0000002058",
"amount": {
"currency": "AED",
"value": 100
},
"shipping_fee": 50,
"convenience_fee": 20,
"no_quantity_per_transaction": 9,
"no_of_transactions_per_user": {
"no_limit": "no",
"frequency": "per_day",
"quantity": 3
},
"total_quantity_allowed": {
"no_limit": "yes",
"frequency": "per_day",
"quantity": "No Limit"
},
"link_expiry": {
"start_date": "15-01-2026",
"is_expiry": "yes",
"end_date": "2026-12-31"
},
"payment_link": "https://checkout.payorc.com/checkout/qr/6a1d4f160b1b43999539e9ad1cc9565d",
"expiry_status": "Not Expired",
"status": "Active",
"final_status": "Active",
"qr_code": "data:image/png;base64,...",
"description": "Product purchase",
"error_msg": "",
"customer_name": "",
"customer_email": "",
"product_details": "Wireless Bluetooth Headphones",
"m_order_id": "ORD-2026-001",
"m_customer_id": "CUST-123",
"customer_mobile": "9876543210",
"customer_mobile_code": "91",
"split_bill": 0,
"tip": 0,
"urls": {
"success": "https://merchant.example.com/success",
"failure": "https://merchant.example.com/failure",
"cancel": "https://merchant.example.com/cancel",
"webhook_url": "https://merchant.example.com/webhook"
},
"created_at": "15-01-2026 10:30:00",
"updated_at": "15-01-2026 10:30:00"
}
],
"message": "List fetched successfully.",
"status": "success",
"code": "00",
"total_records": 1
}Use final_status in each payment link object to determine the link's overall lifecycle state (Active, Expired, or Deactivated).