Update enhanced due diligence
curl --request PATCH \
--url https://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": {
"media": [
{
"context": "source-of-funds-proof",
"fileId": "57a3ecf2-5404-4654-9ece-feb504a69f86"
}
]
},
"output": {
"verifiedAt": "2020-01-01T00:00:00.000Z"
}
}
'import requests
url = "https://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence"
payload = {
"input": { "media": [
{
"context": "source-of-funds-proof",
"fileId": "57a3ecf2-5404-4654-9ece-feb504a69f86"
}
] },
"output": { "verifiedAt": "2020-01-01T00:00:00.000Z" }
}
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({
input: {
media: [
{
context: 'source-of-funds-proof',
fileId: '57a3ecf2-5404-4654-9ece-feb504a69f86'
}
]
},
output: {verifiedAt: '2020-01-01T00:00:00.000Z'}
})
};
fetch('https://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence', 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.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence",
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([
'input' => [
'media' => [
[
'context' => 'source-of-funds-proof',
'fileId' => '57a3ecf2-5404-4654-9ece-feb504a69f86'
]
]
],
'output' => [
'verifiedAt' => '2020-01-01T00:00:00.000Z'
]
]),
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://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence"
payload := strings.NewReader("{\n \"input\": {\n \"media\": [\n {\n \"context\": \"source-of-funds-proof\",\n \"fileId\": \"57a3ecf2-5404-4654-9ece-feb504a69f86\"\n }\n ]\n },\n \"output\": {\n \"verifiedAt\": \"2020-01-01T00:00:00.000Z\"\n }\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://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {\n \"media\": [\n {\n \"context\": \"source-of-funds-proof\",\n \"fileId\": \"57a3ecf2-5404-4654-9ece-feb504a69f86\"\n }\n ]\n },\n \"output\": {\n \"verifiedAt\": \"2020-01-01T00:00:00.000Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence")
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 \"input\": {\n \"media\": [\n {\n \"context\": \"source-of-funds-proof\",\n \"fileId\": \"57a3ecf2-5404-4654-9ece-feb504a69f86\"\n }\n ]\n },\n \"output\": {\n \"verifiedAt\": \"2020-01-01T00:00:00.000Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"enhancedDueDiligence": {
"code": "enhanced-due-diligence",
"status": "ok",
"verification": {
"model": "partner-verified",
"method": "manual",
"dependencies": [
"customer-due-diligence"
]
},
"input": {
"media": [
{
"context": "source-of-funds-proof",
"fileId": "57a3ecf2-5404-4654-9ece-feb504a69f86"
}
]
},
"output": {
"verifiedAt": "2020-01-01T00:00:00.000Z"
}
}
}KYC
Update enhanced due diligence
Update the enhanced due diligence process for an individual user.
PATCH
/
core
/
kyc
/
processes
/
enhanced-due-diligence
Update enhanced due diligence
curl --request PATCH \
--url https://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": {
"media": [
{
"context": "source-of-funds-proof",
"fileId": "57a3ecf2-5404-4654-9ece-feb504a69f86"
}
]
},
"output": {
"verifiedAt": "2020-01-01T00:00:00.000Z"
}
}
'import requests
url = "https://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence"
payload = {
"input": { "media": [
{
"context": "source-of-funds-proof",
"fileId": "57a3ecf2-5404-4654-9ece-feb504a69f86"
}
] },
"output": { "verifiedAt": "2020-01-01T00:00:00.000Z" }
}
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({
input: {
media: [
{
context: 'source-of-funds-proof',
fileId: '57a3ecf2-5404-4654-9ece-feb504a69f86'
}
]
},
output: {verifiedAt: '2020-01-01T00:00:00.000Z'}
})
};
fetch('https://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence', 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.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence",
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([
'input' => [
'media' => [
[
'context' => 'source-of-funds-proof',
'fileId' => '57a3ecf2-5404-4654-9ece-feb504a69f86'
]
]
],
'output' => [
'verifiedAt' => '2020-01-01T00:00:00.000Z'
]
]),
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://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence"
payload := strings.NewReader("{\n \"input\": {\n \"media\": [\n {\n \"context\": \"source-of-funds-proof\",\n \"fileId\": \"57a3ecf2-5404-4654-9ece-feb504a69f86\"\n }\n ]\n },\n \"output\": {\n \"verifiedAt\": \"2020-01-01T00:00:00.000Z\"\n }\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://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {\n \"media\": [\n {\n \"context\": \"source-of-funds-proof\",\n \"fileId\": \"57a3ecf2-5404-4654-9ece-feb504a69f86\"\n }\n ]\n },\n \"output\": {\n \"verifiedAt\": \"2020-01-01T00:00:00.000Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.enterprise.sandbox.uphold.com/core/kyc/processes/enhanced-due-diligence")
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 \"input\": {\n \"media\": [\n {\n \"context\": \"source-of-funds-proof\",\n \"fileId\": \"57a3ecf2-5404-4654-9ece-feb504a69f86\"\n }\n ]\n },\n \"output\": {\n \"verifiedAt\": \"2020-01-01T00:00:00.000Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"enhancedDueDiligence": {
"code": "enhanced-due-diligence",
"status": "ok",
"verification": {
"model": "partner-verified",
"method": "manual",
"dependencies": [
"customer-due-diligence"
]
},
"input": {
"media": [
{
"context": "source-of-funds-proof",
"fileId": "57a3ecf2-5404-4654-9ece-feb504a69f86"
}
]
},
"output": {
"verifiedAt": "2020-01-01T00:00:00.000Z"
}
}
}
Update enhanced due diligence is the endpoint used to collect additional documentation when a user is categorized as high risk based on the outcome of the customer-due-diligence process.
This process typically starts with a status of exempt, but it may be triggered automatically if the user’s risk profile is elevated during standard due diligence.
Source of Funds Requirement
To complete the enhanced due diligence process, the user must provide proof of source of funds, based on the response provided for their primary source of income. As an example, if the declared source is salary, the user must submit a salary receipt as proof. The document is provided as a media file ininput.media. At this time, only a single media file is supported for this process.
source-of-funds-proof
source-of-funds-proof
A document that proves the user’s source of funds.File Category:
document (which allows pdf files as well as typical images mime-types)Files are created and uploaded using the Create File endpoint.
Authorizations
OAuth 2.0 authentication.
Body
application/json
Response
KYC enhanced due diligence process updated.
The KYC enhanced due diligence object.
Show child attributes
Show child attributes
Was this page helpful?
⌘I