curl --request POST \
--url https://api.xpaycheckout.com/subscription/edit \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"subscriptionId": "sub_fooBOwYsaK50AEfK",
"newAmount": 1000,
"newCycleCount": 6,
"newNextPaymentDate": 1753104947000,
"interval": "MONTH",
"intervalCount": 2
}
'import requests
url = "https://api.xpaycheckout.com/subscription/edit"
payload = {
"subscriptionId": "sub_fooBOwYsaK50AEfK",
"newAmount": 1000,
"newCycleCount": 6,
"newNextPaymentDate": 1753104947000,
"interval": "MONTH",
"intervalCount": 2
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subscriptionId: 'sub_fooBOwYsaK50AEfK',
newAmount: 1000,
newCycleCount: 6,
newNextPaymentDate: 1753104947000,
interval: 'MONTH',
intervalCount: 2
})
};
fetch('https://api.xpaycheckout.com/subscription/edit', 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.xpaycheckout.com/subscription/edit",
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([
'subscriptionId' => 'sub_fooBOwYsaK50AEfK',
'newAmount' => 1000,
'newCycleCount' => 6,
'newNextPaymentDate' => 1753104947000,
'interval' => 'MONTH',
'intervalCount' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$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.xpaycheckout.com/subscription/edit"
payload := strings.NewReader("{\n \"subscriptionId\": \"sub_fooBOwYsaK50AEfK\",\n \"newAmount\": 1000,\n \"newCycleCount\": 6,\n \"newNextPaymentDate\": 1753104947000,\n \"interval\": \"MONTH\",\n \"intervalCount\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.xpaycheckout.com/subscription/edit")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"subscriptionId\": \"sub_fooBOwYsaK50AEfK\",\n \"newAmount\": 1000,\n \"newCycleCount\": 6,\n \"newNextPaymentDate\": 1753104947000,\n \"interval\": \"MONTH\",\n \"intervalCount\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.xpaycheckout.com/subscription/edit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subscriptionId\": \"sub_fooBOwYsaK50AEfK\",\n \"newAmount\": 1000,\n \"newCycleCount\": 6,\n \"newNextPaymentDate\": 1753104947000,\n \"interval\": \"MONTH\",\n \"intervalCount\": 2\n}"
response = http.request(request)
puts response.read_body{
"errorCode": "bad_request",
"errorDescription": "Failed to read request"
}Edit Subscription
curl --request POST \
--url https://api.xpaycheckout.com/subscription/edit \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"subscriptionId": "sub_fooBOwYsaK50AEfK",
"newAmount": 1000,
"newCycleCount": 6,
"newNextPaymentDate": 1753104947000,
"interval": "MONTH",
"intervalCount": 2
}
'import requests
url = "https://api.xpaycheckout.com/subscription/edit"
payload = {
"subscriptionId": "sub_fooBOwYsaK50AEfK",
"newAmount": 1000,
"newCycleCount": 6,
"newNextPaymentDate": 1753104947000,
"interval": "MONTH",
"intervalCount": 2
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subscriptionId: 'sub_fooBOwYsaK50AEfK',
newAmount: 1000,
newCycleCount: 6,
newNextPaymentDate: 1753104947000,
interval: 'MONTH',
intervalCount: 2
})
};
fetch('https://api.xpaycheckout.com/subscription/edit', 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.xpaycheckout.com/subscription/edit",
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([
'subscriptionId' => 'sub_fooBOwYsaK50AEfK',
'newAmount' => 1000,
'newCycleCount' => 6,
'newNextPaymentDate' => 1753104947000,
'interval' => 'MONTH',
'intervalCount' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$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.xpaycheckout.com/subscription/edit"
payload := strings.NewReader("{\n \"subscriptionId\": \"sub_fooBOwYsaK50AEfK\",\n \"newAmount\": 1000,\n \"newCycleCount\": 6,\n \"newNextPaymentDate\": 1753104947000,\n \"interval\": \"MONTH\",\n \"intervalCount\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.xpaycheckout.com/subscription/edit")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"subscriptionId\": \"sub_fooBOwYsaK50AEfK\",\n \"newAmount\": 1000,\n \"newCycleCount\": 6,\n \"newNextPaymentDate\": 1753104947000,\n \"interval\": \"MONTH\",\n \"intervalCount\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.xpaycheckout.com/subscription/edit")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subscriptionId\": \"sub_fooBOwYsaK50AEfK\",\n \"newAmount\": 1000,\n \"newCycleCount\": 6,\n \"newNextPaymentDate\": 1753104947000,\n \"interval\": \"MONTH\",\n \"intervalCount\": 2\n}"
response = http.request(request)
puts response.read_body{
"errorCode": "bad_request",
"errorDescription": "Failed to read request"
}TRIALING, ACTIVE, UNPAID, PAUSEDAuthorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Headers
A unique key for making the request idempotent. Must match pattern: ^[a-zA-Z0-9\-_:\.]+$. See Idempotent Requests for more details.
255^[a-zA-Z0-9\-_:\.]+$Body
Unique identifier of the subscription
"sub_fooBOwYsaK50AEfK"
New recurring amount for the subscription, if changed. The amount in lowest count unit. e.g.: For USD 1, amount is 100 representing 100 cents (The minimum amount should be greater than 1 USD).
1000
New number of billing cycles for the subscription, if changed.
6
New next payment date in epoch milliseconds, if changed. Future payments will be deducted at the frequency interval defined in the subscription, calculated from the new next payment date.
1753104947000
The interval group between subscriptions.
⚠️ Please note: When editing interval, intervalCount and newNextPaymentDate must also be provided.
DAY, WEEK, MONTH, YEAR "MONTH"
The number of intervals between subscription billings. For example, interval = MONTH and intervalCount = 3 bills every 3 months.
⚠️ Please note: When editing intervalCount, interval and newNextPaymentDate must also be provided.
2
Response
Subscription edited successfully
Was this page helpful?