Cancel Subscription
curl --request POST \
--url https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel \
--header 'x-revolv3-token: <api-key>'import requests
url = "https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel"
headers = {"x-revolv3-token": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-revolv3-token': '<api-key>'}};
fetch('https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel', 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.revolv3.com/api/Subscriptions/{subscriptionId}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"x-revolv3-token: <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-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-revolv3-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.post("https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel")
.header("x-revolv3-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-revolv3-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"subscriptionId": 1,
"customerId": 3,
"subscriptionStatus": "Cancelled",
"cancelledAt": "2026-09-01T14:49:07.8336654Z"
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}{
"message": "Unable to find an entity with the provided data."
}Subscriptions
Cancel Subscription
Cancels an active subscription, stopping all future billing and scheduled invoices. This endpoint allows for controlled cancellation logic, such as canceling immediately.
You must provide the subscriptionId.
This is commonly used in customer self-service flows, churn-prevention workflows, or manual support actions.
After cancellation, the subscription status is updated to Cancelled or PendingCancellation, but historical billing data remains accessible for reporting and audit.
POST
/
api
/
Subscriptions
/
{subscriptionId}
/
cancel
Cancel Subscription
curl --request POST \
--url https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel \
--header 'x-revolv3-token: <api-key>'import requests
url = "https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel"
headers = {"x-revolv3-token": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-revolv3-token': '<api-key>'}};
fetch('https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel', 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.revolv3.com/api/Subscriptions/{subscriptionId}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"x-revolv3-token: <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-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-revolv3-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.post("https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel")
.header("x-revolv3-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.revolv3.com/api/Subscriptions/{subscriptionId}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-revolv3-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"subscriptionId": 1,
"customerId": 3,
"subscriptionStatus": "Cancelled",
"cancelledAt": "2026-09-01T14:49:07.8336654Z"
}{
"message": "Unable to perform the request action with provided data."
}{
"message": "Attempted to perform an unauthorized operation."
}{
"message": "Unable to find an entity with the provided data."
}Authorizations
Path Parameters
Required range:
1 <= x <= 1000000000
