Create Identity Provider (Paypal)
POST {{apiPath}}/environments/{{envID}}/identityProviders
The POST {{apiPath}}/environments/{{envID}}/identityProviders operation adds a new identity provider resource to the specified environment.
When the type property value is set to PAYPAL, PayPal’s clientId, clientSecret, and clientEnvironment property values are required in the request body.
Prerequisites
-
Refer to Identity Provider Management for important overview information.
Request Model
PayPal identity provider settings data model
| Property | Type | Required? |
|---|---|---|
|
String |
Required |
|
String |
Required |
|
String |
Required |
PayPal core attributes
| Property | Description |
|---|---|
|
A string that specifies the core PayPal attribute. The default value is |
PayPal provider attributes
| Permission | Provider attributes |
|---|---|
OpenID Connect scopes: |
|
|
Options are: |
|
Options are: |
Refer to Base IdP data model for the properties available to all of the supported identity providers.
Query parameters
| Parameter | Description |
|---|---|
|
When equal to |
Example: POST {{apiPath}}/environments/{{envID}}/identityProviders?expand=attributes
Example Request
-
cURL
-
C#
-
Go
-
HTTP
-
Java
-
jQuery
-
NodeJS
-
Python
-
PHP
-
Ruby
-
Swift
curl --location --globoff '{{apiPath}}/environments/{{envID}}/identityProviders' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
"description": "Paypal Provider",
"enabled": true,
"name": "PaypalIdP1",
"type": "PAYPAL",
"clientId": "PAYPAL_ID",
"clientSecret": "PAYPAL_SECRET",
"clientEnvironment": "sandbox"
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/identityProviders")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@" ""description"": ""Paypal Provider""," + "\n" +
@" ""enabled"": true," + "\n" +
@" ""name"": ""PaypalIdP1""," + "\n" +
@" ""type"": ""PAYPAL""," + "\n" +
@" ""clientId"": ""PAYPAL_ID""," + "\n" +
@" ""clientSecret"": ""PAYPAL_SECRET""," + "\n" +
@" ""clientEnvironment"": ""sandbox""" + "\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}}/identityProviders"
method := "POST"
payload := strings.NewReader(`{
"description": "Paypal Provider",
"enabled": true,
"name": "PaypalIdP1",
"type": "PAYPAL",
"clientId": "PAYPAL_ID",
"clientSecret": "PAYPAL_SECRET",
"clientEnvironment": "sandbox"
}`)
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))
}
POST /environments/{{envID}}/identityProviders HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}
{
"description": "Paypal Provider",
"enabled": true,
"name": "PaypalIdP1",
"type": "PAYPAL",
"clientId": "PAYPAL_ID",
"clientSecret": "PAYPAL_SECRET",
"clientEnvironment": "sandbox"
}
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"description\": \"Paypal Provider\",\n \"enabled\": true,\n \"name\": \"PaypalIdP1\",\n \"type\": \"PAYPAL\",\n \"clientId\": \"PAYPAL_ID\",\n \"clientSecret\": \"PAYPAL_SECRET\",\n \"clientEnvironment\": \"sandbox\"\n}");
Request request = new Request.Builder()
.url("{{apiPath}}/environments/{{envID}}/identityProviders")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
var settings = {
"url": "{{apiPath}}/environments/{{envID}}/identityProviders",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer {{accessToken}}"
},
"data": JSON.stringify({
"description": "Paypal Provider",
"enabled": true,
"name": "PaypalIdP1",
"type": "PAYPAL",
"clientId": "PAYPAL_ID",
"clientSecret": "PAYPAL_SECRET",
"clientEnvironment": "sandbox"
}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
var request = require('request');
var options = {
'method': 'POST',
'url': '{{apiPath}}/environments/{{envID}}/identityProviders',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer {{accessToken}}'
},
body: JSON.stringify({
"description": "Paypal Provider",
"enabled": true,
"name": "PaypalIdP1",
"type": "PAYPAL",
"clientId": "PAYPAL_ID",
"clientSecret": "PAYPAL_SECRET",
"clientEnvironment": "sandbox"
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
import json
url = "{{apiPath}}/environments/{{envID}}/identityProviders"
payload = json.dumps({
"description": "Paypal Provider",
"enabled": True,
"name": "PaypalIdP1",
"type": "PAYPAL",
"clientId": "PAYPAL_ID",
"clientSecret": "PAYPAL_SECRET",
"clientEnvironment": "sandbox"
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {{accessToken}}'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/identityProviders');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n "description": "Paypal Provider",\n "enabled": true,\n "name": "PaypalIdP1",\n "type": "PAYPAL",\n "clientId": "PAYPAL_ID",\n "clientSecret": "PAYPAL_SECRET",\n "clientEnvironment": "sandbox"\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}}/identityProviders")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
"description": "Paypal Provider",
"enabled": true,
"name": "PaypalIdP1",
"type": "PAYPAL",
"clientId": "PAYPAL_ID",
"clientSecret": "PAYPAL_SECRET",
"clientEnvironment": "sandbox"
})
response = http.request(request)
puts response.read_body
let parameters = "{\n \"description\": \"Paypal Provider\",\n \"enabled\": true,\n \"name\": \"PaypalIdP1\",\n \"type\": \"PAYPAL\",\n \"clientId\": \"PAYPAL_ID\",\n \"clientSecret\": \"PAYPAL_SECRET\",\n \"clientEnvironment\": \"sandbox\"\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/identityProviders")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")
request.httpMethod = "POST"
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
201 Created
{
"_links": {
"self": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/identityProviders/2fd34108-3708-4110-80f2-d83c89399695"
},
"environment": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
},
"attributes": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/identityProviders/2fd34108-3708-4110-80f2-d83c89399695/attributes"
}
},
"id": "2fd34108-3708-4110-80f2-d83c89399695",
"type": "PAYPAL",
"name": "PaypalIdP1",
"description": "Paypal Provider",
"enabled": true,
"environment": {
"id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
},
"createdAt": "2020-08-11T22:21:49.007Z",
"updatedAt": "2020-08-11T22:21:49.007Z",
"clientEnvironment": "sandbox",
"clientSecret": "PAYPAL_SECRET",
"clientId": "PAYPAL_ID"
}