List payment links
curl --request GET \
--url https://api.sbx.moduluslabs.io/ecom/v1/payment-links \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.sbx.moduluslabs.io/ecom/v1/payment-links"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.sbx.moduluslabs.io/ecom/v1/payment-links', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sbx.moduluslabs.io/ecom/v1/payment-links",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sbx.moduluslabs.io/ecom/v1/payment-links"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sbx.moduluslabs.io/ecom/v1/payment-links")
.header("X-API-Key", "<api-key>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.sbx.moduluslabs.io/ecom/v1/payment-links");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-API-Key", "<api-key>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "ONE_TIME",
"merchant_branch_reference_number": "SH-ANG-001",
"currency": "PHP",
"amount": 150000,
"line_items": [
{
"sku": "PROD-001",
"name": "Wireless Earbuds",
"unit_price": 75000,
"quantity": 2,
"metadata": {}
}
],
"description": "Order for wireless earbuds",
"status": "ACTIVE",
"expires_at": "2026-07-18T00:00:00Z",
"url": "https://pay.sbx.moduluslabs.io/550e8400-e29b-41d4-a716-446655440000",
"max_uses": 10,
"successful_payment_count": 3,
"metadata": {},
"created_at": "2026-06-18T10:30:00Z",
"updated_at": "2026-06-18T14:22:00Z",
"cancelled_at": "2023-11-07T05:31:56Z",
"cancellation_reason": "<string>",
"order_reference": "ORD-2026-0618-001",
"redirect_urls": {
"success": "https://merchant.com/payment/success",
"declined": "https://merchant.com/payment/declined",
"expired": "https://merchant.com/payment/expired"
}
}
],
"pagination": {
"page_size": 20,
"has_more": true,
"next_cursor": "Y3JlYXRlZF9hdHwxNzE4NzA0MjAwMDAwfDE5"
}
}Payment Links
List Payment Links
Return a paginated list of payment links accessible by your API key
GET
/
payment-links
List payment links
curl --request GET \
--url https://api.sbx.moduluslabs.io/ecom/v1/payment-links \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.sbx.moduluslabs.io/ecom/v1/payment-links"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.sbx.moduluslabs.io/ecom/v1/payment-links', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sbx.moduluslabs.io/ecom/v1/payment-links",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sbx.moduluslabs.io/ecom/v1/payment-links"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sbx.moduluslabs.io/ecom/v1/payment-links")
.header("X-API-Key", "<api-key>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.sbx.moduluslabs.io/ecom/v1/payment-links");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-API-Key", "<api-key>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "ONE_TIME",
"merchant_branch_reference_number": "SH-ANG-001",
"currency": "PHP",
"amount": 150000,
"line_items": [
{
"sku": "PROD-001",
"name": "Wireless Earbuds",
"unit_price": 75000,
"quantity": 2,
"metadata": {}
}
],
"description": "Order for wireless earbuds",
"status": "ACTIVE",
"expires_at": "2026-07-18T00:00:00Z",
"url": "https://pay.sbx.moduluslabs.io/550e8400-e29b-41d4-a716-446655440000",
"max_uses": 10,
"successful_payment_count": 3,
"metadata": {},
"created_at": "2026-06-18T10:30:00Z",
"updated_at": "2026-06-18T14:22:00Z",
"cancelled_at": "2023-11-07T05:31:56Z",
"cancellation_reason": "<string>",
"order_reference": "ORD-2026-0618-001",
"redirect_urls": {
"success": "https://merchant.com/payment/success",
"declined": "https://merchant.com/payment/declined",
"expired": "https://merchant.com/payment/expired"
}
}
],
"pagination": {
"page_size": 20,
"has_more": true,
"next_cursor": "Y3JlYXRlZF9hdHwxNzE4NzA0MjAwMDAwfDE5"
}
}Returns results in the
data array with a pagination object. Links are scoped to your API key’s entity level.Pagination
To fetch the next page, pass thenext_cursor value from the previous response as the cursor query parameter:
curl 'https://api.sbx.moduluslabs.io/ecom/v1/payment-links?status=ACTIVE,CONSUMED&page_size=20&cursor=Y3JlYXRlZF9hdHwxNzE4NzA0MjAwMDAwfDE5' \
-H 'X-API-Key: your_api_key_here'
date_from, date_to, and cursor; legacy names such as created_after, created_before, and page_token are not accepted.Authorizations
API key enabled for the requested payment-link operation and associated with an eligible partner, merchant, or branch account.
Query Parameters
Filter by one or more statuses. Repeatable values are serialised as a comma-separated list, for example ACTIVE,CONSUMED.
Current status of the payment link.
Available options:
ACTIVE, CONSUMED, EXPIRED, CANCELLED Example:
["ACTIVE", "CONSUMED"]
Filter by branch. String; no length constraint is imposed.
RFC 3339 timestamp. Only return links created after this time.
RFC 3339 timestamp. Only return links created before this time.
Number of results per page.
Required range:
1 <= x <= 200Opaque, non-empty pagination cursor from a previous response's next_cursor. Do not construct or parse it.
Was this page helpful?