curl --request PATCH \
--url https://accounts.livechat.com/v2/organizations/my/saml \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"entrypoint": "https://accounts.example.com/saml2/idp/SSOService.php",
"active": false
}
'import requests
url = "https://accounts.livechat.com/v2/organizations/my/saml"
payload = {
"entrypoint": "https://accounts.example.com/saml2/idp/SSOService.php",
"active": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
entrypoint: 'https://accounts.example.com/saml2/idp/SSOService.php',
active: false
})
};
fetch('https://accounts.livechat.com/v2/organizations/my/saml', 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://accounts.livechat.com/v2/organizations/my/saml",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'entrypoint' => 'https://accounts.example.com/saml2/idp/SSOService.php',
'active' => false
]),
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://accounts.livechat.com/v2/organizations/my/saml"
payload := strings.NewReader("{\n \"entrypoint\": \"https://accounts.example.com/saml2/idp/SSOService.php\",\n \"active\": false\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://accounts.livechat.com/v2/organizations/my/saml")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"entrypoint\": \"https://accounts.example.com/saml2/idp/SSOService.php\",\n \"active\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://accounts.livechat.com/v2/organizations/my/saml")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"entrypoint\": \"https://accounts.example.com/saml2/idp/SSOService.php\",\n \"active\": false\n}"
response = http.request(request)
puts response.read_body{
"entrypoint": "https://accounts.example.com/saml2/idp/SSOService.php",
"certificate": "-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJALmVVuDWu4NYMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\n-----END CERTIFICATE-----",
"idp_entity_id": "https://accounts.example.com/saml2/idp/metadata.php",
"sp_entity_id": "https://accounts.livechat.com/saml/metadata",
"active": false,
"version": 2
}{
"error": "bad_request",
"error_description": "The server cannot or will not process the request due to an apparent client error (for example, malformed request syntax, size too large).",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "access_denied",
"sub_error": "insufficient_scope",
"error_description": "The resource owner or authorization server denied the request.",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "resource_not_found",
"error_description": "The requested resource couldn't be found.",
"resource_name": "account",
"resource_id": "def31e95-5ca4-4817-b176-732e4544daca",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "conflict",
"error_description": "The request couldn't be processed because of conflict in the current state of the resource.",
"resource_name": "account",
"resource_id": "5903c51b-89f0-41a9-a25d-4f39af100353",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "invalid_request",
"error_description": "The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed.",
"invalid_fields": {
"email": "invalid email address"
},
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "server_error",
"error_description": "The server encountered an unexpected condition that prevented it from fulfilling the request.",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}Modify SAML configuration
Modifies SAML configuration for the organization.
When changing the active parameter, it will enable SAML configuration. This will cause other authentication (login/password, etc.) methods to be disabled for that organization. Activation of SAML configuration will be blocked if there is no product on an enterprise plan or the organization contains an account that is added to another organization.
curl --request PATCH \
--url https://accounts.livechat.com/v2/organizations/my/saml \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"entrypoint": "https://accounts.example.com/saml2/idp/SSOService.php",
"active": false
}
'import requests
url = "https://accounts.livechat.com/v2/organizations/my/saml"
payload = {
"entrypoint": "https://accounts.example.com/saml2/idp/SSOService.php",
"active": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
entrypoint: 'https://accounts.example.com/saml2/idp/SSOService.php',
active: false
})
};
fetch('https://accounts.livechat.com/v2/organizations/my/saml', 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://accounts.livechat.com/v2/organizations/my/saml",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'entrypoint' => 'https://accounts.example.com/saml2/idp/SSOService.php',
'active' => false
]),
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://accounts.livechat.com/v2/organizations/my/saml"
payload := strings.NewReader("{\n \"entrypoint\": \"https://accounts.example.com/saml2/idp/SSOService.php\",\n \"active\": false\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://accounts.livechat.com/v2/organizations/my/saml")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"entrypoint\": \"https://accounts.example.com/saml2/idp/SSOService.php\",\n \"active\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://accounts.livechat.com/v2/organizations/my/saml")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"entrypoint\": \"https://accounts.example.com/saml2/idp/SSOService.php\",\n \"active\": false\n}"
response = http.request(request)
puts response.read_body{
"entrypoint": "https://accounts.example.com/saml2/idp/SSOService.php",
"certificate": "-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJALmVVuDWu4NYMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\n-----END CERTIFICATE-----",
"idp_entity_id": "https://accounts.example.com/saml2/idp/metadata.php",
"sp_entity_id": "https://accounts.livechat.com/saml/metadata",
"active": false,
"version": 2
}{
"error": "bad_request",
"error_description": "The server cannot or will not process the request due to an apparent client error (for example, malformed request syntax, size too large).",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "access_denied",
"sub_error": "insufficient_scope",
"error_description": "The resource owner or authorization server denied the request.",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "resource_not_found",
"error_description": "The requested resource couldn't be found.",
"resource_name": "account",
"resource_id": "def31e95-5ca4-4817-b176-732e4544daca",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "conflict",
"error_description": "The request couldn't be processed because of conflict in the current state of the resource.",
"resource_name": "account",
"resource_id": "5903c51b-89f0-41a9-a25d-4f39af100353",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "invalid_request",
"error_description": "The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed.",
"invalid_fields": {
"email": "invalid email address"
},
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}{
"error": "server_error",
"error_description": "The server encountered an unexpected condition that prevented it from fulfilling the request.",
"request_id": "5903c51b-89f0-41a9-a25d-4f39af100353"
}Authorizations
This API uses OAuth2 with the implicit grant flow. Learn about the implicit grant flow.
Body
The entrypoint URL of the identity provider; SSO redirects the AuthnRequest there.
The SAML certificate configured on the IDP side in PEM format.
The entity ID of the external identity provider; usually a URL.
The entity ID of Text Accounts; it has a default value that can be changed.
If true: the SAML configuration is enabled.
Response
OK: SAML configuration was modified.
The organization's SAML configuration.
The entrypoint URL of the identity provider; SSO redirects the AuthnRequest there.
The SAML certificate configured on the IDP side in PEM format.
The entity ID of the external identity provider; usually a URL.
The entity ID of Text Accounts; it has a default value that can be changed.
If true: the SAML configuration is enabled.
The version of the SAML configuration; currently either 1 or 2.
Was this page helpful?