curl --request POST \
--url https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription \
--header 'Authorization: Bearer <token>'import requests
url = "https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription', 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://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription"
req, _ := http.NewRequest("POST", 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.post("https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"transactionId": "txn_01m2gcs800msa9tpw20kdrzbgq",
"checkoutUrl": "https://vps.advinservers.com/services/7398/billing?_ptxn=txn_01m2gcs800msa9tpw20kdrzbgq",
"clientToken": "live_7d0b6c1f3e9a24c58b71e2f4d93",
"environment": "production",
"chargesNow": false,
"firstChargeAt": "2026-10-11",
"resumed": false
}{
"message": "Unauthenticated."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"message": "Not found."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Set up automatic payment for a service
Overview
Starts automatic payment setup for a service that has no subscription. The customer must finish setup with the payment provider before the subscription appears. The response includes checkoutUrl, transactionId, clientToken and environment for that step.
Use chargesNow to tell the customer whether setup will charge them immediately. A paid service is not charged until its next due date. An overdue service is charged immediately. firstChargeAt gives the first payment date.
Permissions
Requires the account permission billing.manage (Manage billing).
curl --request POST \
--url https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription \
--header 'Authorization: Bearer <token>'import requests
url = "https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription', 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://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription"
req, _ := http.NewRequest("POST", 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.post("https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://console.advinservers.com/api/v1/client/billing/managed-services/{service}/subscription")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"transactionId": "txn_01m2gcs800msa9tpw20kdrzbgq",
"checkoutUrl": "https://vps.advinservers.com/services/7398/billing?_ptxn=txn_01m2gcs800msa9tpw20kdrzbgq",
"clientToken": "live_7d0b6c1f3e9a24c58b71e2f4d93",
"environment": "production",
"chargesNow": false,
"firstChargeAt": "2026-10-11",
"resumed": false
}{
"message": "Unauthenticated."
}{
"message": "This API key is not allowed to do that in this team. It needs the \"snapshot.delete\" permission."
}{
"message": "Not found."
}{
"message": "The name field is required.",
"errors": {}
}{
"message": "Too Many Attempts."
}Authorizations
Your API key, sent as a bearer token. Create one in the control panel under API Keys, give it only the permissions the integration needs, and copy it when it is created. It cannot be shown again. Each key is restricted to one owned team. The key determines the team for every request.
Path Parameters
The service ID returned by the billing endpoints.
7312
Response
The record, as a JSON object. There is no envelope.
The payment setup details needed to enable automatic renewal for a service.
The transaction id ID.
"txn_01m2gcs800msa9tpw20kdrzbgq"
The value of checkout_url.
"https://vps.advinservers.com/services/7398/billing?_ptxn=txn_01m2gcs800msa9tpw20kdrzbgq"
The value of client_token.
"live_7d0b6c1f3e9a24c58b71e2f4d93"
The value of environment.
"production"
The value of charges_now.
false
The date and time for first charge at, in UTC.
"2026-10-11"
The value of resumed.
false