Update Payment Link
Update an existing payment link. Only provided fields will be updated.
PUT
https://api.zenpayz.com/merchant/api/v1/payment-links/:linkIdBearer · API key
Request
Headers
| Header | Description |
|---|---|
Authorization REQUIRED | Bearer {api_key} |
X-Signature REQUIRED | HMAC-SHA256 signature |
X-Timestamp REQUIRED | ISO 8601 timestamp |
X-Secret-Salt REQUIRED | Secret salt for HMAC validation |
Content-Type REQUIRED | application/json |
Path Parameters
| Parameter | Type | Description |
|---|---|---|
linkId REQUIRED | string | The payment link ID (e.g. pl_a1b2c3d4e5f6g7h8) |
Body Parameters
| Parameter | Type | Description |
|---|---|---|
title OPTIONAL | string | Payment link title (1-255 characters) |
description OPTIONAL | string | Payment link description |
amount OPTIONAL | number | Payment amount (minimum 0.01) |
currency OPTIONAL | string | Currency code |
usageType OPTIONAL | string | Usage type. One of SINGLE, MULTI |
status OPTIONAL | string | Link status. One of ACTIVE, INACTIVE, EXPIRED |
maxUses OPTIONAL | number | Maximum number of uses (minimum 1) |
expiresAt OPTIONAL | string | Expiration date (ISO 8601) |
invoiceIds OPTIONAL | string[] | Array of associated invoice IDs |
Response
Success (200 OK)
{
"success": true,
"data": {
"linkId": "pl_a1b2c3d4e5f6g7h8",
"title": "Pro Plan Payment - Updated",
"description": "Payment for Pro Plan subscription (updated)",
"amount": 3999,
"currency": "INR",
"status": "ACTIVE",
"usageType": "MULTI",
"maxUses": 10,
"usageCount": 0,
"expiresAt": "2024-03-15T23:59:59.000Z",
"productId": "prod_a1b2c3d4e5f6g7h8",
"customerId": null,
"invoiceId": null,
"paymentUrl": "https://pay.zenpayz.com/pl_a1b2c3d4e5f6g7h8",
"shortCode": "ZP-XYZ789",
"shortUrl": "https://pay.zenpayz.com/s/ZP-XYZ789",
"metadata": {},
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-16T14:20:00.000Z"
},
"message": "Payment link updated successfully",
"error": null,
"meta": {
"request_id": "req_xxxxx",
"timestamp": "2024-01-16T14:20:00.000Z",
"processing_time_ms": 40,
"api_version": "v1",
"endpoint": "PUT /payment-links/:linkId",
"user_type": "merchant"
}
}
Error Responses
| Code | HTTP | Message |
|---|---|---|
| VALIDATION_ERROR | 400 | Invalid request parameters |
| UNAUTHORIZED | 401 | Invalid API key |
| PAYMENT_LINK_NOT_FOUND | 404 | Payment link does not exist |
Examples
- cURL
- JavaScript
- SDK
curl -X PUT https://api.zenpayz.com/merchant/api/v1/payment-links/pl_a1b2c3d4e5f6g7h8 \
-H "Authorization: Bearer zp_test_xxxxx" \
-H "X-Timestamp: 2024-01-16T14:20:00.000Z" \
-H "X-Signature: a1b2c3d4e5f6..." \
-H "X-Secret-Salt: your_secret_salt" \
-H "Content-Type: application/json" \
-d '{
"title": "Pro Plan Payment - Updated",
"amount": 3999,
"usageType": "MULTI",
"maxUses": 10,
"expiresAt": "2024-03-15T23:59:59.000Z"
}'
const response = await fetch('https://api.zenpayz.com/merchant/api/v1/payment-links/pl_a1b2c3d4e5f6g7h8', {
method: 'PUT',
headers: {
'Authorization': `Bearer ${apiKey}`,
'X-Timestamp': timestamp,
'X-Signature': signature,
'X-Secret-Salt': secretSalt,
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'Pro Plan Payment - Updated',
amount: 3999,
usageType: 'MULTI',
maxUses: 10,
expiresAt: '2024-03-15T23:59:59.000Z',
}),
});
const result = await response.json();
console.log(result.data.amount); // 3999
console.log(result.data.usageType); // "MULTI"
const link = await zenpays.paymentLinks.update('pl_a1b2c3d4e5f6g7h8', {
title: 'Pro Plan Payment - Updated',
amount: 3999,
usageType: 'MULTI',
maxUses: 10,
expiresAt: '2024-03-15T23:59:59.000Z',
});
console.log(link.amount); // 3999
console.log(link.usageType); // "MULTI"