Update Verified Data Portrait Background
POST {{apiPath}}/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}
Use the POST {{apiPath}}/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}} request to update the background of the specified self portrait (selfie) on the specified verify transaction for the user in the environment. This request, in effect, crops the face out of the selfie and drops it on a uniform background of the color defined in the backgroundColor object.
This request requires a custom Content-Type of application/vnd.pingidentity.replace.background+json.
This request can only be called after verification of the user.
Request Model
Refer to Verified data portrait background data model for full property descriptions.
| Property | Type | Required |
|---|---|---|
|
Object |
Required |
|
Integer |
Required |
|
Integer |
Required |
|
Integer |
Required |
|
Object |
Required |
|
Integer |
Required |
|
Integer |
Required |
Example Request
-
cURL
-
C#
-
Go
-
HTTP
-
Java
-
jQuery
-
NodeJS
-
Python
-
PHP
-
Ruby
-
Swift
curl --location --globoff '{{apiPath}}/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}' \
--header 'Content-Type: application/vnd.pingidentity.replace.background+json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
"backgroundColor": {
"red": 179,
"green": 40,
"blue": 45
},
"aspectRatio": {
"aspectHeight": 4,
"aspectWidth": 3
}
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/vnd.pingidentity.replace.background+json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@" ""backgroundColor"": {" + "\n" +
@" ""red"": 179," + "\n" +
@" ""green"": 40," + "\n" +
@" ""blue"": 45" + "\n" +
@" }," + "\n" +
@" ""aspectRatio"": {" + "\n" +
@" ""aspectHeight"": 4," + "\n" +
@" ""aspectWidth"": 3" + "\n" +
@" }" + "\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}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}"
method := "POST"
payload := strings.NewReader(`{
"backgroundColor": {
"red": 179,
"green": 40,
"blue": 45
},
"aspectRatio": {
"aspectHeight": 4,
"aspectWidth": 3
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/vnd.pingidentity.replace.background+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}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}} HTTP/1.1
Host: {{apiPath}}
Content-Type: application/vnd.pingidentity.replace.background+json
Authorization: Bearer {{accessToken}}
{
"backgroundColor": {
"red": 179,
"green": 40,
"blue": 45
},
"aspectRatio": {
"aspectHeight": 4,
"aspectWidth": 3
}
}
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/vnd.pingidentity.replace.background+json");
RequestBody body = RequestBody.create(mediaType, "{\n \"backgroundColor\": {\n \"red\": 179,\n \"green\": 40,\n \"blue\": 45\n },\n \"aspectRatio\": {\n \"aspectHeight\": 4,\n \"aspectWidth\": 3\n }\n}");
Request request = new Request.Builder()
.url("{{apiPath}}/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}")
.method("POST", body)
.addHeader("Content-Type", "application/vnd.pingidentity.replace.background+json")
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
var settings = {
"url": "{{apiPath}}/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/vnd.pingidentity.replace.background+json",
"Authorization": "Bearer {{accessToken}}"
},
"data": JSON.stringify({
"backgroundColor": {
"red": 179,
"green": 40,
"blue": 45
},
"aspectRatio": {
"aspectHeight": 4,
"aspectWidth": 3
}
}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
var request = require('request');
var options = {
'method': 'POST',
'url': '{{apiPath}}/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}',
'headers': {
'Content-Type': 'application/vnd.pingidentity.replace.background+json',
'Authorization': 'Bearer {{accessToken}}'
},
body: JSON.stringify({
"backgroundColor": {
"red": 179,
"green": 40,
"blue": 45
},
"aspectRatio": {
"aspectHeight": 4,
"aspectWidth": 3
}
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
import json
url = "{{apiPath}}/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}"
payload = json.dumps({
"backgroundColor": {
"red": 179,
"green": 40,
"blue": 45
},
"aspectRatio": {
"aspectHeight": 4,
"aspectWidth": 3
}
})
headers = {
'Content-Type': 'application/vnd.pingidentity.replace.background+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}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Content-Type' => 'application/vnd.pingidentity.replace.background+json',
'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n "backgroundColor": {\n "red": 179,\n "green": 40,\n "blue": 45\n },\n "aspectRatio": {\n "aspectHeight": 4,\n "aspectWidth": 3\n }\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}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/vnd.pingidentity.replace.background+json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
"backgroundColor": {
"red": 179,
"green": 40,
"blue": 45
},
"aspectRatio": {
"aspectHeight": 4,
"aspectWidth": 3
}
})
response = http.request(request)
puts response.read_body
let parameters = "{\n \"backgroundColor\": {\n \"red\": 179,\n \"green\": 40,\n \"blue\": 45\n },\n \"aspectRatio\": {\n \"aspectHeight\": 4,\n \"aspectWidth\": 3\n }\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/users/{{userID}}/verifyTransactions/{{transactionID}}/verifiedData/{{selfieID}}")!,timeoutInterval: Double.infinity)
request.addValue("application/vnd.pingidentity.replace.background+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
200 OK
{
"_links": {
"self": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/users/5a942438-cca2-4edd-ac53-c1384c6e0329/verifyTransactions/46a76722-9d9f-4ad0-816d-c7fc981be6a9/verifiedData/c1f147d7-dca5-3788-ad6e-453468875b41"
},
"environment": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
},
"user": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/users/5a942438-cca2-4edd-ac53-c1384c6e0329"
},
"verifyTransaction": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/users/5a942438-cca2-4edd-ac53-c1384c6e0329/verifyTransactions/46a76722-9d9f-4ad0-816d-c7fc981be6a9"
}
},
"id": "ef6cd8cd-d869-4695-af69-29c78b6f041a",
"type": "SELFIE",
"data": {
"format": "JPEG",
"image" : "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"
}
}