curl --request POST \
--url https://api.creem.io/v1/subscriptions/{id}/cancel \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"mode": "immediate",
"onExecute": "cancel"
}
'import requests
url = "https://api.creem.io/v1/subscriptions/{id}/cancel"
payload = {
"mode": "immediate",
"onExecute": "cancel"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({mode: 'immediate', onExecute: 'cancel'})
};
fetch('https://api.creem.io/v1/subscriptions/{id}/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.creem.io/v1/subscriptions/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'mode' => 'immediate',
'onExecute' => 'cancel'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.creem.io/v1/subscriptions/{id}/cancel"
payload := strings.NewReader("{\n \"mode\": \"immediate\",\n \"onExecute\": \"cancel\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
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.creem.io/v1/subscriptions/{id}/cancel")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"mode\": \"immediate\",\n \"onExecute\": \"cancel\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creem.io/v1/subscriptions/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"mode\": \"immediate\",\n \"onExecute\": \"cancel\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"mode": "test",
"object": "subscription",
"product": {
"id": "<string>",
"mode": "test",
"object": "<string>",
"name": "<string>",
"description": "This is a sample product description.",
"price": 400,
"currency": "USD",
"billing_type": "recurring",
"billing_period": "every-month",
"status": "active",
"tax_mode": "inclusive",
"tax_category": "saas",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z",
"image_url": "https://example.com/image.jpg",
"image_urls": [
"https://example.com/image.jpg"
],
"features": [
{
"id": "feat_abc123",
"type": "licenseKey",
"description": "Access to premium course materials."
}
],
"recurring_interval": "month",
"recurring_interval_count": 3,
"product_url": "https://creem.io/product/prod_123123123123",
"default_success_url": "https://example.com/?status=successful",
"custom_fields": [
{
"type": "text",
"key": "<string>",
"label": "<string>",
"optional": true,
"text": {
"max_length": 123,
"minimum_length": 123,
"value": "<string>"
},
"checkbox": {
"label": "<string>",
"value": true
}
}
]
},
"customer": {
"id": "<string>",
"mode": "test",
"object": "<string>",
"email": "user@example.com",
"country": "US",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z",
"name": "John Doe",
"metadata": {
"key": "value"
}
},
"collection_method": "charge_automatically",
"status": "active",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-09-12T12:34:56Z",
"items": [
{
"id": "<string>",
"mode": "test",
"object": "<string>",
"product_id": "<string>",
"price_id": "<string>",
"units": 123
}
],
"last_transaction_id": "tran_3e6Z6TzvHKdsjEgXnGDEp0",
"last_transaction": {
"id": "<string>",
"mode": "test",
"object": "transaction",
"amount": 2000,
"currency": "USD",
"type": "payment",
"status": "pending",
"created_at": 123,
"amount_paid": 2000,
"discount_amount": 2000,
"tax_country": "US",
"tax_amount": 2000,
"refunded_amount": 2000,
"order": "<string>",
"subscription": "<string>",
"customer": "<string>",
"description": "<string>",
"period_start": 123,
"period_end": 123
},
"last_transaction_date": "2024-09-12T12:34:56Z",
"next_transaction_date": "2024-09-12T12:34:56Z",
"current_period_start_date": "2024-09-12T12:34:56Z",
"current_period_end_date": "2024-09-12T12:34:56Z",
"canceled_at": "2024-09-12T12:34:56Z",
"discount": {
"id": "dis_3e6Z6TzvHKdsjEgXnGDEp0",
"discountCode": "HOLIDAY2024",
"name": "<string>",
"type": "percentage",
"amount": 123,
"duration": "forever",
"durationInMonths": 123
},
"metadata": {
"userId": "user_123",
"plan": "pro"
}
}Cancel a subscription
Cancel an active subscription immediately or schedule cancellation at period end.
curl --request POST \
--url https://api.creem.io/v1/subscriptions/{id}/cancel \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"mode": "immediate",
"onExecute": "cancel"
}
'import requests
url = "https://api.creem.io/v1/subscriptions/{id}/cancel"
payload = {
"mode": "immediate",
"onExecute": "cancel"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({mode: 'immediate', onExecute: 'cancel'})
};
fetch('https://api.creem.io/v1/subscriptions/{id}/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.creem.io/v1/subscriptions/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'mode' => 'immediate',
'onExecute' => 'cancel'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.creem.io/v1/subscriptions/{id}/cancel"
payload := strings.NewReader("{\n \"mode\": \"immediate\",\n \"onExecute\": \"cancel\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
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.creem.io/v1/subscriptions/{id}/cancel")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"mode\": \"immediate\",\n \"onExecute\": \"cancel\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.creem.io/v1/subscriptions/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"mode\": \"immediate\",\n \"onExecute\": \"cancel\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"mode": "test",
"object": "subscription",
"product": {
"id": "<string>",
"mode": "test",
"object": "<string>",
"name": "<string>",
"description": "This is a sample product description.",
"price": 400,
"currency": "USD",
"billing_type": "recurring",
"billing_period": "every-month",
"status": "active",
"tax_mode": "inclusive",
"tax_category": "saas",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z",
"image_url": "https://example.com/image.jpg",
"image_urls": [
"https://example.com/image.jpg"
],
"features": [
{
"id": "feat_abc123",
"type": "licenseKey",
"description": "Access to premium course materials."
}
],
"recurring_interval": "month",
"recurring_interval_count": 3,
"product_url": "https://creem.io/product/prod_123123123123",
"default_success_url": "https://example.com/?status=successful",
"custom_fields": [
{
"type": "text",
"key": "<string>",
"label": "<string>",
"optional": true,
"text": {
"max_length": 123,
"minimum_length": 123,
"value": "<string>"
},
"checkbox": {
"label": "<string>",
"value": true
}
}
]
},
"customer": {
"id": "<string>",
"mode": "test",
"object": "<string>",
"email": "user@example.com",
"country": "US",
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z",
"name": "John Doe",
"metadata": {
"key": "value"
}
},
"collection_method": "charge_automatically",
"status": "active",
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-09-12T12:34:56Z",
"items": [
{
"id": "<string>",
"mode": "test",
"object": "<string>",
"product_id": "<string>",
"price_id": "<string>",
"units": 123
}
],
"last_transaction_id": "tran_3e6Z6TzvHKdsjEgXnGDEp0",
"last_transaction": {
"id": "<string>",
"mode": "test",
"object": "transaction",
"amount": 2000,
"currency": "USD",
"type": "payment",
"status": "pending",
"created_at": 123,
"amount_paid": 2000,
"discount_amount": 2000,
"tax_country": "US",
"tax_amount": 2000,
"refunded_amount": 2000,
"order": "<string>",
"subscription": "<string>",
"customer": "<string>",
"description": "<string>",
"period_start": 123,
"period_end": 123
},
"last_transaction_date": "2024-09-12T12:34:56Z",
"next_transaction_date": "2024-09-12T12:34:56Z",
"current_period_start_date": "2024-09-12T12:34:56Z",
"current_period_end_date": "2024-09-12T12:34:56Z",
"canceled_at": "2024-09-12T12:34:56Z",
"discount": {
"id": "dis_3e6Z6TzvHKdsjEgXnGDEp0",
"discountCode": "HOLIDAY2024",
"name": "<string>",
"type": "percentage",
"amount": 123,
"duration": "forever",
"durationInMonths": 123
},
"metadata": {
"userId": "user_123",
"plan": "pro"
}
}Authorizations
API key for authentication. You can find your API key in the Creem dashboard under Settings > API Keys.
Path Parameters
The unique identifier of the subscription
Body
Subscription cancellation options
The mode of cancellation (immediate or scheduled), default can be configured in the store billing settings.
immediate, scheduled "immediate"
The action to execute when canceling (cancel or pause) when mode is scheduled, ignored when mode is immediate or not provided
cancel, pause "cancel"
Response
Successfully canceled a subscription
Unique identifier for the object.
String representing the environment.
test, prod, sandbox String representing the object's type. Objects of the same type share the same value.
"subscription"
The product associated with the subscription.
Show child attributes
Show child attributes
The customer who owns the subscription.
Show child attributes
Show child attributes
The method used for collecting payments for the subscription.
charge_automatically "charge_automatically"
The current status of the subscription.
active, canceled, unpaid, paused, trialing, scheduled_cancel, past_due "active"
The date and time when the subscription was created.
"2024-01-01T00:00:00Z"
The date and time when the subscription was last updated.
"2024-09-12T12:34:56Z"
Subscription items.
Show child attributes
Show child attributes
The ID of the last paid transaction.
"tran_3e6Z6TzvHKdsjEgXnGDEp0"
The last paid transaction.
Show child attributes
Show child attributes
The date of the last paid transaction.
"2024-09-12T12:34:56Z"
The date when the next subscription transaction will be charged.
"2024-09-12T12:34:56Z"
The start date of the current subscription period.
"2024-09-12T12:34:56Z"
The end date of the current subscription period.
"2024-09-12T12:34:56Z"
The date and time when the subscription was canceled, if applicable.
"2024-09-12T12:34:56Z"
The discount applied to the subscription, if any.
Show child attributes
Show child attributes
Metadata for the subscription in the form of key-value pairs.
{ "userId": "user_123", "plan": "pro" }