Switch template version
curl --request POST \
--url https://api.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"template_version_id": "<string>"
}
'import requests
url = "https://api.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade"
payload = { "template_version_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({template_version_id: '<string>'})
};
fetch('https://api.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade', 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.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade",
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([
'template_version_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade"
payload := strings.NewReader("{\n \"template_version_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"template_version_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"template_version_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": "<string>"
}{
"message": "<string>",
"errors": {}
}Invoice and document templates
Switch template version
Moves a template to another version of the same template (the current one when none is named), or back to an older one. Settings not supported by the target version are dropped and reported.
POST
/
template
/
company-templates
/
{companyTemplate}
/
upgrade
Switch template version
curl --request POST \
--url https://api.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"template_version_id": "<string>"
}
'import requests
url = "https://api.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade"
payload = { "template_version_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({template_version_id: '<string>'})
};
fetch('https://api.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade', 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.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade",
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([
'template_version_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade"
payload := strings.NewReader("{\n \"template_version_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"template_version_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.exowpee.com/v1/template/company-templates/{companyTemplate}/upgrade")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"template_version_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": "<string>"
}{
"message": "<string>",
"errors": {}
}Company space
For: Administrator, Manager · Permission:
company_templates.upgrade
Conditions
- The version must belong to the same template, otherwise the call is refused. An older version is accepted, which makes this action the rollback path.
- Pins the company template to the target version; when template_version_id is omitted, the template’s current version is used.
- Settings whose keys are not in the target version’s configuration schema are removed and returned in dropped_settings.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Identifier of the company template, the company's own copy of a template (27-character KSUID string).
Body
application/json
Identifier of the version to move to; it must belong to the same template and can be older than the current pin. When omitted, the template's current version is used.
Maximum string length:
27Response
JsonResource
Items of this page.