curl --request GET \
--url https://api.withflex.com/v1/subscriptions/{id}/refund_preview \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.withflex.com/v1/subscriptions/{id}/refund_preview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.withflex.com/v1/subscriptions/{id}/refund_preview', 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.withflex.com/v1/subscriptions/{id}/refund_preview",
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.withflex.com/v1/subscriptions/{id}/refund_preview"
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.withflex.com/v1/subscriptions/{id}/refund_preview")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withflex.com/v1/subscriptions/{id}/refund_preview")
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{
"prorated_amount_available_to_refund": 2500,
"invoice_amount_paid": 2500,
"current_period_start": "2026-06-15T14:30:00Z",
"current_period_end": "2026-06-15T14:30:00Z",
"payment_method_id": "fpm_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"last4": "4242"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}{
"code": "string",
"detail": "string"
}Get Refund Preview
Previews the prorated refund that would result from canceling a subscription. Runs the same validation as a real prorated refund but issues no refund and creates no records, so it is safe to call repeatedly. Returns the prorated amount available to refund, the amount paid on the latest invoice, the current billing period, and the card that would be refunded.
curl --request GET \
--url https://api.withflex.com/v1/subscriptions/{id}/refund_preview \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.withflex.com/v1/subscriptions/{id}/refund_preview"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.withflex.com/v1/subscriptions/{id}/refund_preview', 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.withflex.com/v1/subscriptions/{id}/refund_preview",
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.withflex.com/v1/subscriptions/{id}/refund_preview"
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.withflex.com/v1/subscriptions/{id}/refund_preview")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withflex.com/v1/subscriptions/{id}/refund_preview")
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{
"prorated_amount_available_to_refund": 2500,
"invoice_amount_paid": 2500,
"current_period_start": "2026-06-15T14:30:00Z",
"current_period_end": "2026-06-15T14:30:00Z",
"payment_method_id": "fpm_01J9XR8M3K7VZ8N2YB4WJ6T0RA",
"last4": "4242"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"code": "string",
"detail": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}{
"code": "string",
"detail": "string"
}Authorizations
Use a Bearer token to access this API.
Path Parameters
"fsub_01J9XR8M3K7VZ8N2YB4WJ6T0RA"
Response
The result of previewing a prorated refund for a subscription cancellation, without issuing any refund. Reflects what would be refunded based on the remaining billing period.
The result of previewing a prorated refund for a subscription cancellation, without issuing any refund. Reflects what would be refunded based on the remaining billing period.
Prorated amount available to refund, in the smallest currency unit (e.g., 1499 = $14.99 USD), based on the unused portion of the current billing period.
-9007199254740991 <= x <= 90071992547409912500
Total amount paid on the subscription's latest invoice, in the smallest currency unit (e.g., 2999 = $29.99 USD).
-9007199254740991 <= x <= 90071992547409912500
Start of the current billing period, as an RFC 3339 timestamp.
"2026-06-15T14:30:00Z"
End of the current billing period, as an RFC 3339 timestamp.
"2026-06-15T14:30:00Z"
The payment method ID that would be refunded, if available
"fpm_01J9XR8M3K7VZ8N2YB4WJ6T0RA"
Last 4 digits of the card that would be refunded, if available
"4242"