Get SAML IdP configuration values
curl --request GET \
--url https://api.staging.payrails.io/auth/sso/connections/saml-configs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.staging.payrails.io/auth/sso/connections/saml-configs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.staging.payrails.io/auth/sso/connections/saml-configs', 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.staging.payrails.io/auth/sso/connections/saml-configs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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://api.staging.payrails.io/auth/sso/connections/saml-configs"
req, _ := http.NewRequest("GET", 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.get("https://api.staging.payrails.io/auth/sso/connections/saml-configs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.staging.payrails.io/auth/sso/connections/saml-configs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"Name": "okta",
"DisplayName": "Okta",
"AudienceURI": "urn:auth0:payrails-staging:acme-saml-okta",
"CallbackURL": "https://auth.payrails.io/login/callback?connection=acme-saml-okta&organization=org_123456789"
},
{
"Name": "jumpcloud",
"DisplayName": "JumpCloud",
"AudienceURI": "urn:auth0:payrails-staging:acme-saml-jumpcloud",
"CallbackURL": "https://auth.payrails.io/login/callback?connection=acme-saml-jumpcloud&organization=org_123456789"
}
]{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.unauthorized",
"detail": "The request lacks necessary credentials to perform the specified action",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestunauthorized"
}
]
}{
"errors": [
{
"id": "e7db22b3-914e-4975-928e-9edfb0885bea",
"code": "request.forbidden",
"detail": "The request credentials lack the required permissions to perform the specified action",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestforbidden"
}
]
}{
"errors": [
{
"id": "673f020f-5435-4408-b7ab-0cdabfc51ed6",
"title": "Not Acceptable.",
"detail": "Your request doesn't specify the API version. Your request `Content-Type` header MUST point to an existing API version.",
"code": ""
}
]
}{
"errors": [
{
"id": "07a1d642-dbf5-47d3-8563-700514b38e46",
"title": "Unsupported Media Type.",
"detail": "The request header `Content-Type: application/json` is not supported. All requests content type headers MUST be set to `application/json`.",
"code": ""
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.rate-limit",
"detail": "Too many requests",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestrate-limit"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "internal",
"detail": "An internal error occurred",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#internal"
}
]
}Get SAML IdP configuration values
Retrieve configuration values required to connect supported SAML identity providers for the active merchant.
GET
https://api.staging.payrails.io
/
auth
/
sso
/
connections
/
saml-configs
Get SAML IdP configuration values
curl --request GET \
--url https://api.staging.payrails.io/auth/sso/connections/saml-configs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.staging.payrails.io/auth/sso/connections/saml-configs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.staging.payrails.io/auth/sso/connections/saml-configs', 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.staging.payrails.io/auth/sso/connections/saml-configs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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://api.staging.payrails.io/auth/sso/connections/saml-configs"
req, _ := http.NewRequest("GET", 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.get("https://api.staging.payrails.io/auth/sso/connections/saml-configs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.staging.payrails.io/auth/sso/connections/saml-configs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"Name": "okta",
"DisplayName": "Okta",
"AudienceURI": "urn:auth0:payrails-staging:acme-saml-okta",
"CallbackURL": "https://auth.payrails.io/login/callback?connection=acme-saml-okta&organization=org_123456789"
},
{
"Name": "jumpcloud",
"DisplayName": "JumpCloud",
"AudienceURI": "urn:auth0:payrails-staging:acme-saml-jumpcloud",
"CallbackURL": "https://auth.payrails.io/login/callback?connection=acme-saml-jumpcloud&organization=org_123456789"
}
]{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.unauthorized",
"detail": "The request lacks necessary credentials to perform the specified action",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestunauthorized"
}
]
}{
"errors": [
{
"id": "e7db22b3-914e-4975-928e-9edfb0885bea",
"code": "request.forbidden",
"detail": "The request credentials lack the required permissions to perform the specified action",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestforbidden"
}
]
}{
"errors": [
{
"id": "673f020f-5435-4408-b7ab-0cdabfc51ed6",
"title": "Not Acceptable.",
"detail": "Your request doesn't specify the API version. Your request `Content-Type` header MUST point to an existing API version.",
"code": ""
}
]
}{
"errors": [
{
"id": "07a1d642-dbf5-47d3-8563-700514b38e46",
"title": "Unsupported Media Type.",
"detail": "The request header `Content-Type: application/json` is not supported. All requests content type headers MUST be set to `application/json`.",
"code": ""
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "request.rate-limit",
"detail": "Too many requests",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#requestrate-limit"
}
]
}{
"errors": [
{
"id": "a24bc325-3929-4d9d-9c08-b3aa532685b7",
"code": "internal",
"detail": "An internal error occurred",
"docUrl": "https://docs.payrails.com/docs/resources/error-codes#internal"
}
]
}Authorizations
You can use an OAuth2 JWT bearer token in the Authorization header of your API requests for supported endpoints: Authorization: Bearer <YOUR_JWT_HERE>.
These tokens are valid for 10 minutes and can be requested via the access token endpoint endpoint.
Response
Success.
Provider key configured for the SAML connection.
Human-readable label shown to end users.
Audience URI that must be configured in the identity provider.
Callback URL to register in the identity provider for SAML assertions.
Last modified on October 1, 2026