curl --request POST \
--url https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_consent": true,
"customer_ip_address": "66.152.213.183"
}
'import requests
url = "https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify"
payload = {
"customer_consent": True,
"customer_ip_address": "66.152.213.183"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer_consent: true, customer_ip_address: '66.152.213.183'})
};
fetch('https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify', 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-sandbox.synctera.com/v0/customers/{customer_id}/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customer_consent' => true,
'customer_ip_address' => '66.152.213.183'
]),
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-sandbox.synctera.com/v0/customers/{customer_id}/verify"
payload := strings.NewReader("{\n \"customer_consent\": true,\n \"customer_ip_address\": \"66.152.213.183\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_consent\": true,\n \"customer_ip_address\": \"66.152.213.183\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_consent\": true,\n \"customer_ip_address\": \"66.152.213.183\"\n}"
response = http.request(request)
puts response.read_body{
"kyc_status": "ACCEPTED",
"verifications": [
{
"result": "ACCEPTED",
"verification_time": "2023-11-07T05:31:56Z",
"verification_type": "kyc",
"id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
"issues": [
"R186: Global Watchlist sources selected are correlated with the input identifiers"
],
"raw_response": {
"provider": "SOCURE",
"raw_data": "{}"
},
"vendor_info": {
"content_type": "text/xml",
"vendor": "IDOLOGY",
"xml": "<string>",
"details": [
{
"code": "R186",
"description": "Global Watchlist sources selected are correlated with the input identifiers"
}
]
}
}
],
"next_page_token": "a8937a0d"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}Verify a customer's identity
Initiate identity verification for a customer and run the specified identity checks.
Verifying a personal customer requires that the following fields already be set:
first_namelast_namedobemailphone_numberlegal_addressssn
This endpoint will be removed in API v1. Use POST /v0/verifications/verify instead.
curl --request POST \
--url https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_consent": true,
"customer_ip_address": "66.152.213.183"
}
'import requests
url = "https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify"
payload = {
"customer_consent": True,
"customer_ip_address": "66.152.213.183"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customer_consent: true, customer_ip_address: '66.152.213.183'})
};
fetch('https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify', 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-sandbox.synctera.com/v0/customers/{customer_id}/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customer_consent' => true,
'customer_ip_address' => '66.152.213.183'
]),
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-sandbox.synctera.com/v0/customers/{customer_id}/verify"
payload := strings.NewReader("{\n \"customer_consent\": true,\n \"customer_ip_address\": \"66.152.213.183\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_consent\": true,\n \"customer_ip_address\": \"66.152.213.183\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.synctera.com/v0/customers/{customer_id}/verify")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_consent\": true,\n \"customer_ip_address\": \"66.152.213.183\"\n}"
response = http.request(request)
puts response.read_body{
"kyc_status": "ACCEPTED",
"verifications": [
{
"result": "ACCEPTED",
"verification_time": "2023-11-07T05:31:56Z",
"verification_type": "kyc",
"id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
"issues": [
"R186: Global Watchlist sources selected are correlated with the input identifiers"
],
"raw_response": {
"provider": "SOCURE",
"raw_data": "{}"
},
"vendor_info": {
"content_type": "text/xml",
"vendor": "IDOLOGY",
"xml": "<string>",
"details": [
{
"code": "R186",
"description": "Global Watchlist sources selected are correlated with the input identifiers"
}
]
}
}
],
"next_page_token": "a8937a0d"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
An idempotency key is an arbitrary unique value generated by client to detect subsequent retries of the same request. It is recommended that a UUID or a similar random identifier be used as an idempotency key. A different key must be used for each request, unless it is a retry.
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
Path Parameters
The customer's unique identifier
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
Body
Customer verification request.
Whether this customer has consented to a KYC check.
IP address of the customer being verified.
"140.151.183.216"
The ID of the uploaded government-issued identification document provided by the Socure SDK.
"1ab2c3de-fg45-6789-a01b-23c45678defg"
List of possible checks to run on a customer. This is a legacy field that is now ignored.
The type of check run on the customer.
addressrisk, alertlist, decision, documentverification, emailrisk, fraud, kyc, phonerisk, social, synthetic, watchlistplus, watchlistpremier, watchliststandard Response
Customer verification result.
Customer's KYC status
ACCEPTED, PENDING, PROVIDER_FAILURE, PROVISIONAL, REJECTED, REVIEW, UNVERIFIED Array of verification results.
Show child attributes
Show child attributes
If returned, use the next_page_token to query for the next page of results. Not returned if there are no more rows.
"a8937a0d"
Was this page helpful?

