PingOne Platform APIs

Update Authorize Gateway

 

PUT {{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}

The PUT /environments/{{envID}}/gateways/{{gatewayID}} operation updates properties of an existing Authorize gateway.

In the body of the request:

  • You must include all of the parameters that are required when creating an Authorize gateway, even if you are not modifying their values.

  • You cannot change the gateway type when you update an Authorize gateway.

  • You can change the {{authorizationVersionID}} to update the policy version deployed to any gateway instances associated with the specified Authorize gateway. For more information, see Publishing policy versions to Authorize gateway instances.

Prerequisites

Request Model

For descriptions of general parameters in the body of the request, see Gateway base data model.

Property Type Required?

description

String

Optional

enabled

Boolean

Required

name

String

Required

type

String

Required

For descriptions of Authorize-specific parameters in the body of the request, see Authorize gateway data model.

Property Type Required?

authorizationVersionId

UUID

Required

Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/json

Body

raw ( application/json )

{
  "name": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "enabled": true
}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff --request PUT '{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
  "name": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "enabled": true
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Put);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@"  ""name"": ""My new Authorize Gateway""," + "\n" +
@"  ""type"": ""AUTHORIZE""," + "\n" +
@"  ""authorizationVersion"": {" + "\n" +
@"    ""id"": ""{{authorizationVersionID}}""" + "\n" +
@"  }," + "\n" +
@"  ""description"": ""A new authorize gateway""," + "\n" +
@"  ""enabled"": true" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}"
  method := "PUT"

  payload := strings.NewReader(`{
  "name": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "enabled": true
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
PUT /environments/{{envID}}/gateways/{{gatewayID}} HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}

{
  "name": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "enabled": true
}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"name\": \"My new Authorize Gateway\",\n  \"type\": \"AUTHORIZE\",\n  \"authorizationVersion\": {\n    \"id\": \"{{authorizationVersionID}}\"\n  },\n  \"description\": \"A new authorize gateway\",\n  \"enabled\": true\n}");
Request request = new Request.Builder()
  .url("{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}")
  .method("PUT", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}",
  "method": "PUT",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer {{accessToken}}"
  },
  "data": JSON.stringify({
    "name": "My new Authorize Gateway",
    "type": "AUTHORIZE",
    "authorizationVersion": {
      "id": "{{authorizationVersionID}}"
    },
    "description": "A new authorize gateway",
    "enabled": true
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'PUT',
  'url': '{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {{accessToken}}'
  },
  body: JSON.stringify({
    "name": "My new Authorize Gateway",
    "type": "AUTHORIZE",
    "authorizationVersion": {
      "id": "{{authorizationVersionID}}"
    },
    "description": "A new authorize gateway",
    "enabled": true
  })

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
import requests
import json

url = "{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}"

payload = json.dumps({
  "name": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "enabled": True
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n  "name": "My new Authorize Gateway",\n  "type": "AUTHORIZE",\n  "authorizationVersion": {\n    "id": "{{authorizationVersionID}}"\n  },\n  "description": "A new authorize gateway",\n  "enabled": true\n}');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
require "uri"
require "json"
require "net/http"

url = URI("{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
  "name": "My new Authorize Gateway",
  "type": "AUTHORIZE",
  "authorizationVersion": {
    "id": "{{authorizationVersionID}}"
  },
  "description": "A new authorize gateway",
  "enabled": true
})

response = http.request(request)
puts response.read_body
let parameters = "{\n  \"name\": \"My new Authorize Gateway\",\n  \"type\": \"AUTHORIZE\",\n  \"authorizationVersion\": {\n    \"id\": \"{{authorizationVersionID}}\"\n  },\n  \"description\": \"A new authorize gateway\",\n  \"enabled\": true\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/gateways/{{gatewayID}}")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "PUT"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()

Example Response

200 OK

{
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/gateways/836e3a75-3c4e-4e4a-a370-ef8f68631e37"
        },
        "environment": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
        },
        "instances": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/gateways/836e3a75-3c4e-4e4a-a370-ef8f68631e37/instances"
        },
        "credentials": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/gateways/836e3a75-3c4e-4e4a-a370-ef8f68631e37/credentials"
        },
        "authorizationVersion": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/authorizationVersions/7fa0fab0-45a9-11ee-9111-ad9ff6c3fac0"
        }
    },
    "id": "836e3a75-3c4e-4e4a-a370-ef8f68631e37",
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "name": "My new Authorize Gateway",
    "description": "A new authorize gateway",
    "type": "AUTHORIZE",
    "enabled": true,
    "supportedVersions": [
        {
            "version": "1.0.0",
            "image": "pingidentity/pingone-authorize-gateway:1.0.0",
            "recommended": true,
            "latest": true
        }
    ],
    "credentials": [
        {
            "id": "3324df27-23f3-4e22-8c22-ed26c0a33e9f",
            "createdAt": "2025-06-17T09:14:18.772Z"
        },
        {
            "id": "3bbf8dcd-d403-4912-b619-231aa58f6cf5",
            "createdAt": "2025-06-19T13:12:16.015Z",
            "lastUsedAt": "2025-06-19T13:31:13.408Z"
        },
        {
            "id": "58dc7738-98e4-4624-ad06-89907d26ba7d",
            "createdAt": "2025-02-24T01:55:23.714Z"
        }
    ],
    "authorizationVersion": {
        "id": "7fa0fab0-45a9-11ee-9111-ad9ff6c3fac0"
    }
}