Retrieve a payment link
curl --request GET \
--url https://api.sbx.moduluslabs.io/ecom/v1/checkout/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sbx.moduluslabs.io/ecom/v1/checkout/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sbx.moduluslabs.io/ecom/v1/checkout/{id}', 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/checkout/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/checkout/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/checkout/{id}")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.sbx.moduluslabs.io/ecom/v1/checkout/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"merchant_branch_reference_number": "SH-ANG-001",
"merchant_branch_name": "SM City Angeles - Branch 1",
"currency": "PHP",
"amount": 150000,
"line_items": [
{
"sku": "PROD-001",
"name": "Wireless Earbuds",
"unit_price": 75000,
"quantity": 2,
"metadata": {}
}
],
"expires_at": "2026-07-18T00:00:00Z",
"hosted_url": "https://pay.moduluslabs.io/checkout/550e8400-e29b-41d4-a716-446655440000",
"successful_payment_count": 3,
"metadata": {},
"created_at": "2026-06-18T10:30:00Z",
"updated_at": "2026-06-18T14:22:00Z",
"description": "Order for wireless earbuds",
"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"
},
"max_uses": 10,
"cancelled_at": "2023-11-07T05:31:56Z",
"cancellation_reason": "<string>"
}
}{
"error": {
"code": "invalid_api_key",
"message": "API key is missing or invalid.",
"correlationId": "a084e7ab-e80e-4232-b6b7-280167765883"
}
}{
"error": {
"code": "insufficient_permissions",
"message": "API key lacks the required scope for this operation.",
"correlationId": "a084e7ab-e80e-4232-b6b7-280167765883"
}
}{
"error": {
"code": "not_found",
"message": "The requested payment link does not exist.",
"correlationId": "a084e7ab-e80e-4232-b6b7-280167765883"
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded. Retry after 23 seconds.",
"correlationId": "a084e7ab-e80e-4232-b6b7-280167765883"
}
}Ecom API
Retrieve a Payment Link
Retrieve the details of an existing payment link by ID
GET
/
checkout
/
{id}
Retrieve a payment link
curl --request GET \
--url https://api.sbx.moduluslabs.io/ecom/v1/checkout/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sbx.moduluslabs.io/ecom/v1/checkout/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sbx.moduluslabs.io/ecom/v1/checkout/{id}', 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/checkout/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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/checkout/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/checkout/{id}")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.sbx.moduluslabs.io/ecom/v1/checkout/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"merchant_branch_reference_number": "SH-ANG-001",
"merchant_branch_name": "SM City Angeles - Branch 1",
"currency": "PHP",
"amount": 150000,
"line_items": [
{
"sku": "PROD-001",
"name": "Wireless Earbuds",
"unit_price": 75000,
"quantity": 2,
"metadata": {}
}
],
"expires_at": "2026-07-18T00:00:00Z",
"hosted_url": "https://pay.moduluslabs.io/checkout/550e8400-e29b-41d4-a716-446655440000",
"successful_payment_count": 3,
"metadata": {},
"created_at": "2026-06-18T10:30:00Z",
"updated_at": "2026-06-18T14:22:00Z",
"description": "Order for wireless earbuds",
"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"
},
"max_uses": 10,
"cancelled_at": "2023-11-07T05:31:56Z",
"cancellation_reason": "<string>"
}
}{
"error": {
"code": "invalid_api_key",
"message": "API key is missing or invalid.",
"correlationId": "a084e7ab-e80e-4232-b6b7-280167765883"
}
}{
"error": {
"code": "insufficient_permissions",
"message": "API key lacks the required scope for this operation.",
"correlationId": "a084e7ab-e80e-4232-b6b7-280167765883"
}
}{
"error": {
"code": "not_found",
"message": "The requested payment link does not exist.",
"correlationId": "a084e7ab-e80e-4232-b6b7-280167765883"
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded. Retry after 23 seconds.",
"correlationId": "a084e7ab-e80e-4232-b6b7-280167765883"
}
}Returns the full payment link object wrapped in
data, including its current status and successful_payment_count.Required scope
payment_links.read
A payment link is only returned if it is accessible by your API key’s entity. Requesting a link outside your scope returns 404 not_found.Authorizations
API key passed as a bearer token. Use sk_live_ keys for production and sk_test_ keys for sandbox. Keys are provisioned during merchant onboarding.
Path Parameters
The payment link ID (UUID v4).
Response
The requested payment link
The payment link object returned by all endpoints.
Show child attributes
Show child attributes
Was this page helpful?
⌘I