Endpoints
| Method | Endpoint | Description | Rate Limit |
|---|---|---|---|
| POST | /v1/payment-link | Create a new payment link | 50 req/min |
| GET | /v1/payment-link/:id | Get payment link details | 100 req/min |
| GET | /v1/payment-link/list | List payment links | 100 req/min |
| DELETE | /v1/payment-link/:id | Deactivate a payment link | 50 req/min |
Create Payment Link
Create a new payment link.POST /v1/payment-link
Example Request
curl -X POST "https://api.ceypay.io/v1/payment-link" \
-H "Content-Type: application/json" \
-H "x-api-key: ak_live_abc123" \
-H "x-timestamp: 1705315800000" \
-H "x-signature: your_signature_here" \
-d '{
"merchantTradeNo": "ORDER-2025-001",
"name": "Premium Subscription",
"description": "Monthly premium plan subscription",
"amount": 49.99,
"currency": "USDT",
"reusable": false,
"allowCustomAmount": false,
"allowQuantityBuy": true,
"maxQuantity": 10,
"successUrl": "https://yourstore.com/payment/success",
"cancelUrl": "https://yourstore.com/payment/cancelled",
"webhookUrl": "https://yourstore.com/webhooks/ceypay"
}'
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the payment link. |
description | string | No | Description of the payment. |
amount | number | No* | Fixed amount. Required if allowCustomAmount is false. |
currency | string | Yes | Currency code (e.g., USDT, LKR). |
allowCustomAmount | boolean | Yes | Whether to allow customers to enter a custom amount. Default: false. |
minAmount | number | No* | Minimum amount for custom payments. Required if allowCustomAmount is true. |
maxAmount | number | No* | Maximum amount for custom payments. Required if allowCustomAmount is true. |
allowQuantityBuy | boolean | No | Allow customers to purchase multiple quantities. Default: false. |
maxQuantity | number | No* | Maximum quantity allowed per purchase. Required if allowQuantityBuy is true. |
reusable | boolean | No | Whether the link can be used multiple times. Default: true. |
expirationDate | string | No | Expiration date in ISO 8601 format. |
successUrl | string | No | URL to redirect customers after successful payment. |
cancelUrl | string | No | URL to redirect customers if they cancel the payment. |
webhookUrl | string | No | Webhook URL to receive payment notifications. |
merchantTradeNo | string | No | Unique merchant trade number for tracking. |
branchId | string | No | Branch ID to associate with. |
Example Response (201 Created)
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"merchant_id": "merchant_12345",
"slug": "link_abc123xyz",
"merchantTradeNo": "ORDER-2025-001",
"name": "Premium Subscription",
"description": "Monthly premium plan subscription",
"amount": 49.99,
"currency": "USDT",
"allowCustomAmount": false,
"allowQuantityBuy": true,
"maxQuantity": 10,
"reusable": false,
"successUrl": "https://yourstore.com/payment/success",
"cancelUrl": "https://yourstore.com/payment/cancelled",
"webhookUrl": "https://yourstore.com/webhooks/ceypay",
"used_count": 0,
"status": "ACTIVE",
"creator_type": "API_KEY",
"creator_id": "ak_live_abc123",
"created_at": "2025-11-25T10:30:00Z",
"updated_at": "2025-11-25T10:30:00Z"
}
Get Payment Link
Get details of a specific payment link.GET /v1/payment-link/:id
Example Request
curl "https://api.ceypay.io/v1/payment-link/550e8400-e29b-41d4-a716-446655440000" \
-H "x-api-key: ak_live_abc123" \
-H "x-timestamp: 1705315800000" \
-H "x-signature: your_signature_here"
Example Response (200 OK)
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"merchant_id": "merchant_12345",
"slug": "link_abc123xyz",
"name": "Premium Subscription",
"description": "Monthly premium plan subscription",
"amount": 49.99,
"currency": "USDT",
"status": "ACTIVE",
...
}
List Payment Links
Retrieve a paginated list of payment links.GET /v1/payment-link/list
Example Request
curl "https://api.ceypay.io/v1/payment-link/list?page=1&pageSize=20" \
-H "x-api-key: ak_live_abc123" \
-H "x-timestamp: 1705315800000" \
-H "x-signature: your_signature_here"
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | number | Page number (default: 1). |
pageSize | number | Items per page (default: 20). |
branchId | string | Filter by branch ID. |
search | string | Search by name or description. |
Example Response (200 OK)
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Premium Subscription",
"amount": 49.99,
"currency": "USDT",
"status": "ACTIVE",
...
}
],
"page": 1,
"limit": 20,
"total": 45,
"totalPages": 3,
"hasNext": true,
"hasPrev": false
}
Deactivate Payment Link
Deactivate (soft delete) a payment link. It will no longer accept new payments.DELETE /v1/payment-link/:id
Example Request
curl -X DELETE "https://api.ceypay.io/v1/payment-link/550e8400-e29b-41d4-a716-446655440000" \
-H "x-api-key: ak_live_abc123" \
-H "x-timestamp: 1705315800000" \
-H "x-signature: your_signature_here"
Example Response (200 OK)
{
"message": "Payment link deactivated successfully"
}
Error Codes
| Status | Description |
|---|---|
| 400 | Bad Request - Invalid data. |
| 401 | Unauthorized - Invalid signature. |
| 403 | Forbidden - Access denied. |
| 404 | Not Found - Payment link not found. |
| 429 | Too Many Requests - Rate limit exceeded. |