List payments
curl --request GET \
--url https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments \
--header 'X-SFPY-AGGREGATOR-SECRET-KEY: <api-key>'import requests
url = "https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments"
headers = {"X-SFPY-AGGREGATOR-SECRET-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-SFPY-AGGREGATOR-SECRET-KEY': '<api-key>'}};
fetch('https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments', 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.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments",
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-SFPY-AGGREGATOR-SECRET-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.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-SFPY-AGGREGATOR-SECRET-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.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments")
.header("X-SFPY-AGGREGATOR-SECRET-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-SFPY-AGGREGATOR-SECRET-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"api_version": "v1",
"data": {
"payments": [
{
"id": "631",
"token": "pm_3442e2b7-caec-4d63-bbed-f443aa9b8237",
"aggregator_merchant_id": "am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30",
"qr_code_id": "qr_d47b3462-4208-40f1-9994-e7bf8b8a16d8",
"order_id": "SCB200",
"type": "DYNAMIC_QR",
"amount": "20000",
"status": "P_REJECTED",
"uetr": "a66171ef-b247-4cdf-971e-886d45d2b9a0",
"trace_reference": "90c4831d-e6d7-491e-a5f9-5f92c7cd1073",
"msg_id": "H1KMBBKXMARBF3EEP5HATG27BHIAZ3GIH2J",
"instr_id": "1b548b244d094b83b30e0791367bc7ce",
"end_to_end_id": "a66171efb2474cdf971e886d45d2b9a0",
"pmt_inf_id": "WLJAG10SD4YYFQTQQ2XPJAV8OIG0NAPJR62",
"request_id": "144bf8a6-9c20-4082-805f-fe2648860db5",
"msg_created_at": "2025-06-26 08:32:42.",
"expires_at": "2025-06-26T11:32:42Z",
"created_at": "2025-06-26T08:32:42Z",
"updated_at": "2025-06-26T11:33:57Z",
"txn_logs": [],
"debitor": null,
"qr_code": null,
"aggregator_merchant": null,
"refunds": [],
"settlement": null
}
]
}
}QRs
List payments
Retrieve a paginated list of payments made against a QR code
GET
/
v1
/
aggregators
/
{raast-aggregator-id}
/
qrs
/
{qr-id}
/
payments
List payments
curl --request GET \
--url https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments \
--header 'X-SFPY-AGGREGATOR-SECRET-KEY: <api-key>'import requests
url = "https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments"
headers = {"X-SFPY-AGGREGATOR-SECRET-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-SFPY-AGGREGATOR-SECRET-KEY': '<api-key>'}};
fetch('https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments', 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.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments",
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-SFPY-AGGREGATOR-SECRET-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.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-SFPY-AGGREGATOR-SECRET-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.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments")
.header("X-SFPY-AGGREGATOR-SECRET-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-SFPY-AGGREGATOR-SECRET-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"api_version": "v1",
"data": {
"payments": [
{
"id": "631",
"token": "pm_3442e2b7-caec-4d63-bbed-f443aa9b8237",
"aggregator_merchant_id": "am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30",
"qr_code_id": "qr_d47b3462-4208-40f1-9994-e7bf8b8a16d8",
"order_id": "SCB200",
"type": "DYNAMIC_QR",
"amount": "20000",
"status": "P_REJECTED",
"uetr": "a66171ef-b247-4cdf-971e-886d45d2b9a0",
"trace_reference": "90c4831d-e6d7-491e-a5f9-5f92c7cd1073",
"msg_id": "H1KMBBKXMARBF3EEP5HATG27BHIAZ3GIH2J",
"instr_id": "1b548b244d094b83b30e0791367bc7ce",
"end_to_end_id": "a66171efb2474cdf971e886d45d2b9a0",
"pmt_inf_id": "WLJAG10SD4YYFQTQQ2XPJAV8OIG0NAPJR62",
"request_id": "144bf8a6-9c20-4082-805f-fe2648860db5",
"msg_created_at": "2025-06-26 08:32:42.",
"expires_at": "2025-06-26T11:32:42Z",
"created_at": "2025-06-26T08:32:42Z",
"updated_at": "2025-06-26T11:33:57Z",
"txn_logs": [],
"debitor": null,
"qr_code": null,
"aggregator_merchant": null,
"refunds": [],
"settlement": null
}
]
}
}Authorizations
Path Parameters
The unique identifier for the aggregator
Example:
"agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e"
The unique identifier for the QR code
Example:
"qr_7e26f9be-f59d-4025-8e17-9fc398d16230"
Query Parameters
Maximum number of payments to return for the QR code.
Example:
"10"
Number of payments to skip before starting the result set.
Example:
"0"
Response
200 - application/json
This response returns the dynamic QR payments for the requested QR code.
Was this page helpful?
⌘I