> For a complete documentation index, fetch https://docs.voximplant.ai/llms.txt # ChangeAccountPlan POST https://api.voximplant.com/platform_api/ChangeAccountPlan Configures the account's plan. Please note that when you change the billing plan, we reserve the subscription fee and taxes for the upcoming month. Read more in the Billing page. **Example request:** Change the IM plan. Reference: https://docs.voximplant.ai/api-reference/management-api/reference/accounts/change-account-plan ## Authentication - `Authorization` header (bearer token, required) — Voximplant Management API uses signed JWT tokens generated from your service-account private key. Pass the token in the `Authorization` header as a Bearer value: ``` Authorization: Bearer $VOXIMPLANT_TOKEN ``` See [Authorization](/api-reference/management-api/authorization) for ready-to-copy snippets in bash, Python, Node.js and Go that turn your `credentials.json` into a token. ## Request ### Query parameters - `plan_type` (string, required) — The plan type to config. The possible values are IM, MAU - `plan_subscription_template_id` (integer, optional) — The new plan ID with a price larger than the current plan's (see [GetAvailablePlans]) ## Response ### 200 Successful response - `result` (integer, optional) — Returns 1 if the request has been completed successfully - `account_info` (ShortAccountInfoType, optional) — The current account state ## Types ### ShortAccountInfoType The short account info. - `account_id` (integer, optional) — The account's ID - `frozen` (boolean, optional) — Whether account is blocked by Voximplant admins or not - `balance` (double, optional) — The account's money - `currency` (string, optional) — The currency code (USD, RUR, EUR...) ## Examples **Response** ```json { "result": 1 } ``` **SDK Code** ```python Success import requests url = "https://api.voximplant.com/platform_api/ChangeAccountPlan" querystring = {"plan_type":"plan_type"} headers = {"Authorization": "Bearer "} response = requests.post(url, headers=headers, params=querystring) print(response.json()) ``` ```javascript Success const url = 'https://api.voximplant.com/platform_api/ChangeAccountPlan?plan_type=plan_type'; const options = {method: 'POST', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Success package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.voximplant.com/platform_api/ChangeAccountPlan?plan_type=plan_type" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Success require 'uri' require 'net/http' url = URI("https://api.voximplant.com/platform_api/ChangeAccountPlan?plan_type=plan_type") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java Success import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.voximplant.com/platform_api/ChangeAccountPlan?plan_type=plan_type") .header("Authorization", "Bearer ") .asString(); ``` ```php Success request('POST', 'https://api.voximplant.com/platform_api/ChangeAccountPlan?plan_type=plan_type', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp Success using RestSharp; var client = new RestClient("https://api.voximplant.com/platform_api/ChangeAccountPlan?plan_type=plan_type"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift Success import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.voximplant.com/platform_api/ChangeAccountPlan?plan_type=plan_type")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```