curl --request GET \
--url https://api.stablepay.ai/v1/reversals/{reversalId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.stablepay.ai/v1/reversals/{reversalId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.stablepay.ai/v1/reversals/{reversalId}', 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.stablepay.ai/v1/reversals/{reversalId}",
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.stablepay.ai/v1/reversals/{reversalId}"
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.stablepay.ai/v1/reversals/{reversalId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stablepay.ai/v1/reversals/{reversalId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"reversalId": "ISS_RV01K5D3W8ZQ4FZXQJHBVYFT9K3F",
"paymentId": "ISS_KE01K5D3W8ZQ4FZXQJHBVYFT9K3E",
"stablepayReference": "ISS_KE01K5D3W8ZQ4FZXQJHBVYFT9K3E",
"reversalReference": "QGR7X8T2PL",
"blockchain": "SOLANA",
"status": "pending_review",
"reversalAmountUsdc": "10.500000",
"toAddress": "4Nd1mXKqRtPvYbGfJhAeZwQsUcTnVpLgDkRyXmWtB9Cq",
"reversalTxHash": null,
"failureReason": null,
"reason": "customer requested reversal",
"createdAt": "2026-10-14T09:12:04.000Z",
"reviewedAt": null,
"sentAt": null,
"confirmedAt": null
}Get Reversal
Retrieve a reversal and its current status.
curl --request GET \
--url https://api.stablepay.ai/v1/reversals/{reversalId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.stablepay.ai/v1/reversals/{reversalId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.stablepay.ai/v1/reversals/{reversalId}', 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.stablepay.ai/v1/reversals/{reversalId}",
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.stablepay.ai/v1/reversals/{reversalId}"
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.stablepay.ai/v1/reversals/{reversalId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stablepay.ai/v1/reversals/{reversalId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"reversalId": "ISS_RV01K5D3W8ZQ4FZXQJHBVYFT9K3F",
"paymentId": "ISS_KE01K5D3W8ZQ4FZXQJHBVYFT9K3E",
"stablepayReference": "ISS_KE01K5D3W8ZQ4FZXQJHBVYFT9K3E",
"reversalReference": "QGR7X8T2PL",
"blockchain": "SOLANA",
"status": "pending_review",
"reversalAmountUsdc": "10.500000",
"toAddress": "4Nd1mXKqRtPvYbGfJhAeZwQsUcTnVpLgDkRyXmWtB9Cq",
"reversalTxHash": null,
"failureReason": null,
"reason": "customer requested reversal",
"createdAt": "2026-10-14T09:12:04.000Z",
"reviewedAt": null,
"sentAt": null,
"confirmedAt": null
}Authorizations
Stablepay API key. Include as Authorization: Bearer <key>.
Path Parameters
The reversal ID.
Response
Reversal found.
The reversal ID. Use it to check the claim's status.
"ISS_RV01K5D3W8ZQ4FZXQJHBVYFT9K3F"
The payout being reversed.
"ISS_KE01K5D3W8ZQ4FZXQJHBVYFT9K3E"
The payment reference supplied on the claim.
"ISS_KE01K5D3W8ZQ4FZXQJHBVYFT9K3E"
The recipient's reversal confirmation reference.
"QGR7X8T2PL"
Chain the reversal is paid on. Taken from the original payout.
"SOLANA"
pending_review: lodged, awaiting verification. No money has moved. approved: verified by Stablepay; the reversal is queued. sending: the reversal is in flight. confirmed: the reversal is confirmed on-chain. rejected: could not be verified. No money moved. failed: the reversal was attempted and did not complete.
pending_review, approved, sending, confirmed, rejected, failed "pending_review"
Full original amount returned, in USDC.
"10.500000"
Your funding wallet on that chain. Resolved by Stablepay, never supplied on the claim.
"4Nd1mXKqRtPvYbGfJhAeZwQsUcTnVpLgDkRyXmWtB9Cq"
On-chain hash of the reversal transaction. Null until the reversal is sent.
null
Why the reversal failed. Null unless status is failed.
null
The note supplied on the claim, or the rejection note.
"customer requested reversal"
When the claim was lodged.
When the claim was approved or rejected. Null while pending_review.
null
When the reversal was broadcast. Null until sent.
null
When the reversal was confirmed on-chain. Null until confirmed.
null

