curl --request GET \
--url https://api-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no} \
--header 'x-auth-token: <api-key>' \
--header 'x-client-id: <x-client-id>'import requests
url = "https://api-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}"
headers = {
"x-client-id": "<x-client-id>",
"x-auth-token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-client-id': '<x-client-id>', 'x-auth-token': '<api-key>'}
};
fetch('https://api-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}', 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-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}",
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-auth-token: <api-key>",
"x-client-id: <x-client-id>"
],
]);
$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-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-client-id", "<x-client-id>")
req.Header.Add("x-auth-token", "<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-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}")
.header("x-client-id", "<x-client-id>")
.header("x-auth-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-client-id"] = '<x-client-id>'
request["x-auth-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"code_no": "D5610f5e1",
"status": "SUCCEEDED",
"payment_methods": [
"ALIPAY"
],
"currency": "SGD",
"amount_mode": "DYNAMIC",
"amount": null,
"store_name": "Docs Test",
"city": "Singapore",
"extension": "no payment test",
"create_time": "2026-10-28T10:18:45+08:00",
"updated_time": null
}{
"code": "<string>",
"message": "<string>",
"type": "static_qr_error"
}{
"code": "STATIC_QR_NOT_FOUND",
"message": "The requested static QR resource or endpoint was not found.",
"type": "static_qr_error"
}Retrieve a static QR code
Retrieve a code in the target account. This representation does not include qr_payload.
curl --request GET \
--url https://api-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no} \
--header 'x-auth-token: <api-key>' \
--header 'x-client-id: <x-client-id>'import requests
url = "https://api-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}"
headers = {
"x-client-id": "<x-client-id>",
"x-auth-token": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'x-client-id': '<x-client-id>', 'x-auth-token': '<api-key>'}
};
fetch('https://api-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}', 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-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}",
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-auth-token: <api-key>",
"x-client-id: <x-client-id>"
],
]);
$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-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-client-id", "<x-client-id>")
req.Header.Add("x-auth-token", "<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-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}")
.header("x-client-id", "<x-client-id>")
.header("x-auth-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.uqpaytech.com/api/v2/payment/static_qrs/{code_no}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-client-id"] = '<x-client-id>'
request["x-auth-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"code_no": "D5610f5e1",
"status": "SUCCEEDED",
"payment_methods": [
"ALIPAY"
],
"currency": "SGD",
"amount_mode": "DYNAMIC",
"amount": null,
"store_name": "Docs Test",
"city": "Singapore",
"extension": "no payment test",
"create_time": "2026-10-28T10:18:45+08:00",
"updated_time": null
}{
"code": "<string>",
"message": "<string>",
"type": "static_qr_error"
}{
"code": "STATIC_QR_NOT_FOUND",
"message": "The requested static QR resource or endpoint was not found.",
"type": "static_qr_error"
}Authorizations
The API token for login provided by UQPAY.
Headers
The API client id generated by UQPAY
The authorized connected sub-account to manage. Omit or send an empty value to use the credential account. Use the same target account for all operations on a code. Do not send the credential account ID as an explicit sub-account.
Path Parameters
Case-sensitive code identifier. Preserve leading zeros. Historical code numbers can be longer than the limit for creating a new code.
1 - 64^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$Response
Request completed. Interpret the resource status separately.
Code identifier. Preserve case and leading zeros. Static QR payment notifications identify this code in data.payment_method.<method>.static_qrcode_number_plate; one code can be used for multiple payments. See payment notification field mapping.
Code creation status, not payment status. INITIATED means creation has started; SUCCEEDED means the code has been created.
Payment methods associated with this code. In payment notifications, data.payment_method.type identifies the single method used for that transaction, not this array.
ALIPAY, WECHAT, PAYNOW, UNIONPAY Currency used for payments with this code. Payment notifications report the transaction currency in data.currency.
FIXED uses the specified amount; DYNAMIC lets the payer enter the amount.
FIXED, DYNAMIC Fixed payment amount in major currency units; null for DYNAMIC codes. Response decimal precision may differ from the create request. For reconciliation, read the transaction amount from data.amount in payment notifications, not the null amount of a DYNAMIC code.
Store name associated with the code.
City associated with the code.
Your reference information. It is not encoded in the QR payment parameters. The corresponding field in static QR payment notifications is data.payment_method.<method>.static_qrcode_extension; it is not data.metadata or a merchant order ID. See payment notification field mapping.
Creation timestamp with a timezone offset.
Last update timestamp, or null if no update time is available.

