curl --request GET \
--url https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/settlements/transactions \
--header 'X-SFPY-AGGREGATOR-SECRET-KEY: <api-key>'import requests
url = "https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/settlements/transactions"
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}/settlements/transactions', 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}/settlements/transactions",
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}/settlements/transactions"
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}/settlements/transactions")
.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}/settlements/transactions")
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": {
"settlement_transactions": [
{
"id": "49",
"token": "stxn_75549797-f2c6-421d-8dd7-ce39995534b8",
"settlement_batch_id": "sb_1328a110-2cf5-4e13-993e-55792ec6b76c",
"aggregator_id": "agg_8fd114c0-1364-4953-8773-62551397ffe1",
"aggregator_merchant_id": "am_7c9594a6-962d-49c7-94e9-64d9cf285969",
"raast_merchant_id": "mer_e1a38d10-0064-4d7b-a700-f4ba483efb05",
"status": "SETTLEMENT_TXN_POSTED",
"attempt": 1,
"gross_amount": "300",
"fee_amount": "0",
"net_amount": "294",
"sales_tax_on_fee_amount": "0",
"sales_tax_withholding_amount": "4",
"income_tax_withholding_amount": "2",
"digital_tax_amount": "0",
"debitor_account_id": "acct_f72d1825-31cc-43a2-a7f6-4463443a1c46",
"creditor_account_id": "acct_7f073fa9-e248-4f96-8e7c-99ddcd282124",
"failure_reason": "",
"created_at": "2026-04-13T11:30:02Z",
"updated_at": "2026-04-13T11:30:04Z"
}
],
"transactions": [],
"next_cursor": "49",
"count": {
"filtered_count": "1",
"total_count": "1"
}
}
}{
"code": "error.bad_request",
"message": "Invalid request parameters"
}{
"api_version": "v1",
"error": {
"code": "error.unauthorized_access",
"message": "partner access key is required in request header"
}
}List Settlement Transactions
List settlement payout transactions for the aggregator by default.
Set only_transactions=true to list underlying payment/refund ledger transactions instead.
When listing settlement transactions, populate settlement_transactions; when listing general transactions, populate transactions.
curl --request GET \
--url https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/settlements/transactions \
--header 'X-SFPY-AGGREGATOR-SECRET-KEY: <api-key>'import requests
url = "https://api.getsafepay.com/raastwire/v1/aggregators/{raast-aggregator-id}/settlements/transactions"
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}/settlements/transactions', 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}/settlements/transactions",
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}/settlements/transactions"
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}/settlements/transactions")
.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}/settlements/transactions")
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": {
"settlement_transactions": [
{
"id": "49",
"token": "stxn_75549797-f2c6-421d-8dd7-ce39995534b8",
"settlement_batch_id": "sb_1328a110-2cf5-4e13-993e-55792ec6b76c",
"aggregator_id": "agg_8fd114c0-1364-4953-8773-62551397ffe1",
"aggregator_merchant_id": "am_7c9594a6-962d-49c7-94e9-64d9cf285969",
"raast_merchant_id": "mer_e1a38d10-0064-4d7b-a700-f4ba483efb05",
"status": "SETTLEMENT_TXN_POSTED",
"attempt": 1,
"gross_amount": "300",
"fee_amount": "0",
"net_amount": "294",
"sales_tax_on_fee_amount": "0",
"sales_tax_withholding_amount": "4",
"income_tax_withholding_amount": "2",
"digital_tax_amount": "0",
"debitor_account_id": "acct_f72d1825-31cc-43a2-a7f6-4463443a1c46",
"creditor_account_id": "acct_7f073fa9-e248-4f96-8e7c-99ddcd282124",
"failure_reason": "",
"created_at": "2026-04-13T11:30:02Z",
"updated_at": "2026-04-13T11:30:04Z"
}
],
"transactions": [],
"next_cursor": "49",
"count": {
"filtered_count": "1",
"total_count": "1"
}
}
}{
"code": "error.bad_request",
"message": "Invalid request parameters"
}{
"api_version": "v1",
"error": {
"code": "error.unauthorized_access",
"message": "partner access key is required in request header"
}
}Authorizations
Path Parameters
The unique identifier for the aggregator
"agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e"
Query Parameters
Cursor for pagination. Pass the previous response next_cursor, or omit/0 for the first page.
0
Page size. Default 30. Maximum 100. 0 is treated as the default.
30
Sort direction on the underlying numeric id. Must be uppercase ASC or DESC. Invalid or empty values default to DESC.
ASC, DESC "DESC"
When true, return general payment/refund transactions in transactions instead of settlement payouts in settlement_transactions.
false
Filter by settlement batch token (sb_…).
"sb_1328a110-2cf5-4e13-993e-55792ec6b76c"
Filter by settlement transaction token (stxn_…, exactly 41 characters).
"stxn_75549797-f2c6-421d-8dd7-ce39995534b8"
Filter settlement transactions by status integer enum (1=SETTLEMENT_TXN_ACK_PENDING, 2=SETTLEMENT_TXN_POSTED, 3=SETTLEMENT_TXN_FAILED, 4=SETTLEMENT_TXN_REJECTED). Response status is the string enum name.
1, 2, 3, 4 2
Filter general transactions by token (txn_…, exactly 40 characters). Used with only_transactions=true.
"txn_8ffa984c-f0cb-4835-8eee-89c9ca673dad"
Filter general transactions by status integer enum (1=TXN_LEDGER_POSTED, 2=TXN_SETTLEMENT_SCHEDULED, 3=TXN_SETTLEMENT_DISPATCHED, 4=TXN_SETTLEMENT_CONFIRMED, 5=TXN_SETTLEMENT_REVERSED). Response status is the string enum name.
1, 2, 3, 4, 5 4
Was this page helpful?